SlickGrid和JQGrid

时间:2011-08-09 17:09:55

标签: jqgrid slickgrid

我正在尝试在slickgrid和jqgrid之间做出决定。我认为它们都是功能丰富的。 Jqgrid有很好的文档,所以很容易起床和放大运行。

我试图了解它们在实现细节方面有多么不同,因为我听到光滑的网格要快得多。我只是想知道是否有人做了一些基准测试/了解每个网格的内部结构以提供一些有用的输入。

编辑1: @oleg - 感谢您的回复。对不起,我担心我可能没有提供足够的细节。虽然我没有所有用例,但是当数据很小时我会使用本地数据,而当数据很大时我会使用服务器端虚拟滚动,过滤,排序等。 Json将成为主要的数据库。我试图从可能了解两个网格内部的人那里得到输入。我不明白客户端实现足以自己判断。我的一位同事提到,光滑的网格可能会更好,因为它是通过虚拟渲染和键盘支持开发的。我的问题是开放式的,但网格的核心实现也可能使其在更复杂的场景中更有效,即子网格,树木等,如果没有偏离核心设计来处理任何这些。

好的,根据您对jqgrid的专业知识,您如何回应Slick Grid的这个代码段?

网格与数据 关键的区别在于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的主要目标,即专注于渐进增强和可访问性。*“

由于

4 个答案:

答案 0 :(得分:30)

我查看了jqGrid和SlickGrid,发现SlickGrid写得更优雅;对于SlickGrid的大多数用例,需要较少的配置;但是,jqGrid需要较少的配置来设置更复杂的情况(例如虚拟滚动);

jqGrid可能有更好的文档,但jqGrid的服务器端连接部分由商业产品提供,此部分的文档比客户端更难获取。

另一方面,另一方面,SlickGrid有一些很好的例子,涵盖了大多数用例,源代码充满了注释,任何具有javascript和jquery中间知识的人都可以访问。

答案 1 :(得分:27)

同时使用了jqGrid和amp;在生产/愤怒的slickgrid,这是我的2美分: jqGrid很容易上手并且很好用。但是我们很快就发现自己不能满足我们想要的jqGrids做事方式。我们还发现编辑功能难以实现(从内存 - 这是一年前),它迫使你进入行编辑模型,而不是单元格编辑效果不佳。

使用光滑的网格我们还没有找到一个缺少的功能/我们无法轻松插入。文档相当不存在但现在好多了(https://github.com/mleibman/SlickGrid/wiki/_pages)但是到目前为止我们刚刚进入源代码。不得不说api是我见过的最好的之一,大数据量和复杂编辑器的性能非常出色(ie7上的一些问题,但从未将它与网格相比,而不是我们的MVC框架和复杂的编辑器)

总而言之,我强烈推荐光滑的网格

答案 2 :(得分:18)

哪种语言更难学习:中文,芬兰语或印第安纳州一些小人物的语言?

比较问题总是太难了。您必须让非常好的人知道您想要比较的所有产品。此外,您应该定义您计划在何时使用的产品部分以及将来可能重要的部分。您是使用JSON或XML数据进行网格输入还是使用本地JavaScript数据?您是否需要使用标准网格或网格与子网格,treegrid或具有分组的网格?

在您不明确网格使用区域之前,您将不会收到任何好的答案。最后有时甚至可能是您当前拥有的专有技术以及您可以轻松理解和使用的文档或示例。您可以使用的其他人的体验作为产品的功能可能更重要。如果您使用标记"jqgrid"和标记"slickgrid"查看stackoverflow.com上的问题数量,您可以看到哪些产品可以帮助您进行stackoverflow

答案 3 :(得分:2)

我同意@ user175528。我们在应用程序中也广泛使用了网格,其内置的格式化程序,编辑器和验证器非常易于使用,并且易于编写自定义格式。

它可以很好地处理大型数据集(并使搜索变得轻而易举)。此外,它易于设置分页和排序。

最初,当我开始使用slickgrid时,我将其包装在另一个小部件中,以便在需要时可以移动到另一个提供者,但截至目前,它似乎完美无缺。

我还没有解决这个问题,但我会在我的博客上提出一些很好的光滑的例子。