【问题标题】:SlickGrid Vs JQGrid [closed]SlickGrid 与 JQGrid [关闭]
【发布时间】: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 的主要目标,即专注于渐进增强和可访问性。*"

谢谢

【问题讨论】:

    标签: jqgrid slickgrid


    【解决方案1】:

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

    jqGrid 可能有更好的文档,但 jqGrid 的服务器端连接部分已包含在商业产品中,这部分的文档比客户端更难获得。

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

    【讨论】:

    • 查看原帖中的编辑 2 了解更多有用信息。
    • 对于基本用法,jqGrid 更简单,功能更多(例如固定行和列)。另一方面,jgGrid 呈现为表格,这意味着 InternetExploder(任何版本)中的常见性能问题从 20 到 50 行之间开始(取决于 IE 版本和计算机规格)。因此,SlickGrid 是唯一可行的选择。因为您也可以通过额外的工作在 slickgrid 中获得 jqGrid 的高级功能。底线:两者都不是很好,但 SlickGrid 没有那么糟糕,所有其他选项(据我所知)更糟糕。
    • 查看jspreadsheets.com 的 JavaScript 电子表格库比较;看起来 clusterize 是一个不错的新选择,尤其是当您不想要 jQuery 时。 Handsontable 看起来也已成为这类事情的可行选择。
    【解决方案2】:

    在生产/愤怒中同时使用了 jqGrid 和 slickgrid,这是我的 2 美分: jqGrid 很容易上手和使用。但是我们很快发现自己讨厌必须将我们想要的东西融入 jqGrids 的做事方式。我们还发现编辑功能难以实现,并且(根据记忆 - 这是一年前)它迫使您进入行编辑模型,而不是表现不佳的单元格编辑。

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

    总而言之,我强烈推荐 slick grid

    【讨论】:

      【解决方案3】:

      哪种语言更难学习:中文、芬兰语还是印第安纳州一些小民族的语言?

      比较问题总是太难了。您必须拥有非常出色了解您要比较的所有产品的人。此外,您应该定义您现在计划使用产品的哪一部分以及将来可能重要的部分。您是使用 JSON 或 XML 数据进行网格输入还是使用本地 JavaScript 数据?您是否需要使用标准网格或带有子网格的网格、树形网格或带有分组的网格?

      在您没有更清楚地定义网格的使用区域之前,您将不会收到任何好的答案。最后,您目前拥有哪些专业知识以及您可以轻松理解和使用哪些文档或示例有时甚至可能很重要。作为产品的功能,您可以使用的其他人的经验可能更重要。如果您查看 stackoverflow.com 上带有标签 "jqgrid" 和标签 "slickgrid" 的问题数量,您可以看到哪些产品可以帮助您使用 stackoverflow

      【讨论】:

        【解决方案4】:

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

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

        最初,当我开始使用 slickgrid 时,我将它包装在另一个小部件中,以便在需要时可以转移到另一个提供程序,但截至目前,它似乎可以完美地工作。

        我还没有开始,但我会在我的博客上提出一些很好的 slickgrid 示例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-22
          • 2011-05-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-12
          相关资源
          最近更新 更多