【发布时间】:2018-04-26 10:52:24
【问题描述】:
我将 DataTables 与 Bootstrap 4 和客户端处理一起使用。显示大约 2,000 条记录。
加载时间是可以接受的,但是我注意到当我重新加载页面 (F5) 时,我可以在一瞬间看到一个未格式化的 DataTable。几乎就像 DataTables 是最后加载的一样,而且很明显。
如果您查看他们的“零配置”example,您就会明白我的意思。重新加载页面时,您实际上可以在一瞬间看到所有表记录(您必须快!)。
有一个“Bootstrap 4”example,在该页面上也很明显。
我有几个问题;
- 为什么会发生这种情况?
- 我能做些什么来防止它发生吗?
我尝试重新排序我的 JS 和 CSS 文件(我只有几个),但没有任何区别。我担心的是,随着我添加更多记录,加载时间会增加,并且未格式化的 DataTable 在每次页面加载时会更加明显。
【问题讨论】:
-
数据表是在 DOM 上加载完成的最后一件事。如果您的数据源来自您正在呈现的 HTML 表,则尤其如此。您需要创建一个隐藏的类,然后在页面加载时将该类设置在表格上。然后在您的 javascript 上,最后一件事是删除该类。从我使用 DT 的这些年开始,没有“内置”功能。你必须手动控制它。
-
您将看到与任何其他框架插件完全相同的行为,这些插件操纵、更改或重新组织加载到 dom 中的数千个元素。没有例外。对于 DataTables,您的解决方法可能是初始化一个空的 dom
<table>并使用内置的 ajax 加载内容。然后立即显示 DataTable 实例,并将延迟“传递”到行渲染。即没有闪烁,但有一小段时间您可以看到“加载数据”(或 ajax 加载轮或其他) -
如果你有一个非常大的 JSON,你可以加载到 myjson.com 我可以使用 bootstrap 4 生成一个示例。
标签: javascript jquery css twitter-bootstrap datatables