jQuery 社区更新 10/26

发表于 作者

来自 jQuery 核心团队的更新

今天我有一些关于下一个版本 jQuery(jQuery 1.4.4)的好消息。在包含许多修复(当然也包括 jQuery Mobile 的引入)的 1.4.3 版本发布之后,我们认为,如果我们在发布之后尽快进行一个维护版本,将对社区最有益,旨在进一步提高 jQuery 核心代码的稳定性。

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

今天,我们想请社区帮助我们确保这个新版本尽可能稳定,方法是通过压力测试它。虽然我们已经对 jQuery 运行了一套全面的自动化单元测试,但在我们的项目流程中加入实际的用户测试,让我们有机会更快地修复关键错误,并将有助于 1.4.4 比上一个版本有重大改进。

如果你想测试 1.4.4,你可以在这里下载最新的版本(被称为 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 核心刚刚收到的那样。我们对拥有一个更稳定、更具协作性的票证跟踪系统感到非常兴奋,并希望社区能够更多地参与票证分类。如果你有兴趣贡献,请与 jQuery 开发者关系团队成员 交谈。

Ralph Whitbeck 和 Rey Bango 的 jQuery 官方播客 上周发布了他们的 第 37 集。他们本周的嘉宾是 Ben Nadel,他们讨论了 ColdFusion 社区中的 jQuery,以及上周末在波士顿举行的 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 1.4.3 的 API 文档 中找到。

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 data- 属性

首先,jQuery Metadata 插件提供的基本功能已移入核心。HTML 5 data- 属性 将自动添加到 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 值将转换为其关联的值(包括布尔值、数字、对象、数组和空值)。

data- 属性在首次访问 data 属性时被提取,并且之后不再被访问或修改(所有数据值随后在内部存储在 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() 有一个细微的 API 更改:调用 .data(Object) 不再完全替换数据对象,而是扩展现有对象,保留未指定的 值。我们发现,根据一些令人困惑的错误报告,这是预期结果。

遍历

几乎所有主要遍历方法的性能都得到了显著提升。.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() 的事件命名空间。

效果

.show(speed, easing, callback) 等

所有动画方法现在都支持缓动。就像 .animate() 如何支持缓动参数(用于缓动插件)一样

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

一种简单的方法,用于确定对象是否可能是窗口。

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 来说,这是一个重要的一周,我们的 第二个候选版本 已经发布,可供测试。我们要感谢所有提交反馈和错误报告的人,因为这些反馈和错误报告对于使此版本尽可能稳定非常有帮助。请记住,如果您要报告错误,可以通过我们的 错误跟踪器 轻松提交错误。

我们的新错误跟踪器

关于错误跟踪器,我想请 Colin Snover 向大家宣布一下我们的错误跟踪系统

今天,我们为 jQuery 核心引入了新的错误跟踪系统。除了速度更快、更易于使用之外,新的 Trac 还提供了一系列很棒的新功能,我们希望您喜欢。我们已尽力确保最终用户和开发人员都能获得比旧服务更好的体验。

最重要的变化是添加了投票功能,这将帮助团队优先考虑哪些错误和新功能最令 jQuery 社区成员关注。到目前为止,还没有办法获得一个明确的指标来衡量人们认为哪些问题最重要,因此我们对这个功能感到非常兴奋,希望您能利用它来帮助我们了解您最想在库中看到什么。

我们添加了无需登录的错误报告模式,这将允许任何人报告错误,而无需先经过注册过程。我们还显著改进了报告过程,因此提交工单时,只需提供摘要、描述、版本号和问题类型即可。

新 Trac 的另一个很棒的新功能是更可定制的通知系统,它允许任何人准确选择何时接收有关工单更改的电子邮件。此功能还引入了“关注”工单的功能,因此您可以随时了解您关心的工单,而无需定期访问错误跟踪器。

对于 jQuery 开发人员来说,新的错误跟踪器提供了大量改进。最明显的是,我们现在能够设置交叉引用,因此我们知道哪些问题阻止了其他工单,以及哪些问题被其他工单阻止。我们还集成了对 GitHub 的支持,因此对 jQuery GitHub 存储库的更改会自动反映在 Trac 的时间轴和工单系统中。最后,对工单工作流进行了一些更改,使重复工单能够更快地解决,而由提交者放弃的工单会自动关闭,以保持无效报告的数量较低。

我们对新错误跟踪器中添加的所有内容感到非常兴奋,希望您今天就来看看!

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

社区支持

我们社区的一大优势是,我们始终乐于帮助那些刚开始使用 jQuery 的人。

本着这种精神,我们想邀请有使用 jQuery 经验的成员参与 jQuery 论坛 - 这是帮助初学者解答他们可能遇到的有关 jQuery 的问题或帮助遇到代码无法正常运行的成员的好地方。要开始使用,您只需创建一个新的论坛帐户,或者使用您的 Google、Yahoo 或 Facebook 帐户登录。

呼吁提供新的 jQuery 和 jQuery UI 教程

jQuery & jQuery UI 文档网站是了解如何开始使用 jQuery 的绝佳来源,但我们也喜欢为社区提供指向教程的链接,这些教程可能更深入地探讨特定主题。

如果您喜欢撰写有关 jQuery 或 jQuery UI 的文章,我们想邀请您撰写一篇有关特定方面、功能或组件的最新教程,然后我们可以与社区其他成员分享。最棒的教程可能会添加到我们的官方推荐教程页面 此处

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

jQuery 大会

将在本月 16 日举行 官方 jQuery 大会,所有参加会议的 jQuery 团队成员都期待在那里见到您。但是,如果您不能参加,请不要担心!无论您身在何处,您仍然可以注册在 11 月 16 日至 17 日期间举办的 jQuery 在线峰会,演讲者包括 John Resig、Paul Irish、Rey Bango 等等。

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

jQuery 1.4.3 候选版本 2 发布

发布于 作者

jQuery 1.4.3 候选版本 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 候选版本 1 发布

发布于 作者

jQuery 1.4.3 候选版本 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 之间的任何不一致之处。

注意事项

自 jQuery 1.4.2 发布以来,jQuery 中的某些区域发生了重大变化。

  • .css() 和相关的 css 处理方法都进行了全面修改。
  • 用于确定元素可见性和动画代码中显示切换的逻辑。
  • 大部分遍历逻辑得到了改进和更改(is、filter、closest、find)。

发布的完整细节即将发布——目前我们只需要您的帮助来发现回归。

有了您的反馈,我们应该能够发布一个稳定的版本。 现在我们希望在下一个周末的波士顿 jQuery 大会之前发布最终的 1.4.3 版本。 感谢您帮助审查 jQuery 1.4.3rc1!

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

发布日期 作者

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

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

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

官方 jQuery 插件

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

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

文档和教程

为了帮助您立即使用这些插件,我们提供了 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 视频