我有一个从数据库转储的大 HTML 表(约 10K 行,4 列,仅文本)。我在 Chrome/Firefox 中打开它时遇到性能不佳的问题。
我没有直接访问数据库的权限,所以不可能逐页加载。所有数据都是静态 HTML。
在这种情况下,使用一些 jQuery 插件进行分页是否有助于提高性能?还有其他建议吗?
我有一个从数据库转储的大 HTML 表(约 10K 行,4 列,仅文本)。我在 Chrome/Firefox 中打开它时遇到性能不佳的问题。
我没有直接访问数据库的权限,所以不可能逐页加载。所有数据都是静态 HTML。
在这种情况下,使用一些 jQuery 插件进行分页是否有助于提高性能?还有其他建议吗?
如果适用,设置table-layout: fixed
有助于大大减少渲染时间。缓慢主要是由于在默认的表格布局方法中,浏览器必须解析和处理整个表格,计算所有单元格的宽度要求,然后才能渲染表格的任何部分。
固定布局告诉浏览器根据第一行设置列宽(注意可能适用于它的任何 CSS)。当然,如果宽度不适合其他行,这可能会导致混乱。对于行通常非常相似的数据表,宽度可能可以适当设置。
这并没有改变很少有人(如果有的话)会阅读所有 10,000 行的问题。人们可能会在那里寻找一些特定的数据。最好设置一个搜索表单,让用户得到他想要的东西。
我有一个类似的问题并制作了一个 jQuery 插件:
https://github.com/lperrin/infinitable
要使用它,您可以使用 Ajax 调用加载所有数据,将其转换为一个巨大的数组,然后将其传递给插件。
它基本上隐藏了不可见的单元格,同时使排序或过滤单元格变得容易。还有其他解决方案可以实现这一点,但除了 jQuery 之外,这个解决方案没有依赖项。
该项目包含一个演示,其中包含一个包含 100,000 个元素的表。