使用IE8,DataTable令人难以置信地缓慢

时间:2015-09-18 08:53:11

标签: performance datatable internet-explorer-8

我在表上使用Datatable,我从JS数组加载数据(因此它是服务器端的)。为了加载350行的列表 - 每行10列 - IE8需要超过10秒,其中禁用过滤器和排序。

https://datatables.net/faqs/index说它可以处理行数。

                   $("#table").DataTable({
                        "data" : data,
                        "processing" : true,
                        "filter": false,
                        "orderClasses": false,
                        "ordering": false,
                        "deferRender" : true,
                        "columns": columns,
                    });

(数据是列描述的行和列列表)。

1 个答案:

答案 0 :(得分:0)

我知道这种缓慢来自我传递给构建表的JS数组的初始化。 我使用了PHP脚本并迭代了我想要的每一行/列:

data[$row][$col] = 'xxx';
....

我发现让它更快地工作的唯一方法是在一次传递中真正构建js数组,如:

var data = [
  <?php foreach($rows as $row)?>
  {  <?php foreach($cols as $n=>$col?>
     '<?php echo $n?>': '<?php echo $col?>',
];

这种方式对于1 000行表格,我从15s传递到2s,并激活了排序和过滤。

Carreful:当IE8看到类似

的数组时
[{'coucou': 'hi'},]

然后它构建一个数组:

    [{'coucou': 'hi'}, undefined]

该数据表不喜欢