正在使用datatable生成表。
我在表下方有文本框,当我向该文本框添加任何值时,该值应更新为第一行的特定列,然后该列的每一行应增加1(新的更新值)。
我有代码,对我来说很好。但这需要太多时间。我的表中有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,所以不知道原因。如果有人知道原因并解决此问题,请告诉我。
我想为此减少执行时间。
最佳答案
您不必重新绘制每个单元格,只需在执行代码后重新绘制整个表一次