【问题标题】:datatables js speed up?数据表js加速?
【发布时间】:2015-02-03 18:39:28
【问题描述】:

我在客户端的数据表中加载超过 10000 条记录,绑定所有记录需要更多时间,所以我做了以下两个步骤

1. first loaded 100 records in datatables using fnAddData() and fnDraw().
2. remaining records loaded to datatables in settimeout function.

加载前 100 条记录所花费的时间非常快,尽管我使用 settimeout 函数加载了其余记录,但我面临以下问题

 Page goes to not responding until the records bind to datatables 

知道如何解决页面无响应的问题,我需要一次快速加载数据,或者一次完整的记录,或者首先使用 settimeout 休息一些记录。

【问题讨论】:

    标签: jquery datatables jquery-datatables


    【解决方案1】:

    您应该考虑使用 DataTables 提供的server-side options

    $(document).ready(function() {
        $('#example').dataTable( {
            "processing": true,
            "serverSide": true,
            "ajax": "../server_side/scripts/server_processing.php"
        } );
    } );
    

    【讨论】:

    • 服务器端选项究竟会做什么
    • 启用服务器端处理后,DataTables 执行的所有分页、搜索、排序操作都将移交给 SQL 引擎(或类似引擎)可以在大型数据集上执行这些操作的服务器。
    • 但是我在客户端完全加载数据,所以服务器端处理可以正常工作
    【解决方案2】:

    考虑使用分页。这只会一次将 X 条记录呈现到 DOM 中,并允许您遍历页面以查看剩余的记录。由于 99% 的记录不需要渲染到 DOM 中即可启动,这应该会加快加载速度。

    $('#example').DataTable({
        dom: 'lrtip',
        paging: true,
        pageLength: 50,
    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 2020-08-07
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      相关资源
      最近更新 更多