Rud*_*ger 223 javascript jquery html5 datagrid slickgrid
我需要使用JavaScript在网格中向用户呈现大量数据行(即数百万行).
用户不应该一次看到页面或仅查看有限数量的数据.
相反,似乎所有数据都可用.
不是一次下载所有数据,而是在用户访问它们时下载小块(即通过滚动网格).
不会通过此前端编辑行,因此可以使用只读网格.
这种无缝分页存在哪些用JavaScript编写的数据网格?
Tin*_*Tin 190
(免责声明:我是SlickGrid的作者)
更新 现在已在SlickGrid中实现.
请参阅http://github.com/mleibman/SlickGrid/issues#issue/22,了解有关使SlickGrid使用大量行的持续讨论.
问题是SlickGrid没有虚拟化滚动条本身 - 可滚动区域的高度设置为所有行的总高度.当用户滚动时,仍然会添加和删除行,但滚动本身是由浏览器完成的.这使得它非常快速而平稳(onscroll事件非常慢).需要注意的是,浏览器的CSS引擎中存在限制元素潜在高度的错误/限制.对于IE,恰好是0x123456或1193046像素.对于其他浏览器,它更高.
"largenum-fix"分支中有一个实验性的解决方法,通过将"页面"设置为1M像素高度填充可滚动区域然后在这些页面中使用相对定位来显着提高该限制.由于CSS引擎中的高度限制似乎与实际布局引擎中的高度限制不同且明显更低,因此这给了我们更高的上限.
我仍然在寻找一种方法来获得无限数量的行,而不会放弃SlickGrid目前在其他实现上所具有的性能优势.
鲁迪格,你能详细说明你是如何解决这个问题的吗?
And*_*ass 84
http://wiki.github.com/mleibman/SlickGrid/
" SlickGrid利用虚拟渲染,使您能够轻松处理数十万个项目,而不会降低性能.事实上,使用10行网格与100,000行之间的性能没有差别. "
一些亮点:
它是免费的(麻省理工学院许可证).它使用jQuery.
小智 35
我认为最好的网格如下:
我最好的3个选项是jqGrid,jqxGrid和DataTables.它们可以处理数千行并支持虚拟化.
Dan*_*ith 25
我并不是要开始一场火焰战争,但假设你的研究人员是人类,你不会像你想象的那样了解它们.仅仅因为他们拥有数 PB的数据并不能使他们以任何有意义的方式查看数百万条记录.他们可能会说他们希望看到数百万条记录,但这只是愚蠢的.让你最聪明的研究人员做一些基本的数学运算:假设他们花1秒钟查看每条记录.按照这个速度,它将需要1000000秒,这将超过六周(40小时工作周,没有食物或盥洗室休息).
他们(或你)认真地认为一个人(看着网格的人)可以集中注意力吗?他们真的在1秒内完成了很多工作,还是他们(更有可能)过滤掉了不想要的东西?我怀疑在查看"合理大小"的子集后,他们可以向您描述一个过滤器,它会自动过滤掉那些记录.
正如paxdiablo和Sleeper Smith以及Lasse V Karlsen所暗示的那样,你(和他们)没有考虑过要求.从好的方面来说,既然您已经找到了SlickGrid,我确信这些过滤器的需求立即变得明显.
ang*_*son 15
我可以非常肯定地说,你真的不需要向用户显示数百万行数据.
世界上没有任何用户能够理解或管理该数据集,因此即使您在技术上设法将其关闭,您也无法解决该用户的任何已知问题.
相反,我将集中在为什么用户想要看到的数据.用户不希望看到数据只是为了查看数据,通常会有一个问题.如果你专注于回答那些问题,那么你就会更接近解决实际问题的东西.
dojox.grid.DataGrid为数据提供了JS抽象,因此您可以使用提供的dojo.data存储将其连接到各种后端,也可以编写自己的后端.你显然需要一个支持这么多记录的随机访问.DataGrid还提供完全可访问性.
编辑所以这里是Matthew Russell文章的链接,该文章应提供您需要的示例,使用dojox.grid查看数百万条记录.请注意,它使用旧版本的网格,但概念是相同的,只有一些不兼容的API改进.
哦,这是完全免费的开源.
小智 6
(免责声明:我是w2ui的作者)
我最近写了一篇关于如何实现包含100万条记录的JavaScript网格的文章(http://w2ui.com/web/blog/7/JavaScript-Grid-with-One-Million-Records).我发现最终有3个限制阻止它更高:
我已经用100万条记录(IE除外)测试了网格,并且表现良好.有关演示和示例,请参阅文章.