释放网格

发布日期 作者

jQuery UI 团队很自豪地宣布,我们正在构建一个功能丰富、速度极快的网格小部件,它将通过数据链接、排序、分页、过滤、行选择和内联编辑来增强 HTML 表格。作为此过程的一部分,我们将构建网格功能作为独立的小部件,并重新审视现有的 jQuery UI 组件。在这个过程结束时,我们不仅将拥有一个网格,而且还将拥有一个经过更好测试、功能更全面的用户界面库。

当前进度

我们即将完成该项目第 1 阶段的开发,该阶段涵盖了通用数据模型、数据类型解析和标记的创建。此阶段将最终形成一个“零功能网格”,这是一个增强的 HTML 表格,它支持 jQuery UI CSS 框架,并作为其他网格功能的基础。有关计划用于未来阶段的工作的详细信息,请参阅 路线图

开发方法

已经存在许多高质量的 jQuery 网格插件。我们认识到它们各自都拥有令人印象深刻的功能集、能力以及 jQuery 社区成员的使用水平。我们正在研究并应用当今最流行的网格和数据表插件的实践和技术,包括当前的热门插件,例如 SlickGridjqGridDataTables 以及一些已经有一段时间没有更新的插件,例如 TablesorterFlexigridIngrid。我们邀请所有这些插件以及任何其他网格插件的作者和用户参与 jQuery UI 网格的设计。

非原创?

正如你所想象的那样,我们非常喜欢 jQuery UI API。我们认为,对复杂插件提供一致的界面对用户来说是一个很大的优势。过去,我们有时会调整已经完成的插件。不幸的是,这种方法会导致与遗留错误、与我们 API 的其余部分不一致以及对原始设计决策缺乏熟悉程度相关的麻烦。通过从头开始构建,我们可以确保每行代码都经过验证,并且我们称为“jQuery UI”的任何网格都符合我们的标准。

不仅仅是一个网格

我们不仅仅在开发一个网格,而是在设计和构建模块化且可扩展的组件,例如排序、分页、过滤和就地编辑,这些组件可以组合成一个网格。我们相信,jQuery UI 用户将发现用于支持网格的这套新工具具有吸引力和创造性的用途。

重构交互

虽然 jQuery UI 的鼠标交互插件在许多情况下都能很好地工作,但我们也清楚地认识到它们存在一些挥之不去的缺点 - 包括它们在表格上正常工作的能力。作为网格开发的一部分,我们将对交互插件进行期待已久的重构,以简化它们的 API、解决边缘情况,并确保它们适用于更广泛的上下文。

加入我们!

你想帮助设计和构建 jQuery UI 网格吗?分享你的反馈?加入我们的 网格规划维基页面。你可以在 jQuery UI 的 网格分支 上了解最新的开发情况并测试最新的迭代。

赞助商

这项工作得益于个人和企业赞助商的慷慨捐赠。这些赞助商捐赠了财务和开发资源,以确保网格工作在未来 5-6 个月内能够继续进行。

特别是,jQuery 项目希望感谢以下 jQuery UI 网格项目的赞助商(截至今天)

双白金网格赞助商

  • 微软 - 微软 Web 平台和工具团队构建了许多用于开发网站的技术,包括 ASP.NET、ASP.NET MVC、IIS、Visual Web Developer 和 Web Matrix。
  • Adobe - Adobe Systems Incorporated 提供业务、创意和移动软件解决方案,彻底改变了世界与创意和信息互动的方式。
  • 白金网格赞助商

  • Wijmo - Wijmo 是一个包含 30 多个 jQuery UI 小部件的完整套件。它融合了 jQuery、CSS3、SVG 和 HTML5,当这些技术结合在一起时,就会成为网络上不可阻挡的力量。

如果您或您的公司有兴趣成为 jQuery UI 网格的赞助商,请 联系我们

关于“释放网格”的 31 条想法

  1. 请谷歌捐赠,他们一定会这样做的……
    或者可能不会,因为他们能够编写出令人尊敬的 JavaScript 代码,而其他一些“软件巨头”却做不到。

    在开源项目中看到如此大的微软徽标让我感到毛骨悚然……为什么他们不发布一个可以正常工作的 Web 浏览器,尊重标准,而且不会因为 IE 的不一致性而让 Web 开发人员加倍工作

  2. 网格 UI 组件当然受欢迎。但是,那些已经开发了很长时间的组件(例如菜单和工具提示小部件)怎么样?在完成现有的开放项目之前启动新的部件开发是否有意义?

  3. 感谢 @Jerod Santo 和 @Skywalker

    @Rudiger - 一些网格将此称为虚拟渲染或虚拟滚动。SlickGrid 和 jqGrid 都具有此功能。我们将首先在第 2 阶段解决此问题,届时我们将处理分页功能。

    @dryu - 实际上,这是我们 6-8 个月前没有立即启动网格的主要原因之一。在完成规划之后,我们必须首先将其他事情安排好。我们需要确保我们有足够的资源来处理网格,以及维护和改进 jQuery UI 的其他部分。现在 1.8 已经稳定了;菜单、工具提示和微调器已经合并到主分支中,因此它们将在 1.9 版本中发布(几个月后,比网格版本早 - 请参阅 http://wiki.jqueryui.com/Roadmap )。从 2010 年 7 月开始,我们每周有 20 个小时专门用于 Scott Gonzalez 的时间,以确保现有代码和新代码能够继续开发和维护。这对我们来说是一个巨大的帮助,并且应该再持续 5 个月。此外,他并不孤单。他有一个不断壮大的团队,他们将专注于此,而不是网格。即使这样,直到 12 月我们才感觉到自己能够在所有这些事情的基础上再处理网格,作为一项并行工作。

  4. richard_alan 说:

    在构建此网格时,请不要忘记某些用户希望网格支持 Azure 云表存储。

    谢谢!

    Richard

  5. Pingback: jQuery: » 2011 年 2 月 jQuery 社区更新

  6. wallenium 说:

    我认为网格会很棒。

    但是:[…]它们将在1.9版本中发布(几个月后,比网格早)[…]
    我认为等待1.9分支的最终版本再等几个月很可惜。我喜欢加载器小部件,但由于它需要从1.8开始进行核心更改,我每次都必须重新构建它……有没有一种巧妙的方法来获得一个未压缩的UI文件?

  7. Ben Utzer 说:

    好消息!我希望能够像YUI数据表格一样选择单元格范围和块。

  8. @hello – 目前这些功能不在计划范围内,但如果你能在这个页面上 http://wiki.jqueryui.com/Grid-Features 添加一些关于它们的详细信息,我们会非常感谢,这样我们将来有机会考虑它们。

    @Yahasana – 谢谢你的链接。我已经把它添加到 http://wiki.jqueryui.com/Grid-CoolDemos 中,我们可以用它作为参考。

    @wallenium – 很多程序可以连接JavaScript文件,你可以把它们指向GitHub中的文件,如果你想要最新的版本。否则,请使用1.9里程碑版本。我们正在准备发布另一个版本,它将是菜单、工具提示和加载器迁移到主分支后的第一个版本。

    @Christophe Méresse – 我认为这篇文章(在开发方法下)以及 http://wiki.jqueryui.com/w/page/34246941/Grid#DevelopmentApproachhttp://wiki.jqueryui.com/Grid-OtherGrids 都很好地表明我们已经完成了我们的功课;我们了解现有的网格实现,并希望从中学到尽可能多的东西。

  9. daniel 说:

    我对该小组对数据模型的愿景很感兴趣。

    我使用过jLinq(http://www.hugoware.net/Projects/jLinq)并了解了它如何在jqGrid中实现,我越来越喜欢就地修改数据集的能力,而不是依赖服务器或外部代码来修剪结果集并触发网格的重新绘制。

    我想知道你们如何看待数据集和网格之间的关系。像MVC吗?排序和过滤是网格的展示功能,底层数据保持不变,还是数据集就地改变,包括顺序的改变,这反映在网格中,或者在数据集和网格之间有一个“过滤和排序”代理?分页是如何设想的?网格通过调用服务器端的调用数据集来打包分页事件?缓存?

    例如,我完全转向了像Sammy(http://code.quirkey.com/sammy/)这样的MVC,并且不期望每次都去服务器获取修改后的数据集。在这方面,$.ajax 获取数据实际上只发生一次。如果我修改数据的展示方式(过滤或排序),我可能需要在某个时间点回到“原始的、未过滤的”原始数据,希望不要重新向服务器请求完整数据。在这方面,一个“数据集 - 数据窗口控制(过滤、排序、内存分页)代理 - 网格”链对我来说是最有意义的。

    你们能详细说明一下吗?

  10. daniel 说:

    数据集问题另一个角度或复杂之处是如何使用网格实现“多头”(对相同数据集有多个视图)。

    示例
    1. 网格链接到数据集。链接到相同数据集的“具有编辑功能的详细过滤列表”。
    2. 分页、过滤、排序是在展示小部件、数据集还是“数据窗口代理”级别控制的?
    2. 通过“具有编辑功能的详细过滤列表”添加新条目。数据集会将“我们有新数据”传播并更新网格吗?

  11. Pingback: Giant Table is dead, long live jQuery UI ! | Thomas Genin

  12. Ventaur 说:

    真是太棒的消息了!一致性是关键,这让我感到很欣慰。

    你们提到“构建模块化且可扩展的组件,例如排序、分页、过滤和就地编辑”。我们可以从这句话中得出,最终会有一套可靠的jQuery实现,用于通用地执行这些操作吗?

    特别是,我非常渴望放弃使用YUI,仅仅是为了支持通过URL书签进行AJAX分页,以支持历史记录支持。由于这很可能是在支持客户端分页(有或没有网格)时,我们许多人都会考虑的事情,你能谈谈一个可能的 history 模块的实现吗?

    http://developer.yahoo.com/yui/3/history/

    提前感谢,

    -Matt

  13. John Farrar 说:

    人们不禁要问两个问题。

    1. 预计完成时间……网格的进度更新。
    2.所见即所得编辑器(呵呵,不得不提,但不要破坏帖子和答案)

  14. 你好,
    我只是想提醒一下虚拟滚动。
    如果你们决定实现它,可能已经了解了所有浏览器中滚动高度的限制(IE 最糟糕,大约 50000px)。这意味着如果使用 jqgrid 的方法以像素为单位计算虚拟行,就会遇到这个限制。SlickGrid 已经以某种方式解决了这个问题,但我对具体的解决方案并不熟悉。

    继续努力!

  15. Prakash Thangavelu 说:

    非常期待!

    以下功能将会实现吗?

    1. 使用键盘导航键
    2. 滚动时“固定标题”