【发布时间】:2011-10-23 10:10:53
【问题描述】:
我正在尝试在 slickgrid 和 jqgrid 之间做出决定。我认为它们都具有丰富的功能。 Jqgrid 有很好的文档,所以它很容易启动和运行。
我想了解它们在实现细节方面有多么不同,因为我听说光滑网格要快得多。我只是想知道是否有人进行了一些基准测试/了解每个网格的内部结构以提供一些有用的输入。
Edit1: @oleg - 感谢您的回复。抱歉,我担心我可能没有提供足够的详细信息。虽然我没有所有的用例,但我会在数据较小时使用本地数据,在数据较大时使用服务器端虚拟滚动、过滤、排序等。 Json 将是主要的数据源。我试图从可能了解两个网格内部的人那里获得输入。我对客户端实现的了解不足以自己判断这些。我的一位同事提到,光滑的网格可能会更好,因为它是在虚拟渲染和键盘支持的情况下开发的。我的问题是开放式的,但网格的核心实现也可能使其在更复杂的场景中也有效,即子网格、树等,如果不偏离核心设计来处理其中任何一个。
好的,根据你对jqgrid的专业知识,你会如何回应Slick Grid的这个sn-p?
"网格与数据 SlickGrid 和我见过的其他网格实现之间的主要区别在于,它们过于关注能够理解和处理数据(搜索、排序、解析、ajax 加载等),而没有足够的精力去成为更好的“网格”。 ”(或者,在可编辑网格的情况下,电子表格)。如果你想做的只是“修饰”一个 HTML TABLE 或将前端添加到一个简单的列表上,那就太好了,但对于其他任何事情都太不灵活了。 数据很复杂。它有商业规则。它具有非内在属性。编辑元素的一个属性可能会导致修改其他属性甚至其他元素的级联更改。它有依赖关系。我的意思是,处理数据最好留给使用网格控件的开发人员。试图将所有这些都融入网格实现和 API 只会限制其适用性并增加相当大的膨胀。 SlickGrid 采用了不同的方法。在最简单的场景中,它通过数组接口访问数据(即使用“dataitem”获取给定位置的项目,使用“data.length”确定项目数量),但 API 的结构是这样的很容易让网格对底层数据的任何可能变化做出反应。"
编辑 2: 来自Datatables forum post 的片段:“*DataTables 正在试图修饰 HTML 表格。例如,可以通过使用DataTables 的 TABLE 标签,而 SlickGrid 使用 DIV 元素创建看起来像表格的显示。因此,有许多技术,如虚拟渲染,可以与 DIV 一起使用 - 但不能与一个表。不可能简单地呈现第 100-110 行而不是表中的前 100 行,但是 DIV 没有问题,所以我担心这目前不适用。什么会需要做的是将 DataTables 转换为使用 DIV 标记标记,但随后您失去了 DataTables 的主要目标,即专注于渐进增强和可访问性。*"
谢谢
【问题讨论】: