jQuery、DataTables固定的头和列加载时间很慢,只有376行

jQuery、DataTables固定的头和列加载时间很慢,只有376行,jquery,html,datatable,Jquery,Html,Datatable,我正在尝试使用DataTables创建一个具有固定标题和列的表。除了加载页面需要花费很长时间外,其他一切都正常。我只有38列和376行,总共有14307个单元格,包括标题。我甚至使用了无限卷轴,但它没有帮助。我不知道是不是我编码的问题。这是密码 $(document).ready( function () { var oTable = $('#tbl_name').dataTable( { "sScrollY": "590p

我正在尝试使用DataTables创建一个具有固定标题和列的表。除了加载页面需要花费很长时间外,其他一切都正常。我只有38列和376行,总共有14307个单元格,包括标题。我甚至使用了无限卷轴,但它没有帮助。我不知道是不是我编码的问题。这是密码

        $(document).ready( function () {
            var oTable = $('#tbl_name').dataTable( {
                "sScrollY": "590px",
                "sScrollX": "100%",
                "sScrollXInner": "100%",
                "bScrollCollapse": true,
                "bPaginate": false,
                "sDom": 'tS',
                "bSort": false,
                "bSortClasses": false
            } );
            new FixedColumns( oTable, {
                "iLeftColumns": 4,
                "iLeftWidth": 700
            } );
        } );

如果您是通过dom方法构建表(在HTML中构建表,然后在其上运行jQuery),那么从本质上讲,这将是一个缓慢的过程。请记住,Datatables所做的不仅仅是像infinite scroller这样的简单脚本。切换到数据驱动选项,如使用或执行DataTables允许的操作。请记住,Datatables不仅仅是格式化内容,它还创建了一个可以操纵的信息模型,这是Datatables的真正威力,许多开发人员甚至懒得去探究

我公司当前的应用程序通过一个backbone.js模型在数据表中运行数百个复杂的行,在dom端完全没有延迟。在以前的一份工作中,我使用了数百万行的表格,应用程序运行良好


当然,遵循javascript的最佳实践,首先将datatables代码放在HTML的最末尾(在body标记之前),这样它就不会中断其他页面元素的加载。

“仅”376行?您已经确定了问题的根源。请尝试对数据进行分页。在infinite scroller示例中,它已经有50000多行了,这不是延迟。您是否将数据存储在HTML文档中,或者通过AJAX从服务器获取它?它是通过循环
mysqli_fetch_array
生成的,我知道这已经很晚了,但是您应该记住,fixedColumns插件的性能很差,因为它将所有DOM元素加倍,并尝试同步所有行高度。。。