在“上的表现不佳”;响应表“;javascript

在“上的表现不佳”;响应表“;javascript,javascript,datatables,Javascript,Datatables,我网站上的页面通常有10个表,每个表有15列30行 在桌面上,这很好。在手机上,这很糟糕 我的数据不需要任何包装,也不需要“堆叠”解决方案。然而,我的专栏有明确的优先级,这是解决这个问题的关键 我想做的是,让JS决定可以显示哪些列,从最重要的列开始。然后,它会逐渐添加不太重要的列,直到它与用户设备有良好的匹配 理论上听起来很简单 实际上,我一直在玩dataTables.net的响应插件,在我的i5 XPS13笔记本电脑上呈现这样一个页面的时间是3.5秒。如果没有JS代码,它只需半秒钟 您认为我所

我网站上的页面通常有10个表,每个表有15列30行

在桌面上,这很好。在手机上,这很糟糕

我的数据不需要任何包装,也不需要“堆叠”解决方案。然而,我的专栏有明确的优先级,这是解决这个问题的关键

我想做的是,让JS决定可以显示哪些列,从最重要的列开始。然后,它会逐渐添加不太重要的列,直到它与用户设备有良好的匹配

理论上听起来很简单

实际上,我一直在玩dataTables.net的响应插件,在我的i5 XPS13笔记本电脑上呈现这样一个页面的时间是3.5秒。如果没有JS代码,它只需半秒钟

您认为我所问的是可能的,还是DOM操作的级别总是需要几秒钟

编辑:jsFiddle显示示例:


在我的机器上平均为250ms,这只适用于一个33行的表。

这个问题太宽泛,没有上下文。请提供一个我现在已经添加的@halfzebra,谢谢!若上面的代码片段代表了您当前的DataTables设置,我真的想知道,为什么要使用DataTables?响应性显然是一个性能杀手,我建议在顶部使用CSS魔术,使用
@media
查询隐藏列。PS:尝试删除
responsive
属性,您将看到x5性能提升。响应部分是我唯一真正感兴趣的部分,datatables是我发现的第一个可以处理列优先级的建议。
        $(document).ready(function() {
        var start = performance.now();
        $('table').DataTable( {
            paging:   false,
            ordering: false,
            info:     false,
            autoWidth: false,
            deferRender: false,
            orderClasses: false,
            jQueryUI: false,
            lengthChange: false,
            processing: false,
            scrollX: false,
            scrollY: false,
            searching: false,
            serverSide: false,
            stateSave: false,
            responsive: {
                details: {
                   // display: '',
                   // type: ''
                }
            }
        });

        alert(performance.now() - start);
    });