2016-03-14 5 views
0

Работа над созданием таблицы с использованием данных. У меня есть текстовое поле под таблицей, когда я добавляю какое-либо значение в это текстовое поле, тогда это значение должно быть обновлено до определенного столбца 1-й строки, тогда каждая строка должна увеличиваться на 1 для этого столбца (новое обновленное значение).Обновление данных данных в столбцах данных JQuery работает слишком медленно

У меня есть код для этого, который отлично подходит для меня. Но для этого требуется слишком много времени. У меня 159 записей в таблице, и когда я обновляю столбец, это занимает около 8-9 секунд, это очень длительная продолжительность. До завершения исполнения я ничего не могу сделать.

JS код:

updateNo: function(dataTableId, noColIndex, numToAdd) { 
    var dataTable = $(dataTableId).dataTable(); 
    var numberOfRows = dataTable.api().rows().data().length; 
    var index; 
    for (index = 0; index < numberOfRows; index++) { 
     var cell = dataTable.api().cell(index, noColIndex); 
     var currentNo = cell.data(); 
     var newNo = parseInt(currentNo) + numToAdd; 
     cell.data(newNo).draw(); 
    } 
} 

Я пытался вычислить время выполнения метод и обнаружил, что последнюю строку методы: cell.data(newNo).draw(); требуется больше времени для выполнения.

Я не так разбираюсь в JavaScript или JQuery, поэтому не знаю причины. Если кто-то знает причину и исправить эту проблему, пожалуйста, дайте мне знать.

Я хочу уменьшить время выполнения для этого.

+0

Может быть, [это] (http://debug.datatables.net/) может оказать помощь вам. – urbz

ответ

2

Вам не придется перерисовывать каждую клетку, просто перерисовывать всю таблицу сразу после выполнения кода

+0

Извините, не могли бы вы рассказать мне, как это сделать? –

+0

в порядке, нашел исправление из вашего намека, работает слишком быстро. 'dataTable.fnDraw()' –

+0

Я думаю, что fnDraw - это старое имя, вы используете старую версию DataTables? dataTable.draw() должен выполнить задание – buffy

 Смежные вопросы

  • Нет связанных вопросов^_^