释放网格
jQuery UI 团队很自豪地宣布,我们正在构建一个功能丰富、速度极快的网格小部件,它将通过数据链接、排序、分页、过滤、行选择和内联编辑来增强 HTML 表格。作为此过程的一部分,我们将构建网格功能作为独立的小部件,并重新审视现有的 jQuery UI 组件。在这个过程结束时,我们不仅将拥有一个网格,而且还将拥有一个经过更好测试、功能更全面的用户界面库。
当前进度
我们即将完成该项目第 1 阶段的开发,该阶段涵盖了通用数据模型、数据类型解析和标记的创建。此阶段将最终形成一个“零功能网格”,这是一个增强的 HTML 表格,它支持 jQuery UI CSS 框架,并作为其他网格功能的基础。有关计划用于未来阶段的工作的详细信息,请参阅 路线图。
开发方法
已经存在许多高质量的 jQuery 网格插件。我们认识到它们各自都拥有令人印象深刻的功能集、能力以及 jQuery 社区成员的使用水平。我们正在研究并应用当今最流行的网格和数据表插件的实践和技术,包括当前的热门插件,例如 SlickGrid、jqGrid、DataTables 以及一些已经有一段时间没有更新的插件,例如 Tablesorter、Flexigrid 和 Ingrid。我们邀请所有这些插件以及任何其他网格插件的作者和用户参与 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 网格的赞助商,请 联系我们。
继续努力,大家。我真的很期待看到它的发展方向!
太棒了!迫不及待地想试用它,并将其用于我的项目中!
请谷歌捐赠,他们一定会这样做的……
或者可能不会,因为他们能够编写出令人尊敬的 JavaScript 代码,而其他一些“软件巨头”却做不到。
在开源项目中看到如此大的微软徽标让我感到毛骨悚然……为什么他们不发布一个可以正常工作的 Web 浏览器,尊重标准,而且不会因为 IE 的不一致性而让 Web 开发人员加倍工作
您能使其适用于任意数量的行(即行延迟加载)吗?我有时会处理数百万行数据,如果网格能够在滚动到时延迟加载行,那就太好了。
例如,请参阅:http://stackoverflow.com/questions/2402953/javascript-data-grid-for-millions-of-rows
网格 UI 组件当然受欢迎。但是,那些已经开发了很长时间的组件(例如菜单和工具提示小部件)怎么样?在完成现有的开放项目之前启动新的部件开发是否有意义?
感谢 @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 月我们才感觉到自己能够在所有这些事情的基础上再处理网格,作为一项并行工作。
嘿,这是一个很棒的消息,我真的很期待!加油!
在构建此网格时,请不要忘记某些用户希望网格支持 Azure 云表存储。
谢谢!
Richard
Pingback: jQuery: » 2011 年 2 月 jQuery 社区更新
列跨度怎么样?您会实现它吗?
抱歉,重复发帖了。但是行跨度呢?
好消息……
确实好消息。
我想看看在 http://www.sigmawidgets.com/products/sigma_grid2/ 中的一些酷炫功能会被考虑纳入这个组件中。
我认为网格会很棒。
但是:[…]它们将在1.9版本中发布(几个月后,比网格早)[…]
我认为等待1.9分支的最终版本再等几个月很可惜。我喜欢加载器小部件,但由于它需要从1.8开始进行核心更改,我每次都必须重新构建它……有没有一种巧妙的方法来获得一个未压缩的UI文件?
你们会考虑功能强大的jqGrid (http://www.trirand.com/blog/) 或者更轻量的flexigrid (http://www.flexigrid.info) 吗?
好消息!我希望能够像YUI数据表格一样选择单元格范围和块。
@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#DevelopmentApproach 和 http://wiki.jqueryui.com/Grid-OtherGrids 都很好地表明我们已经完成了我们的功课;我们了解现有的网格实现,并希望从中学到尽可能多的东西。
我对该小组对数据模型的愿景很感兴趣。
我使用过jLinq(http://www.hugoware.net/Projects/jLinq)并了解了它如何在jqGrid中实现,我越来越喜欢就地修改数据集的能力,而不是依赖服务器或外部代码来修剪结果集并触发网格的重新绘制。
我想知道你们如何看待数据集和网格之间的关系。像MVC吗?排序和过滤是网格的展示功能,底层数据保持不变,还是数据集就地改变,包括顺序的改变,这反映在网格中,或者在数据集和网格之间有一个“过滤和排序”代理?分页是如何设想的?网格通过调用服务器端的调用数据集来打包分页事件?缓存?
例如,我完全转向了像Sammy(http://code.quirkey.com/sammy/)这样的MVC,并且不期望每次都去服务器获取修改后的数据集。在这方面,$.ajax 获取数据实际上只发生一次。如果我修改数据的展示方式(过滤或排序),我可能需要在某个时间点回到“原始的、未过滤的”原始数据,希望不要重新向服务器请求完整数据。在这方面,一个“数据集 - 数据窗口控制(过滤、排序、内存分页)代理 - 网格”链对我来说是最有意义的。
你们能详细说明一下吗?
数据集问题另一个角度或复杂之处是如何使用网格实现“多头”(对相同数据集有多个视图)。
示例
1. 网格链接到数据集。链接到相同数据集的“具有编辑功能的详细过滤列表”。
2. 分页、过滤、排序是在展示小部件、数据集还是“数据窗口代理”级别控制的?
2. 通过“具有编辑功能的详细过滤列表”添加新条目。数据集会将“我们有新数据”传播并更新网格吗?
你们很棒!等不及用它来替换我的GWT网格了。
Pingback: Giant Table is dead, long live jQuery UI ! | Thomas Genin
这个小部件什么时候会完成?
真是太棒的消息了!一致性是关键,这让我感到很欣慰。
你们提到“构建模块化且可扩展的组件,例如排序、分页、过滤和就地编辑”。我们可以从这句话中得出,最终会有一套可靠的jQuery实现,用于通用地执行这些操作吗?
特别是,我非常渴望放弃使用YUI,仅仅是为了支持通过URL书签进行AJAX分页,以支持历史记录支持。由于这很可能是在支持客户端分页(有或没有网格)时,我们许多人都会考虑的事情,你能谈谈一个可能的 history 模块的实现吗?
http://developer.yahoo.com/yui/3/history/
提前感谢,
-Matt
人们不禁要问两个问题。
1. 预计完成时间……网格的进度更新。
2.所见即所得编辑器(呵呵,不得不提,但不要破坏帖子和答案)
你好,
我只是想提醒一下虚拟滚动。
如果你们决定实现它,可能已经了解了所有浏览器中滚动高度的限制(IE 最糟糕,大约 50000px)。这意味着如果使用 jqgrid 的方法以像素为单位计算虚拟行,就会遇到这个限制。SlickGrid 已经以某种方式解决了这个问题,但我对具体的解决方案并不熟悉。
继续努力!
这是一个好消息。
等不及了。
谢谢……
@daniel – 谢谢你的兴趣和反馈。这些都是很棒的问题。我建议你在 wiki http://wiki.jqueryui.com/Grid 上阅读我们到目前为止在这些领域所做的计划,并在相应的页面上发布任何问题作为评论。谢谢。
@BlueMan – 还要几个月的时间。
@Ventaur – 是的,这正是我们的设计。
目前没有关于与 Grid 项目直接相关的历史记录的计划,但你可以在 http://wiki.jqueryui.com/History 关注 UI 中任何历史记录工作方面的进展。
非常期待!
以下功能将会实现吗?
1. 使用键盘导航键
2. 滚动时“固定标题”
@Prakash
1. 取决于你问的是什么。我们不是创建一个具有可编辑单元格的电子表格,你可以用 Tab 键和箭头键来导航,但只要可能,我们将支持键盘交互以及鼠标交互。
2. 是的。事实上,已经有一个原型:http://view.jqueryui.com/grid/grid-markup/grid.html