jQuery 社区更新 10/26

发布于 作者

jQuery 核心的更新

今天我有一些关于 jQuery 下一个版本的好消息:jQuery 1.4.4。在 1.4.3 版本发布之后,该版本包含许多修复(当然还有 jQuery Mobile 的推出),我们认为尽快发布一个维护版本将最有利于社区,旨在进一步提高 jQuery 核心的稳定性。

对于 1.4.4,我们已经确定了对我们来说最需要修复的错误,并且感谢 John Resig 和错误分类团队,我们已经修复了这些问题的大部分。我们目前计划在 11 月初发布 1.4.4,假设在此版本中没有发现进一步的重大错误。

今天,我们想请社区协助我们通过压力测试来确保这个新版本尽可能稳定。虽然我们已经运行了 jQuery 的一套全面的自动化单元测试,但将现实世界中的用户测试添加到我们的项目流程中,使我们有机会更早地修复关键错误,并有助于 1.4.4 比上一个版本有显著改进。

如果您想测试 1.4.4,您可以从这里下载最新版本的 jQuery(命名为 jQuery Git)

https://code.jqueryjs.cn/jquery-git.js

请记住,此版本尚未准备好用于生产系统,仅供评估和测试。它现在也已在 jsFiddle.net 上以“jQuery 0 Git”条目提供。

我们感谢社区协助我们使此版本尽可能稳定,并欢迎您提供的任何反馈。如果您发现此版本中的错误并想报告它,请参阅 指南 关于错误提交。

jQuery UI 团队的更新

jQuery UI 团队的开发人员在会议结束后在波士顿停留了三天,能够修复一些错误并进行一些面对面的 jQuery UI 未来规划。jQuery UI 1.8.6 即将发布,请关注 jQuery UI 博客 以获取更多信息。

此外,jQuery UI 团队正在与 Colin Snover 合作,将 jQuery UI 的工单系统迁移到像 jQuery Core 刚刚收到的新系统。我们对拥有更稳定和协作的工单跟踪系统感到非常兴奋,并希望社区在工单分类方面做出更多贡献。如果您有兴趣贡献,请与 jQuery 开发人员关系团队成员 联系。

Ralph Whitbeck 和 Rey Bango 的 官方 jQuery 播客 上周发布了他们的 第 37 集。本周的嘉宾是 Ben Nadel,他们讨论了 jQuery 在 ColdFusion 社区中的应用,以及上周末在波士顿举行的 jQuery 会议。本周他们将采访 John Resig,讨论 jQuery 1.4.3 和 jQuery Mobile。如果您有任何想回答的问题,请通过 联系表格 发送您的问题。

不要忘记我们的 论坛。我们有一个充满活力,提问和回答问题的社区。我们希望更多的人通过帮助他人回答问题来做出贡献。这是一种参与项目的好方法;将您的知识回馈给他人是非常有益的。

jQuery 1.4.3 发布

发布于 作者

jQuery 1.4.3 现已发布!这是在 jQuery 1.4 基础上的第三次小版本发布,修复了一些错误并带来了一些不错的改进。

我谨感谢以下为本次发布提供补丁和建议的社区成员:Anton M.、Justin Meyer、Colin Snover、Ryan Tenney、Louis-Rémi Babé、David Petersen、Rick Waldron、Dave Reed、John-David Dalton、temp01、Heungsub Lee、J. Ryan Stinnett、Robert Katic、Juriy Zaytsev、James Burke、Jeffery To、Carl Fürstenberg、Jacob Wright、Jeff Robinson、Christian C. Salvadó、Andrée Hasson、Jason Webster、Dave Furfero、Adam Sontag、Travis Hardiman、DBJDBJ 和 Ben Alman。

以及以下 jQuery 团队成员:Scott González、Brandon Aaron、Yehuda Katz、Dave Methvin、Karl Swedberg、Paul Irish、Ralph Whitbeck、Jörn Zaefferer、Richard Worth、Doug Neiner 和 Mike Alsup。

下载

和往常一样,我们提供两个版本的 jQuery,一个是压缩版(我们现在使用 Google Closure Compiler 作为默认压缩器),另一个是未压缩版(用于调试或阅读)。

您可以直接将以上 URL 包含到您的网站中,从而获得快速加载 jQuery 的全部性能优势。

此外,您还可以直接从 Google 的 CDN 加载 URL

通用改进

我们对 jQuery 的内部结构和我们用于开发的指南进行了一些改进。

JSLint

现在 jQuery 已经通过了 Douglas Crockford 的 JSLint 工具。我们已经将该工具集成到我们的工作流程中(从 Github 检出 jQuery 并运行 ‘make lint’ 将显示结果)——使我们能够及时发现潜在的回归。

我们对 JSLint 进行了一些小的更改,以适应我们特定的开发风格,并在 jQuery 核心风格指南 中记录了这些结果。

模块化

我们还删除了 jQuery 源代码中存在的一些模块间的依赖关系。这样做可以提高在使用来自源代码的 jQuery 副本时的灵活性。例如,您现在可以使用脚本加载器,例如 LABjsRequireJS,来动态加载单个 jQuery 模块(例如核心、支持、数据和事件)。

此外,此更改使得您不再需要构建 jQuery 副本才能运行 jQuery 测试套件。这极大地改进了我们的开发工作流程——使我们能够快速更改 jQuery 并测试结果,而无需进行(相对而言)缓慢的构建步骤。

新功能

所有新功能和更改都可以在 jQuery API 文档 1.4.3 版 中找到。

CSS 模块重写

几乎整个 CSS 模块都已重写,完全专注于可扩展性。您现在可以编写自定义 CSS 插件,以扩展 .css().animate() 提供的功能。

例如,这里有一个由 Louis-Rémi Babé 编写的利用新功能的插件:jQuery Rotate

该插件提供了一种跨浏览器的设置和动画化 DOM 元素旋转的方法,只需使用传统的 jQuery 方法即可,如下所示

$('#myDiv').css('rotate', 90);
$('#myDiv').animate({rotate: 180});

在重写期间,我们将 jQuery 中包含的功能分解为两个非常清晰的路径:获取和设置元素的 .style 属性(通过 jQuery.style 完成)以及获取元素的当前计算样式信息(通过 .css() 和 jQuery.css 完成——请注意,jQuery.curCSS 已不再使用并已被弃用)。.css() 的功能同时使用 jQuery.style 和 jQuery.css 方法。

进行此更改也提高了计算样式检索的速度,结果快高达 20%。

jQuery 1.4.3 .css() Getting a Value

所有性能测试的原始数据都可以在 以下 Google 表格 中找到。所有测试都可以在 jQuery 源代码仓库 中找到。

数据

数据模块已经得到许多改进,大大提高了其实用性。

HTML 5 数据属性

首先,jQuery Metadata 插件提供的主要功能已移动到核心。 HTML 5 数据属性 将自动提取到 jQuery 的数据对象中。

例如,给定以下 HTML

<div data-role="page" data-hidden="true" data-options='{"name":"John"}'></div>

以下所有 jQuery 代码都将有效。

$("div").data("role") === "page";
$("div").data("hidden") === true;
$("div").data("options").name === "John";

请注意,字符串保持不变,而 JavaScript 值将转换为其关联的值(包括布尔值、数字、对象、数组和 null)。

数据属性在第一次访问数据属性时被提取,然后不再访问或修改(所有数据值随后都存储在 jQuery 内部)。

JavaScript 对象

对何时在 JavaScript 对象(或更准确地说,任何不是 DOM 节点的东西)上使用 .data() 进行了一些更改。首先,每当您在 JavaScript 对象上设置数据时,数据都会直接设置在对象上——而不是进入内部数据对象存储。此外,附加到对象的事件被放入一个新的 ‘__events__’ 属性中,该属性实际上是一个函数。这是为了允许事件直接附加到对象,在对象被收集时被垃圾回收,并且不被 JSON 序列化器序列化。这些更改应该使 jQuery 的数据和事件系统在 JavaScript 对象上更加有用。

活动

jQuery 已经有了 setData 和 getData 事件(在通过 .data() 方法设置或获取数据时广播),覆盖这些方法可以覆盖这些功能的默认行为(例如,您可以返回不同的值或防止设置值。请注意,在 jQuery 1.4.3 中,这些事件不再冒泡(允许它们冒泡在大多数应用程序中代价太高)。

在 1.4.3 中,我们引入了一个名为 changeData 的新事件。此事件在在使用 .data() 更改任何单个数据属性后触发。例如

var user = new User();
$(user).bind("changeData", function( event, name, value ) {
  $("#user").find("#" + name).val( value );
});

changeData 事件被新的 jQuery Data Linking 插件广泛使用。它使得数据 API 能够将 JavaScript 对象属性的设置与表单字段同步。

其他

在 1.4.3 中,.data(Object) 的 API 有一个小的更改:调用 .data(Object) 不会完全替换数据对象,而是扩展现有对象,保留未指定的数值。我们发现这是基于许多混淆的错误报告的预期结果。

Traversing

几乎所有主要遍历方法的性能都得到了显著提高。 .closest()、.filter()(以及因此,.is())和 .find() 都得到了极大的改进。

这些改进主要源于更多地利用浏览器 querySelectorAll 和 matchesSelector 方法(如果存在)。jQuery 项目请愿浏览器添加新的 matchesSelector 方法(编写测试套件、与供应商交谈和提交错误),整个社区现在都可以获得出色的性能优势。

jQuery 1.4.3 .closest() Performance

jQuery 1.4.3 .filter() on a Single Element

jQuery 1.4.3 .find() on an element

所有性能测试的原始数据都可以在 以下 Google 表格 中找到。所有测试都可以在 jQuery 源代码仓库 中找到。

上述性能结果专门查看了 jQuery 代码中的三个非常常见的案例:在单个 DOM 节点上使用 .closest(),在单个 DOM 节点上使用 .filter()(或 .is()),以及在 DOM 元素上使用 .find()(例如,$(“#test”).find(“something”))。

请注意,显示的是实际支持 querySelectorAll 或 matchesSelector 的浏览器——不支持这些方法的现有浏览器继续具有相同的性能特征。

Ajax

着陆了一些新的 Ajax 功能,应该可以帮助插件作者和构建渐进增强型应用程序的开发者。

引入了一个新的 jQuery.readyWait 属性,当将其添加到时,会延迟 ready 事件的执行。这应该由希望延迟 ready 事件发生直到指定时间的插件使用。例如,RequireJS 已经实现了此属性的使用,允许您加载应该在 ready 事件触发之前处理的依赖项。每当一个项目加载完成时,您最终应该调用 jQuery.ready(true)(如果所有依赖项都已加载——并且 DOM 准备就绪——那么 ready 事件将触发)。

我们还添加了一个新的支持属性:jQuery.support.ajax。 简单地说,如果浏览器能够处理“Ajax”(XMLHttpRequest)请求,则返回 true。

活动

.bind(“click”, false) 和 .unbind(“click”, false)

绑定一个什么也不做但返回 false(防止默认操作并停止事件冒泡)的函数的便捷快捷方式。

.click(data, fn)

所有内置事件方法(例如 .click())现在都接受数据作为初始参数(就像 bind 方法一样)。

event.namespace

事件对象的一个新属性,包含传递到 .trigger() 的事件命名空间。

Effects

.show(speed, easing, callback), 等

所有动画方法现在都支持 easing。就像 .animate() 支持 easing 参数(由 easing 插件使用)一样

jQuery.fx.interval

一个新属性,公开了所有效果的触发速率(以毫秒为单位——默认为 13)。减小这个数字将使某些浏览器(例如 Chrome)中的动画更流畅,但会以牺牲 CPU 为代价。

其他

jQuery.type

确定对象的内部 JavaScript [[Class]]。使用不同的方面来确定对象的精确返回值。逻辑可以确定如下

  • 如果对象未定义或为 null,则相应地返回“undefined”或“null”。
  • 如果对象具有与浏览器内置对象之一等效的内部 [[Class]],我们将返回关联的名称。 (关于此技术的更多细节。)
    • jQuery.type(true) === “boolean”
    • jQuery.type(3) === “number”
    • jQuery.type(“test”) === “string”
    • jQuery.type(function(){}) === “function”
    • jQuery.type([]) === “array”
    • jQuery.type(new Date()) === “date”
    • jQuery.type(/test/) === “regexp”
  • 其他所有内容都将返回 “object” 作为其类型。

jQuery.isWindow

一种简单的确定对象是否可能是 window 的方法。

jQuery.isWindow(window); // true

此外,我们现在使用原生的 Array.isArray 方法来处理 jQuery 的 isArray(如果可用),并且我们利用浏览器提供的原生 String trim 方法(同样,如果可用)。jQuery.trim 进行了许多性能改进,详情请参见 以下主题

测试

jQuery 1.4.3: Passing 3621 Tests in All Browsers

jQuery 1.4.3 在所有受支持的浏览器上通过了 3621 个测试。我们在 Firefox 4 上 100% 通过,并且在 IE 9 上几乎通过(我们发现了两个错误,提交了它们,其中一个已经修复)。

jQuery 社区更新 10/12

发布于 作者

本周对于 jQuery 来说是一个重要的周,我们的 jQuery 1.4.3 的第二个发布候选版本 已经发布并可供测试。我们感谢所有提交反馈和 bug 报告的人,他们对使此版本尽可能稳定非常有帮助。请记住,如果您遇到想要报告的 bug,您可以轻松地通过我们的 bug 跟踪器 提交。

我们的新 Bug 跟踪器

关于 bug 跟踪器,我想将您交给 Colin Snover,他将向您宣布有关我们的 bug 跟踪系统的情况

今天我们推出了 jQuery 核心的新 bug 跟踪系统。除了速度更快、更易于使用之外,新的 Trac 还具有许多我们希望您喜欢的新功能。我们努力确保最终用户和开发人员都能获得比以前服务更好的体验。

最重要的变化是增加了投票功能,这将帮助团队确定社区成员最关心哪些 bug 和新功能。到目前为止,没有办法获得如此具体的衡量标准来了解人们认为哪些问题最重要,因此我们对这项功能感到非常兴奋,并希望您使用它来帮助我们了解您最希望在库中看到什么。

我们添加了一个免登录的 bug 报告模式,这将允许任何人无需先进行注册即可报告 bug。我们还显着改进了报告过程,因此在提交票证时,只需要提供摘要、描述、版本号和问题类型。

新的 Trac 的另一个很棒的新功能是更可定制的通知系统,该系统允许任何人选择何时收到有关票证更改的电子邮件。此功能还引入了“关注”票证的功能,因此您可以及时了解您关心的票证,而无需定期访问 bug 跟踪器。

对于 jQuery 开发者来说,新的 bug 跟踪器提供了大量的改进。最明显的是,我们现在能够设置交叉引用,以便我们知道哪些问题会阻止其他票证,哪些票证会被其他票证阻止。我们还集成了对 GitHub 的支持,因此 jQuery GitHub 存储库中的更改会自动反映在 Trac 的时间轴和票证系统中。最后,对票证工作流程进行了更改,以便可以更快地处理重复的票证,并且提交者放弃的票证会自动关闭,以减少无效报告的数量。

我们对添加到新的 bug 跟踪器的所有内容感到非常兴奋,我们希望您今天能去看看!

我们鼓励用户在提交新的 bug 报告时登录,因为这将允许您查看和使用一些新的改进功能,例如投票小部件以及有关您的 bug 报告后续情况的通知。请告诉我们您的想法!

社区支持

我们社区的伟大之处在于,我们始终乐于伸出援手,帮助那些刚开始使用 jQuery 的人。

为此,我们诚挚邀请具有相关经验的成员参与到 jQuery 论坛 的讨论中——这是一个帮助初学者解答 jQuery 相关问题,或协助遇到代码运行问题的成员的绝佳场所。要开始参与,您只需创建一个新的论坛帐户,或者使用您的 Google、Yahoo 或 Facebook 帐户登录即可。

征集新的 jQuery 和 jQuery UI 教程

jQueryjQuery UI 文档站点是学习 jQuery 的绝佳信息来源,但我们也希望为社区提供链接到更深入探讨特定主题的教程。

如果您喜欢撰写关于 jQuery 或 jQuery UI 的文章,我们诚挚邀请您撰写关于特定方面、函数或组件的最新教程,以便我们与整个社区分享。优秀的教程可能会被添加到我们的官方推荐教程页面 这里

如果您希望提交教程以供审核,请随时与我们联系。

jQuery 会议

在波士顿举行的 官方 jQuery 会议 将于本月 16 日举行,所有参加会议的 jQuery 团队成员都期待在那里与您相见。如果您无法参加,也不必担心!无论您身在何处,都可以注册参加于 11 月 16 日至 17 日举行的 jQuery 在线峰会,届时将有 John Resig、Paul Irish、Rey Bango 等演讲者。

感谢您的关注,敬请期待 jQuery 团队的更多更新!

jQuery 1.4.3 Release Candidate 2 发布

发布于 作者

jQuery 1.4.3 Release Candidate 2 发布!这是 jQuery 1.4.3 的第二个发布候选版本。代码稳定(在所有我们支持的浏览器上通过所有测试),功能完整(我们不再接受该版本的任何新功能),并且需要在实际应用程序中进行测试。

获取代码

注意: 如果您正在使用 jQuery 1.4.3rc2 并且遇到错误,请确保您使用的是代码的常规版本,这将更容易找到错误发生的位置。

我如何提供帮助?

首先,尝试将上述未压缩版本的 jQuery 1.4.3rc2 放入您正在运行的实际应用程序中。如果您遇到异常或出现一些奇怪的情况,请立即登录到错误跟踪器并 提交错误请务必说明您在 jQuery 1.4.3rc2 中遇到了该错误!

我们将密切监控收到的错误报告,并努力修复 jQuery 1.4.2 和 jQuery 1.4.3 之间任何不一致的情况。

有关 1.4.3 版本的更多详细信息,请参阅之前的帖子 jQuery 1.4.3rc1

jQuery 1.4.3 Release Candidate 1 发布

发布于 作者

jQuery 1.4.3 Release Candidate 1 发布!这是 jQuery 1.4.3 的第一个发布候选版本。代码稳定(在所有我们支持的浏览器上通过所有测试),功能完整(我们不再接受该版本的任何新功能),并且需要在实际应用程序中进行测试。

获取代码

注意: 如果您正在使用 jQuery 1.4.3rc1 并且遇到错误,请确保您使用的是代码的常规版本,这将更容易找到错误发生的位置。

我如何提供帮助?

首先,尝试将上述未压缩版本的 jQuery 1.4.3rc1 放入您正在运行的实际应用程序中。如果您遇到异常或出现一些奇怪的情况,请立即登录到错误跟踪器并 提交错误请务必说明您在 jQuery 1.4.3rc1 中遇到了该错误!

我们将密切监控收到的错误报告,并努力修复 jQuery 1.4.2 和 jQuery 1.4.3 之间任何不一致的情况。

需要关注的地方

自 1.4.2 发布以来,jQuery 中有几个区域经历了广泛的更改

  • .css() 和相关的 css 处理方法都经过了彻底修改。
  • 确定元素可见性和动画代码中显示切换的逻辑。
  • 许多遍历逻辑都得到了改进和更改(is、filter、closest、find)。

关于该版本的完整详细信息即将公布 – 现在我们只需要您的帮助来捕获回归。

在您的帮助下,我们应该能够生成一个稳定的版本。现在我们正努力在下周末的波士顿 jQuery 大会上及时发布最终的 1.4.3 版本。感谢您在审查 jQuery 1.4.3rc1 中的帮助!

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

发布于 作者

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

在三月份,我们在 MIX 2010 上宣布微软致力于通过代码贡献和资源来支持 jQuery 项目。此后不久,微软发布了第一个 jQuery 插件供公众审查,该插件为 jQuery 社区提供了客户端模板功能。随后是他们的第二个插件 jQuery Data Link,它提供了数据同步功能,最近是 jQuery Globalization 插件,该插件为超过 350 种文化(从苏格兰盖尔语、弗里西亚语、匈牙利语、日语到加拿大英语)的 JavaScript 应用程序提供全球化信息。

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

官方 jQuery 插件

今天,我们很高兴地宣布微软贡献的以下插件 – jQuery Templates 插件jQuery Data Link 插件jQuery Globalization 插件 – 已被接受为 jQuery 项目的官方支持插件。作为受支持的插件,jQuery 社区可以确信这些插件将继续得到增强,并与未来版本的 jQuery 和 jQuery UI 库兼容。

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

文档和教程

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

API 文档

教程

可供下载

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

jQuery Templateshttp://github.com/jquery/jquery-tmpl
jQuery Datalinkhttp://github.com/jquery/jquery-datalink
jQuery Globalizationhttp://github.com/jquery/jquery-global

新的贡献渠道

我们感谢 微软 致力于帮助 jQuery 项目并为 jQuery 库提供新的令人兴奋的功能。这对双方都是一次有益的经历,为未来的合作奠定了基础,并为满足 jQuery 社区的需求创造了新的途径。

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

jQuery Templates、Data Link 和 Globalization 被接受为官方 jQuery 插件 – Scott Guthrie,微软开发者部门公司副总裁

jQuery Templates 现在是官方 jQuery 插件 – Boris Moore,微软

jQuery Templating 在实际应用中 – James Senior,微软

Web Camps TV #5 – 微软向 jQuery 提交代码!
– Channel 9 视频