新的官方 jQuery 插件提供模板、数据链接和全球化功能

发布日期: 作者:

随着 jQuery 项目的不断发展,开发者社区的需求也日益增长。作为一个项目,我们专注于构建最佳功能,并以可靠和开放的方式提供它们。与大多数开源项目一样,我们能够提供的软件在很大程度上要归功于许多志愿者的慷慨,他们捐赠自己的时间和编码技能,使 jQuery 和 jQuery UI 成为目前使用最广泛的 JavaScript 库之一。

在 3 月份的 MIX 2010 大会上,我们宣布微软已承诺通过代码贡献和资源支持 jQuery 项目。不久之后,微软发布了第一个 jQuery 插件供公众审查,该插件为 jQuery 社区提供了客户端模板功能。随后,他们又发布了第二个插件,jQuery 数据链接,它提供了数据同步功能,最近还发布了 jQuery 全球化插件,该插件为超过 350 种文化提供全球化信息,包括苏格兰盖尔语、弗里斯兰语、匈牙利语、日语和加拿大英语。

在七个月的开发过程中,jQuery 和微软团队密切合作,确保代码符合 jQuery 项目指定的最佳实践,并满足 jQuery 社区的特定需求。我们还确保任何贡献的代码都将以与 jQuery JavaScript 库相同的非限制性许可条款提供给 jQuery 社区。

官方 jQuery 插件

今天,我们很高兴地宣布,以下微软贡献的插件 - **jQuery 模板插件**、**jQuery 数据链接插件** 和 **jQuery 全球化插件** - 已被接受为 jQuery 项目的官方支持插件。作为支持的插件,jQuery 社区可以确信这些插件将继续得到增强,并与 jQuery 和 jQuery UI 库的未来版本兼容。

jQuery 模板和 jQuery Datalink 插件将由 jQuery 核心团队管理,而 jQuery 全球化插件将成为 jQuery UI 项目的一部分,从而为我们的丰富 UI 库提供扩展的全球化功能。此外,jQuery 模板插件中的功能将从版本 1.5 开始直接集成到 jQuery 核心库中。

文档和教程

为了帮助您立即使用这些插件,我们提供了 API 文档和教程,帮助您快速上手这些新技术。

API 文档

教程

可供下载

新插件的源代码可以在 Github 上找到,我们鼓励社区评估并增强其功能。新插件可立即下载,代码可以在此处找到

jQuery 模板 - http://github.com/jquery/jquery-tmpl
jQuery Datalink - http://github.com/jquery/jquery-datalink
jQuery 全球化 - http://github.com/jquery/jquery-global

新的贡献方式

我们感谢 微软 对帮助 jQuery 项目并为 jQuery 库提供新功能的承诺。这对两个团队来说都是一段令人难忘的经历,为未来的合作奠定了基础,并为满足 jQuery 社区的需求开辟了一条新路径。

请务必阅读微软联合发布的公告,其中概述了这项工作的历史以及这些贡献对微软和 jQuery 社区的重要性。

jQuery 模板、数据链接和全球化被接受为官方 jQuery 插件 - Scott Guthrie,微软开发部门公司副总裁

jQuery 模板现在是官方 jQuery 插件 - Boris Moore,微软

jQuery 模板在实际应用中的使用 - James Senior,微软

Web Camps TV #5 - 微软向 jQuery 贡献代码!
- Channel 9 视频

新的官方 jQuery 插件提供模板、数据链接和全球化功能” 上有 31 条评论

  1. 真是个令人难以置信的消息!

    谁会想到几年前微软会与一个开源项目密切合作并取得成功?

    Scott Gu 和他的团队正在从内部彻底改变这家公司!

  2. Georgiy Ivankin 说:

    我只是不明白它为什么比 John 最初的 micro-templating 移植版本大了 4 倍(没错,是 18.8 kb 对 4.5 kb)?

    提供的功能并不多。

  3. 看起来很有趣,我有一些问题,但我找不到答案

    1. 为什么 jQuery 模板插件计划成为 jQuery 核心库的一部分?

    2. 虽然在 Github 上共享源代码很好,但测试用例在哪里?它们保存在某个秘密地下掩体中,远离开源社区的窥视?还是它们不存在?哪一个更可怕?

  4. @Scott,Morgan:模板和依赖管理在很长一段时间内一直是 jQuery 1.5 的路线图。我们一直在与一些微软开发人员合作,以实现一个既有效又符合我们对良好模板解决方案要求的插件。

    @Georgiy:这个实现比我最初的 micro-templating 解决方案好得多。它更不易出错,并且更具可扩展性。它使数据绑定成为可能,这非常棒。

    @Morgan:据我了解,该插件目前还没有自动化单元测试——只有功能测试(如演示中所见)。当然,在任何代码提交到核心之前,我们都需要一套完整的单元测试。

  5. @Scott Moore
    正如我所读,jQuery 正在向模块化发展,他们愿意为我们提供按需加载模块的选择。
    如果你需要使用动画,你就可以只加载这个模块,这样会更轻便。
    希望他们能继续这项伟大的工作!

  6. @Resig

    感谢你详细解释了这些问题 :-)

    如果能看到社区对这些插件的贡献,让他们获得一些关注,那就太好了,但是如果没有单元测试,新手就很难在不破坏他们不理解的代码部分的情况下做出贡献。

    你知道这三种插件是否存在单元测试吗?也许我们可以敦促某个人提交测试呢?

  7. Paul T. on said:

    很棒的消息……我很高兴看到这些模块被正式添加到 jQuery 项目中,也很高兴看到微软通过如此重大的贡献来拥抱开源 jQuery 项目。

  8. 当前版本的 jQuery 无法与这些插件一起使用。你必须使用下载中包含的那些。然而,这个版本破坏了 jQuery UI。

    其他人可以确认一下吗?

  9. Scott Moore on said:

    我知道这已经在路线图上了,但是为什么这成为了核心的一部分,而不是保持插件状态?为什么要让核心更大?是因为绝大多数人使用这些东西,所以这样做是有意义的吗?是因为未来将有一些内部函数会利用它,所以它无法优雅地移除吗?

  10. @Ivan:你说的是 Data Link 插件,对吧?它确实依赖于 jQuery 1.4.3。由于 1.4.3 还没有发布,仓库中包含的版本是最近一个每日构建的版本。如果它破坏了 jQuery UI,那么可能存在其他问题……?你能具体说明一下它是如何破坏的吗?

  11. 虽然我很期待波士顿会议,但我认为 MS jQuery 团队在纽约办公室举办关于新插件的演讲是一个好主意!

  12. 你好 Boris,感谢你的回复。是的,我说的是 Data Link 插件。抱歉我的第一篇文章没有说清楚。

    安装下载中包含的 1.4.3 构建后,我注意到它破坏了 jQuery UI 中的手风琴小部件。

    此外,我自己编写了一个数据网格插件,它使用 $.ajax 调用来更新网格。它也坏了。我得到了以下错误。

    jQuery.ajax.triggerGlobal 不是函数
    [在此错误处中断] jQuery.ajax.triggerGlobal( s, “ajaxSend”, [xhr, s] );

    请告诉我这个插件的支持论坛,以便我能详细说明哪些功能坏了,哪些功能正常。

    谢谢。

  13. @Ivan:听起来像是关于 ajax 触发器的一些更改导致了 jQueryUI 出现问题。你需要在 jQueryUI 论坛或 jQuery 开发论坛上提出这个问题,或者在 jQuery 上提交一个工单。尝试用该版本的 jQuery 重现问题,但不要使用 Data Link。

    @Stephen:是的,使用远程模板并不难。使用任何你想要的 AJAX 调用获取模板的标记字符串,或者简单地使用一个指向定义了字符串的 js 文件的静态脚本块。然后,你可以将字符串传递给 jQuery.tmpl,或者更好的,先使用 jQuery.template 编译一个命名模板,然后将名称传递给 jQuery.tmpl 进行渲染。

  14. Daniel Dotsenko on said:

    我刚刚对最新的 $.tmpl(来自 Git 仓库)进行了性能测试,与其他模板插件相比,我对 $.tmpl 的性能相当失望。

    我使用了与 jQote 一起分发的基准测试集,发现它的渲染引擎比 $.tmpl 快 4600%(不是 46%。是 4600%,也就是快 46 倍)。

    我喜欢 $.tmpl 使用的元语言。使用起来非常方便,但我随时会选择速度而不是“漂亮”的模板元语言。

    鉴于承诺将 $.tmpl 包含在 jQuery 1.5 中,我不禁要问,为什么要在顶级 JS 库中包含速度慢的引擎?

  15. raymond on said:

    我注意到 data link 插件文件中没有许可信息。

    data-link 会使用 MIT/GPL 许可吗?

  16. Syranide on said:

    @Daniel Dotsenko:你在使用 tmpl 之前编译了你的模板,对吧?如果你这样做了,那么是的,这确实让人很失望。

  17. redsquare 说:

    @Daniel Dotsenko

    随时可以在 jsfiddle 或 jsbin 上发布你的测试,让我们都能看到。
    不要在没有事实和演示的情况下就喷,这对任何人都没有帮助。

  18. 如果这个插件现在是官方的,为什么 jQuery 文档网站上将其列为已弃用,并表示不再支持它?