javascript 可以对非常大的表格进行排序、过滤和渲染吗?
Posted
技术标签:
【中文标题】javascript 可以对非常大的表格进行排序、过滤和渲染吗?【英文标题】:Can javascript sort, filter, and render a very large table? 【发布时间】:2012-09-14 00:27:28 【问题描述】:首先,我不知道 javascript 在这方面的能力。但想知道是否有可能:
-
从文本文件中读取并显示一个非常大的表格(几十列和几十万行),分段显示;
并非所有列都会同时显示。列在组中。一组列需要在隐藏或显示之间切换;
可以根据某些列过滤行。
这样做的原因是为了制作一个显示数据分析结果的报告,并为用户提供基本的过滤、排序功能。他们最有可能拥有某种网络浏览器。所以 html 将是一种理想的格式。
Javascript 可以吗?
谢谢!
【问题讨论】:
HTML5 提供了File API,可以通过拖放读取本地文件。无法具体说明过滤器/渲染性能,但这种规模的 DOM 操作不太可能很快。 Javascript 可以做到这一点,是的。应该提到的是,某些浏览器 cough IE cough 已知会在超过 100 行左右的表格时变得非常缓慢。 【参考方案1】:您可以通过使用网格插件来做到这一点。例如,看看这个问题的答案:JavaScript data grid for millions of rows
【讨论】:
【参考方案2】:我会推荐一个 javascript 表格库,例如 DataTables。它包括排序、过滤和分页选项。
它还具有将 DataTables 所做的所有分页、过滤、排序等工作交给服务器的功能。然后,javascript lib DataTables 只是一个事件和显示模块。在这种情况下,可以处理任意数量的行。
因此,您将拥有所需的所有功能,以及在 javascript 中加载的数据的 ajax-y 快速性能以及处理任意数量行的规模。
Server-side data processing with DataTables
【讨论】:
【参考方案3】:绝对是的。 Ext.JS 展示了如何非常有效地做到这一点。如果做得正确,它是一种性能优化,可以减少到服务器的往返行程。并提高用户体验响应能力。
ExtJS Rich Grid Example.(有很多)
ExtJS Examples.(看网格部分)
希望对您有所帮助。
【讨论】:
您应该提到 ExtJS 不是免费的解决方案,需要相当昂贵的许可证。以上是关于javascript 可以对非常大的表格进行排序、过滤和渲染吗?的主要内容,如果未能解决你的问题,请参考以下文章