jQuery 1.4.2 发布

发布日期: 作者:

jQuery 1.4.2 现已发布!这是基于 jQuery 1.4 的第二个次要版本,修复了 1.4 版本中的一些突出问题,并进行了一些不错的改进。

我要感谢以下为本版本提供补丁的人:Ben Alman、Justin Meyer、Neeraj Singh 和 Noah Sloan。

下载

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

您可以随意将上述 URL 直接包含在您的网站中,您将获得快速加载 jQuery 的完整性能优势。

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

新功能

您可以在 jQuery API 网站上的 1.4.2 类别中 找到 API 更改的完整列表。

在本版本中,我们添加了两个新方法:.delegate().undelegate()。这些方法是 jQuery 中现有 .live().die() 方法的补充。它们简化了从文档中某个根节点监视特定事件的过程。

例如

$("table").delegate("td", "hover", function(){
	$(this).toggleClass("hover");
});

这等效于使用 .live() 编写的以下代码

$("table").each(function(){
	$("td", this).live("hover", function(){
		$(this).toggleClass("hover");
	});
});

此外,.live() 大致等效于以下 .delegate() 代码。

$(document).delegate("td", "hover", function(){
	$(this).toggleClass("hover");
});

发生了什么变化?

在本版本中,代码进行了大量重写,既是为了性能,也是为了修复长期存在的问题。

性能改进

与几乎每个 jQuery 版本一样,我们一直在努力不断改进代码库的性能,确保为您提供最佳性能的 JavaScript 代码。

根据 Taskspeed 基准测试 提供的数据,与 jQuery 1.4.1 相比,我们已将 jQuery 的性能提高了约 2 倍,与 jQuery 1.3.2 相比,我们已将 jQuery 的性能提高了约 3 倍。

jQuery Taskspeed Results (Feb 14, 2010)

具体而言,我们改进了 jQuery 中 4 个区域的性能

虽然像 Taskspeed 这样的综合基准测试如果分解成单独的子测试进行进一步研究会很有趣,但作为一个项目,我们倾向于避免将它们用作真实整体库性能的准确衡量标准。考虑到构成库的许多方面,更不用说它们提供的不同技术,累积结果很少反映实际用户如何使用库。

例如,我们只是通过优化 $("body") 选择器(因为它在测试中被调用了数百次)在 Taskspeed 中看到了显着的整体性能加速。此外,我们通过将 .bind().unbind() 优化了毫秒级的一小部分(微不足道)而获得了巨大的收益——特别是考虑到您要在其中绑定数百个事件的任何情况下,您可能希望使用 .live().delegate() 而不是它。

我们还收集了一些 其他主要库的结果,但我们对这些结果不太感兴趣,而对我们相对于 jQuery 本身的旧版本所做的性能改进更感兴趣。

我们将继续优化 jQuery 代码库——无限期地。为用户提供尽可能快的 JavaScript/DOM 开发体验始终是我们的主要关注点。当然,可能总会有提高性能的方法——无论是通过内部优化还是通过将关键功能推送到浏览器中以进行标准化。

事件重写

最大的内部变化来自事件模块的必要结构重写。这些修复已解决了与事件绑定相关的许多奇怪问题。

具体来说,事件处理程序不再作为对象属性存储在 jQuery 的内部对象存储中(带有附加到处理程序的元数据)。而是现在存储在内部对象数组中。

如果您有机会在 jQuery 元素上使用 .data("events") 进行操作,您会发现它返回一个对象,其中包含当前绑定到其内部的所有事件类型。

为了枚举在此重写期间发生的一些更改

  • 现在可以将具有不同数据、命名空间和事件类型的相同处理程序普遍绑定。
  • 一个处理程序删除自身(或其兄弟处理程序)后,将继续执行事件处理程序。
  • 我们不再将数据/命名空间信息直接附加到事件处理程序(只附加一个唯一的跟踪 ID)。
  • 我们不再使用代理函数(在内部)来尝试封装处理程序。
  • 事件的执行顺序现在在所有浏览器中都是保证的。Google Chrome 在其对象循环逻辑中存在一个长期存在错误,该错误已被解决。

作为这些更改的副作用,我们不得不更改新公开的特殊添加/特殊删除 API 以适应新的事件数据对象。Ben Alman 正在编写关于 jQuery 特殊事件系统的详细教程,我们将在该教程发布时发布更多公告。

错误修复

在本发行版中,总共关闭了 40 个工单。其中一些与 jQuery 1.3.2 和 jQuery 1.4.x 之间的差异有关,一些修复了长期存在的问题(例如事件模块重写的情况)。

原始数据

这些是我们收集用于生成上述图表原始数据。

	jQuery 1.3.2	jQuery 1.4.1	jQuery 1.4.2	Prototype 1.6.1	MooTools 1.2.4	Dojo 1.4.1	YUI 3.0.0
FF 3.5	2182	806	 565	 2156	 1073	 575	 1885
FF 3.6	1352	677	 519	 2067	 857	 750	 1494
Opera	983	697	 222	 793	 678	 218	 1201
Safari	610	435	 252	 315	 235	 238	 612
Chrome	1591	703	 293	 271	 312	 222	 745
IE 8	2470	1937	 1141	 3045	 4749	 1420	 2922
IE 7	4468	3470	 1705	 9863	 10034	 1737	 5830
IE 6	6517	4468	 2110	 13499	 11453	 2202	 7295

jQuery.org

发布日期: 作者:

今天,我们很高兴宣布全新的 jQuery.org 网站:jQuery 项目的主页。

jQuery.org

jQuery.org 网站由 jQuery 社区成员 Boaz Sender 设计和实施。

您可能认出旧的 jQuery Docs 网站中的大部分内容,但它经过了重新组织,并以更适合大型 jQuery 项目的方式呈现。

jQuery.org: Team jQuery.org: History jQuery.org: About

jQuery.org: License jQuery.org: Donate

此次发布与 jQuery 项目的正式化同步,该项目可以追溯到我们 加入软件自由保护组织 的时候。为大型 jQuery 项目提供官方主页应该有利于该项目的未来发展和组织。您可以在此 关于 jQuery 项目的视频 中了解更多有关此组织的信息。


最初发布在 14 天的 jQuery 上 (存档)。

新的 jQuery 论坛

发布日期: 作者:

今天,我们正式宣布全新的 jQuery 论坛。在过去的 4 年里,我们一直在使用邮件列表,随后是 Google Groups,来管理围绕 jQuery 的讨论和社区。这种特定的解决方案在参与度和 管理垃圾邮件 方面根本无法满足我们的讨论需求。

New jQuery Forum

在寻找一个新的讨论区域时,我们考虑了许多解决方案,并提出了一些主要要求:它必须能够处理常规讨论和现在普遍存在的问答。此外,我们希望有一个降低提问门槛的东西——任何人都可以使用的东西(因此它必须有一个良好的 Web 界面)。

我们还希望有一个对团队维护门槛低的解决方案。这意味着使用我们合作的团队非常通融的托管解决方案,或者使用我们自己托管的解决方案,该解决方案易于使用并且拥有良好的开发人员社区。

我们最终分析了无数解决方案,但最终选择使用 Zoho Discussions (Zoho 关于此举的公告)。一些决定促使我们做出了这个决定

  • Zoho Discussions 无缝地集成了常规的论坛式讨论和问答。此外,所有审核和管理工具都是围绕构建和管理一个精简的工作流程来回答问题和疑虑而设计的。
  • Zoho 的 Discussions 团队非常通融。他们不仅免费提供所有托管服务,而且还尽力解决问题并集成我们完整的 Google Groups 历史记录。我们一直在与他们紧密合作,他们已经解决了,或者正在解决,我们提出的每个问题。

jQuery 团队在过去的一周里已经过渡到使用新论坛,并且对到目前为止的使用效果感到非常满意。大多数旧的 Google Groups 和所有旧的 jQueryHelp.com 帖子都已集成到新系统中。我们将在未来一两周内关闭 Google Groups 后,对 Google Groups 帖子进行最终导入。

我们已经开通了多个独立论坛供讨论。

随着时间的推移,我们一定会根据需要开设更多论坛,特别是针对非英语用户的论坛。

目前,正在积极解决的两个最大问题是

  • 无法接收所有帖子的电子邮件更新。您可以接收您订阅的单个帖子的电子邮件更新,以及您创建的帖子的电子邮件更新,但无法同时订阅所有帖子。在此期间,我们建议您订阅 论坛 RSS 订阅,以便查看所有帖子和回复。
  • 网站上的许多页面正在以“Ajax”方式加载,这将被更传统(更合适)的页面加载方式取代。完整的转换应该很快完成。

我们收集了许多较小的问题,并且正在积极与 Zoho Discussions 团队沟通。如果您发现任何更多问题,请随时发布到 关于 jQuery 论坛 论坛。

如前所述,我们分析了许多讨论解决方案,实际上有数十种。我们对其中一些非常满意,并且正在最终的运行中。

  • Stack Overflow 几乎是毫无争议的基于 Web 的问答之王。这里已经有一个 活跃的 jQuery 用户社区。我们研究了采用现有的 Stack Overflow 社区和建立一个 Stack Exchange 作为可能的解决方案。然而,这两者都留下了很大的差距:它们不适合处理常规的、非问答的讨论。如果我们使用其中任何一个解决方案,我们必须建立一个额外的论坛或邮件列表来进行普通的讨论。最终,我们决定不使用这些解决方案,而选择一个能提供更统一社区的解决方案。
  • 我们还研究了许多传统的论坛解决方案,例如 Vanilla Forums。在我们研究的所有解决方案中,Vanilla Forums 被证明是最符合我们需求的结构。借助一个活跃且有组织的插件社区,我们能够找到解决我们问题的许多解决方案。然而,最终,没有一个好的方法可以仅使用 Vanilla 或一组插件来提供一致的问答。我们将不得不将其与 Stack Overflow 或其他服务结合使用。此外,我们必须完全自己托管和开发解决方案,这需要我们愿意以其他方式花费的时间。
  • 我们还研究了更好的邮件列表解决方案,例如 Librelist,但它们没有提供任何简单的 Web 界面(至少不像论坛解决方案那样),这使得新用户很难参与并获得问题的解答。我们真的没有兴趣回到 Google Groups 和其他邮件列表提供商的旧讨论技术。

我们想借此机会感谢 Zoho Discussions 团队在帮助我们过渡到他们的软件方面所做的所有努力。他们非常乐于助人,我们很高兴能与他们合作。

此外,我们要感谢 Chrys Bader、Mike Branski 以及旧的 jQueryHelp.com 论坛上的其他社区成员的支持,他们愿意融入新的论坛设置。

再次感谢大家在这个过渡过程中的帮助。我们希望很快解决大部分问题,并期待从现在开始的顺利航行。请随时跳到 论坛 上,并确保 报告您可能遇到的任何问题.


最初发布于 14 Days of jQuery (存档).

14 Days of jQuery 和新的 API 浏览器

发布日期 作者

新的一年开始了,jQuery 团队一直在努力工作。我们日夜不停地工作,以推出即将到来的 jQuery 1.4 版本,并且有很多要宣布!事实上,内容如此之多,我们需要 14 天才能全部公布出来…因此,我想宣布 14 Days of jQuery 1.4

The New jQuery 1.4 Site

从 1 月 14 日开始,我们将举办为期 14 天的活动。每天,我们将发布新的视频和公告 - 将有代码发布、与项目相关的更新,以及 jQuery UI 好东西,以及其他内容。除了公告外,我们还将在 14 天内发布一系列视频,其中包含与 jQuery 1.4 版本和一般 jQuery 主题相关的演讲和教程。您需要在接下来的两周内每天查看 jQuery14.com 以了解新内容,或者注册通过电子邮件接收通知。把它想象成一个在线会议,只不过更长、更自由,还带有一点神秘和悬念!

但是,还有更多内容!

我们为 1 月 14 日安排了很多计划,但似乎提前发布一些美味的 jQuery 零食来激发您的食欲是个好主意。前往 jQuery14.com 了解全新的 jQuery API 网站

请务必订阅 jQuery14.com 网站或 @jquery Twitter 帐户,以获取未来几周的所有更新。

有人想要免费书籍吗?

jQuery 项目是一个非营利性开源项目,我们严重依赖捐赠和贡献来帮助资助我们所做的一切。我们现在开始,并在整个 14 Days of jQuery 期间进行筹款活动。如果您是 jQuery 用户,请在活动期间通过 向项目捐赠 20 美元或更多 的免税捐款来表示您的支持,您将收到一本免费的 jQuery 书籍作为捐赠回报。

始终需要提及的是,如果没有 jQuery 项目赞助商的帮助,这一切都是不可能的;NetflixJupiterIT ConsultingappendToFusionary MediaOxide Design Co 都已签署成为 14 Days of jQuery 1.4 的官方赞助商,以及我们最喜欢的 jQuery 书籍出版商,ManningPacktjQuery EnlightenmentO'Reilly.

现在就这些了 - 前往 jQuery14.com 了解更多即将到来的内容!

jQuery 1.4 Alpha 2 发布

发布日期 作者

jQuery 1.4 Alpha 2 发布!这是 jQuery 1.4 的第二个 alpha 版本(之前发布了 alpha 1)。代码稳定(通过了我们支持的所有浏览器的所有测试),功能完整(我们不再接受新版本的功能),并且需要在实际应用中进行测试。

获取代码

注意:如果您使用的是 jQuery 1.4a2,并且遇到错误,请确保您使用的是代码的普通版本,这将更容易找出错误发生的位置。

我如何提供帮助?

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

我们将密切关注收到的错误报告,并努力解决 jQuery 1.3.2 和 jQuery 1.4 之间的任何不一致。

有了您的反馈,我们应该能够发布一个稳定的版本。现在,我们计划在新年伊始发布至少一个 beta 版本,并在 1 月初发布最终候选版本。最终版本将在 1 月 14 日发布,恰逢 jQuery 的第四个生日。感谢您帮助审核 jQuery 1.4a2!

jQuery 1.4 Alpha 1 发布

发布日期 作者

新鲜出炉:jQuery 1.4 Alpha 1 发布!这是 jQuery 1.4 的第一个 alpha 版本。代码稳定(通过了我们支持的所有浏览器的所有测试),功能完整(我们不再接受新版本的功能),并且需要在实际应用中进行测试。

获取代码

注意:如果您使用的是 jQuery 1.4a1,并且遇到错误,请确保您使用的是代码的普通版本,这将更容易找出错误发生的位置。

我如何提供帮助?

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

我们将密切关注收到的错误报告,并努力解决 jQuery 1.3.2 和 jQuery 1.4 之间的任何不一致。

需要注意的地方

自 1.3.2 发布以来,jQuery 的一些领域发生了重大变化

  • live 进行了彻底的检修,现在支持所有浏览器中的 submit、change、mouseenter、mouseleave、focus 和 blur 事件。还支持 context 和 data。
  • append、prepend 等 进行了大量优化。
  • add 已调整为始终以文档顺序返回元素。
  • findemptyremoveaddClassremoveClasshasClassattrcss 进行了大量优化。

有关此版本的完整详细信息即将发布 - 目前我们只需要您的帮助来捕获回归。可以在 John Resig 在 2009 年 jQuery 大会上的主题演讲 中找到更多详细信息。

注意: 在 jQuery 1.4 最终版发布之前,我们还会审查一些 尚未解决的错误

有了您的输入,我们应该能够发布一个稳定的版本。目前,我们计划在假期之前至少发布一个 alpha 版本,并在 1 月初发布最终候选版本。感谢您帮助审查 jQuery 1.4a1!