【发布时间】:2014-07-15 19:37:38
【问题描述】:
我使用DataTables 1.9.4 和几个插件(ColVis、ColReorderWithResize 和 ColumnFiltering)。我用于服务器端通信的参数是:
- “bServerSide”
- “fnServerData”
- “sAjaxSource”
现在,假设我必须显示 3000 行,大约 25 列,没有分页(“iDisplayLength”:-1)。包含数据权重的 json 大约 1MB,服务器将其发送到数据表大约需要一秒钟。
问题是这 3000 行的渲染需要几秒钟(大约 5-10 行,这是不可接受的)。在 IE 上,它可能需要更多时间,从而导致“脚本不响应”错误。
我希望我能以某种方式加快这个过程 - 即通过显示让我们说 100 行并在后台渲染其余的行。有没有更好的办法?我知道有一个 Scroller 插件 - Scroller,但我需要所有可用于搜索的数据,所以滚动不是一个选项。
【问题讨论】:
-
即使您使用分页,数据表搜索也会扫描整个数据集。
-
想想下面的思路:用纯jquery创建表,显示50条结果。然后添加一个“显示更多结果”按钮。每次用户单击此按钮时,您都会从数据库中加载更多 50 行并附加到已经存在的表中。
-
我需要为浏览器搜索 (Ctrl+F) 绘制所有行,这就是我想在后台渲染表格的原因。应该不会花费太多时间,我可以显示某种消息,说明表格正在呈现。
-
有一个搜索输入和一个按钮不是更好吗?这更有意义,不是吗?
标签: jquery ajax datatables server-side jquery-datatables