【问题标题】:JQuery datatable column data update works too slowJQuery 数据表列数据更新工作太慢
【发布时间】:2016-03-14 17:49:55
【问题描述】:

正在使用数据表生成表。 我在表格下方有文本框,当我向该文本框添加任何值时,该值应更新为第一行的特定列,然后该列的每一行应递增 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,所以我不知道原因。如果有人知道这个问题的原因并解决了这个问题,请告诉我。

我想减少执行时间。

【问题讨论】:

  • 也许this 可以为您提供帮助。

标签: javascript jquery datatable execution-time


【解决方案1】:

您不必重绘每个单元格,只需在执行代码后重绘整个表格一次

【讨论】:

  • 对不起,你能告诉我怎么做吗?
  • 好的,从你的提示中找到了修复,现在工作太快了。 dataTable.fnDraw()
  • 我认为 fnDraw 是旧名称,您使用的是旧版本的 DataTables 吗? dataTable.draw() 应该做的工作
  • 是的,它的旧版本,因为我们的系统较旧。 :)
猜你喜欢
  • 2012-07-23
  • 2018-12-29
  • 2013-03-25
  • 1970-01-01
  • 2013-12-04
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多