jQuery UI 1.6rc6:帮助我们测试!

发布于 作者

jQuery UI 1.6rc6 可用。

下载 jQuery UI 1.6rc6
您可以直接从以下地址下载整个开发包

http://jquery-ui.googlecode.com/files/jquery.ui-1.6rc6.zip

这包括一个默认主题,以及所有测试和演示文件。或者您可以创建单个组件的定制下载

https://jqueryui.jqueryjs.cn/download/

以及一个自定义主题

https://jqueryui.jqueryjs.cn/themeroller

这是在明天(星期六晚上)发布 1.6 正式版之前的最后一步。由于我们只有两天时间,我们真的需要您的帮助来测试是否有任何我们可能忽略的重大障碍。请为在 jQuery UI 错误跟踪器上发现的任何问题创建一个工单

http://dev.jqueryui.com/(注意:需要注册)

并在 jQuery UI 开发邮件列表上发送讨论信息

http://groups.google.com/group/jquery-ui-dev

感谢大家,准备迎接一个美好的周末!

旧金山 jQuery 聚会

发布于 作者

本周旧金山有几位 jQuery 大佬,我们觉得聚会会很有趣。John Resig(jQuery 的创建者)、Rey Bango(jQuery 布道团队负责人)和 Yehuda Katz(Rails 核心贡献者、jQuery 团队成员)都将在明天晚上(29 日)聚会,如果您想打个招呼。

您可以在 Upcoming.org 网站上找到有关该活动的更多信息 - 如果您有兴趣参加,请随时添加自己
jQuery(“#drinks”).imbibe();

jQuery 1.3.1 发布

发布于 作者

欢迎 Digg 用户!您可能对完整的 jQuery 1.3 版本感兴趣,该版本刚于 14 日发布。享受吧!


这是一个针对 jQuery 1.3 的错误修复版本。您可以在 错误跟踪器 上查看修复的完整列表。

除了直接修复错误外,1.3.1 中没有从 1.3 继承的重大更改。如果您仍在使用 jQuery 1.2.6,并且希望升级,请直接升级到此版本。

下载

jQuery 1.3.1 的副本也可在 Google 的 CDN 上获得(您可以直接将 URL 复制到您的网站中)

如果您希望从 Subversion 存储库 中检出完整的版本,您可以按照 以下说明 从以下位置检出源代码

svn co http://jqueryjs.googlecode.com/svn/tags/1.3.1

一些快速的家务事

有些人注意到 1.3 的发布说明中,我们错过了对 Firefox 2 的测试,即使我们仍然支持它。这是我们的失误:我们仍然支持 Firefox 2,并在发布之前对其进行测试。您可以在下面看到完整的测试套件运行结果。

jQuery 1.3.1

还注意到,在 1.3 发布之前,Safari 2 没有出现在我们测试的浏览器列表中。这是正确的 - 我们正在逐步停止对 Safari 2 的支持。考虑到 Safari 2 占有 不明显的市场份额,并且已被 3 个独立的 Safari 版本(3.0、3.1 和 3.2)取代,因此我们不再需要对该版本进行大量测试。

最后,一些用户注意到我们不再提供 jQuery 的“打包”版本(通过 Dean Edwards' Packer 运行的 jQuery 版本,启用 Base62 编码)。我们这样做是出于几个原因

  • 打包脚本的调试难度要大得多(比压缩脚本的调试难度更大)。
  • 打包脚本无法在所有平台上正常运行(例如 Adobe AIR 和支持 Caja 的环境)。
  • 但最重要的是:打包脚本对于用户来说比仅使用压缩脚本速度更慢。这可能看起来违反直觉,因为打包脚本的文件大小比压缩脚本小,但最终的加载时间要高得多(因为它们必须经过解压缩步骤)。对于有兴趣的人,我们有一些关于压缩脚本与打包脚本的加载性能的 数据

我们提供的 jQuery 压缩版通过 YUI Compressor 运行,应该是生产环境中使用的最佳 jQuery 形式(如果可能,使用 gzip 压缩提供服务)。

与 jQuery 1.3 兼容的 jQuery UI 1.6rc5

发布于 作者

jQuery UI 1.6rc5 可用。

下载 jQuery UI 1.6rc5
您可以直接下载整个开发包

http://jquery-ui.googlecode.com/files/jquery.ui-1.6rc5.zip

这包括一个默认主题,以及所有测试和演示文件。或者您可以创建单个组件的定制下载

http://ui.jquery.com/download/

以及一个自定义主题

http://ui.jquery.com/themeroller

如果您在过去两周内从 ThemeRoller 获取了主题,请务必获取更新的 1.6rc5 主题。(此外,对于所有 1.5.3 用户,ThemeRoller 上有一个链接用于下载传统主题)

与 jQuery 1.3 的兼容性
感谢许多帮助测试和贡献修复以使此版本发布的人。我们在 rc4 发布后的两周内修复了许多问题,而这个版本中最重要的修复是它与 jQuery 1.3 兼容 (jQuery 生日快乐),而 1.6rc4 仅与 jQuery 1.2.6 兼容。从现在开始,我们要求不再使用 1.6rc4 进行测试。此外,从现在开始,jQuery UI 1.5.3 仅支持 jQuery 1.2.6。jQuery UI 1.6 仅支持 jQuery 1.3+
感谢您为确保此版本发布并与 jQuery 1.3 完全兼容提供的任何帮助。请为在 jQuery UI 错误跟踪器上发现的任何问题创建一个工单

http://ui.jquery.com/bugs(注意:需要注册)

并在 jQuery UI 开发邮件列表上发送讨论信息

http://groups.google.com/group/jquery-ui-dev

目前计划在下周结束之前完成 1.6 正式版。

jQuery 1.3 发布

发布于 作者

jQuery 团队很高兴发布最新的 jQuery JavaScript 库主要版本!这个版本投入了大量的编码、测试和文档工作,我们对此感到非常自豪。

我要特别感谢 Ariel Flesler 和 Brandon Aaron,他们为修复错误和发布版本付出了很多努力。

概述

jQuery 1.3 中发生了一些重大变化,以下是一些最大和最显著的变化。

Sizzle 选择器引擎

jQuery 有一个全新的 CSS 选择器引擎 - 昵称 Sizzle。我们想要一个

  1. 对于最常用的选择器来说,比我们目前的引擎更快的引擎。
  2. 完全可扩展的(我们在过去版本的 jQuery 中为了性能而牺牲了一些可扩展性)。
  3. 完全独立的。

就性能而言,我们做得相当不错,比我们之前的引擎快约 49%

这尤其令人惊讶,因为 1.2.6 中的引擎已经相当快了,而且我们在过程中获得了很大的可扩展性。

在开发新引擎期间,有一件事变得非常明显:我们希望能够与其他库和开发者合作。我们看到了与一些最优秀的 JavaScript 开发者进行良好合作的机会 - 这将最终帮助所有库的用户。因此,我们确保 Sizzle 能够完全独立运行(没有依赖关系)。

此外,为了表示诚意并愿意合作,我们将 Sizzle 的源代码发布到 Dojo Foundation。我们想要一个共同的平台,让每个人都能一起工作,并且有一个明确的长期版权持有者。

目前我们正在与 Prototype、Dojo、Yahoo UI、MochiKit 和 TinyMCE(以及许多其他库)一起完善 Sizzle,使其达到完美。

实时事件

jQuery 现在支持“实时事件” - 可以绑定到所有当前和未来元素的事件。使用事件委托和无缝的 jQuery 风格 API,结果既易于使用又非常快。

有关实时事件的更多信息,请参阅 .live() 文档。

在处理实时事件时,我们希望找到一个既快又可扩展的解决方案。为此,我们需要一个专为处理委托元素过滤而设计的选择器引擎(粗略地说,“此选择器是否与该元素匹配?”)。新的 Sizzle 选择器引擎超出了我们所有的预期 - 速度几乎是之前解决方案的 30 倍。

通过使用高级过滤技术,我们能够为您提供一个事件委托解决方案,该解决方案不会拖累您的浏览器,并且可以扩展到页面上的数十或数百个委托。

jQuery 事件对象

Ariel Flesler 为 jQuery 1.3 带来了 jQuery 事件系统的重大重构。此更改的主要内容是新的 jQuery.Event 对象。该对象完全封装了通常在符合 W3C 规范的事件对象实现中找到的所有功能,并使其在所有浏览器中都能顺利工作。

事件系统还有一些单独的更改,将在后面的事件部分中详细介绍。

HTML 注入重写

所有与将 HTML 注入文档相关的代码(例如 append、prepend、before 和 after 方法)都已全面改版。在分析 jQuery 应用程序时,我们发现这是最常见的瓶颈之一 - 因此急需改进。提供的功能与 jQuery 之前版本中的功能相同,但具有更快(总体上快约 6 倍)的额外优势。

我们还改进了 DOM 元素的创建(例如 $("<script/>"))并使其与调用 $(document.createElement("script")) 相同(结果既更快又更明智)。

偏移重写

Brandon Aaron 认为,.offset() 方法需要在 1.3 中进行全面重写。从头开始重写,它不仅更好地处理跨浏览器问题,而且速度更快。

与 1.2.6 中的 offset 方法相比,性能提升了近 3 倍,此重写必将使您的复杂交互更加顺畅。

不再进行浏览器嗅探

此版本的最终主要功能是您可能永远不会直接看到或处理的功能,但这是一个重要的更改,将有助于 jQuery 持续更长时间并减少错误:从 1.3 开始,jQuery 不再使用任何形式的浏览器/userAgent 嗅探内部 - 并且是第一个主要 JavaScript 库这样做。

浏览器嗅探是一种技术,您可以在其中对一段代码在将来的工作方式做出假设。通常这意味着假设某个特定的浏览器错误将始终存在 - 这经常导致代码在浏览器进行更改并修复错误时发生故障。

相反,我们使用称为功能检测的技术,在其中模拟特定的浏览器功能或错误以验证其是否存在。我们已将 jQuery 中使用的所有检查封装到一个对象中:jQuery.support。有关它的更多信息、功能检测以及此功能提供的功能,请参阅文档。

需要注意的是,jQuery.browser 仍然存在于 jQuery 中 - 并且将在可预见的未来继续存在(太多插件和代码依赖于它)。话虽如此,我们已弃用它,试图鼓励您 - 以及所有 JavaScript 开发人员 - 在您的代码中认真考虑使用功能检测。

升级

在 jQuery 1.3 中,我们试图最大限度地减少任何大型升级带来的麻烦 - 保持所有现有的公共 API。话虽如此,请仔细阅读潜在的破坏性更改列表,以了解哪些更改可能会导致您的应用程序出现问题。

注意:许多插件都提供了更新版本以与 jQuery 1.3 相匹配。如果您在使用特定插件时遇到困难,请务必查看是否发布了新版本。特别是 jQuery UI 和验证插件都发布了与 jQuery 1.3 兼容的更新版本。

下载

与往常一样,我们提供了两个版本的 jQuery,一个最小化版本(我们现在使用 YUI Compressor 作为默认的最小化程序)和一个未压缩版本(用于调试或阅读)。

https://code.jqueryjs.cn/jquery-1.3.min.js jQuery 最小化版本(18kb 压缩后)
https://code.jqueryjs.cn/jquery-1.3.js jQuery 常规版本(114kb)

此外,Google 还为我们提供了一个托管在其服务器上的 jQuery 版本。此 jQuery 版本会自动最小化和压缩 - 并且从 Google 的快速边缘缓存服务器提供服务。

https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.3/jquery.min.js

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

更改

以下是一些可能导致您的网页出现向后兼容性问题的更改。

  • 已删除 [@attr] 中的“@”。从 1.2 开始已弃用,此旧语法不再有效。只需删除“@”即可升级。
  • 触发的事件现在会向上冒泡 DOM。不知情的事件处理程序可能会意外捕获比预期更多的事件。
  • ready() 方法不再尝试对等待所有样式表加载做出任何保证。相反,所有 CSS 文件都应在页面上的脚本之前包含。
  • .isFunction 现在更简单,它不再处理一些奇怪的边缘情况(为了简单性和性能)。
  • “a, b, c” 风格选择器的顺序可能会发生变化。支持 querySelectorAll 的浏览器(Safari、Firefox 3.5+、Opera 10+、IE 8+)将按文档顺序返回元素,其他浏览器将(当前)按指定的顺序返回元素。在 1.3.2 及更高版本中,所有逗号分隔的选择器都将按文档顺序返回。
  • trigger 和 triggerHandler 方法不再接受数据数组中的事件对象。相反,应直接将它们指定为参数。
  • 未记录的“extra”函数也已从 trigger 和 triggerHandler 函数中删除。
  • 内部 jQuery.event.trigger 不再返回处理程序返回的最后一个项目,而是根据 W3C 规范返回 true 或 false。您应使用 jQuery.Event 对象来捕获特定返回值。
  • 您应始终确保在标准模式下运行您的页面。已知在怪癖模式下,某些方法无法正常工作。
  • 已删除创建选择器插件的旧(已弃用)样式。以前,您可以创建字符串编码的插件,这些插件后来会变成函数 - 这已删除 - 请直接创建函数。
  • jQuery.param(obj) 执行 obj 的函数,而不是将其转换为字符串。

以下属性已弃用(支持功能检测和 jQuery.support,如概述中所述:jQuery.browser、jQuery.browser.version、jQuery.boxModel。

以下浏览器不再受支持:Safari 2

性能

为了衡量 jQuery 不同部分的性能,我们使用了一个 修改后的 SlickSpeed 测试套件副本 来运行我们的测试(已改编为处理非选择器测试)。测试运行的原始结果可以在下面找到(所有时间单位为毫秒)。

我们使用 Yahoo 首页的副本(一个具有代表性的复杂网页),并使用人们实际使用的选择器。针对人们当前使用的选择器将有助于提高现有和未来应用程序的性能。

Frameworks	jQuery 1.2.6	jQuery 1.3	Dojo 1.2.3	MooTools 1.2.1	Prototype 1.6.0.3
Firefox 3	184		111		147		240		137
Firefox 3.5	113		34		105		135		55
Safari 3.2	71		15		64		76		50
Safari Nightly	46		15		65		47		18
Opera 9.6	107		75		73		132		87
IE 6		854		640		561		1611		3174
IE 7		210		181		150		490		761
Chrome		30		13		23		118		10

委托过滤测试

为了测试委托过滤,我们尝试查看给定元素是否与选择器匹配。jQuery 1.3 和 Prototype 提供了用于处理此操作的本机方法(分别为 .is 和 .match),而 jQuery 1.2.6、Dojo 和 MooTools 都使用了“运行选择器并查看元素是否在结果中”的技术。

Frameworks	jQuery 1.2.6	jQuery 1.3	Dojo 1.2.3	MooTools 1.2.1	Prototype 1.6.0.3
Firefox 3	3260		199		1630		3798		763
Firefox 3.5	1047		113		620		1101		298
Safari 3.2	1169		91		820		1223		188
Safari Nightly	911		65		294		590		125
Opera 9.6	1764		167		898		1976		451
IE 6		22142		1201		13000		17227		12827
IE 7		4908		341		2664		5497		2994
Chrome		959		125		700		939		153

DOM 操作测试

这些测试分析了插入 DOM 片段的性能(在 jQuery 和 Prototype 的情况下,这是 HTML,在 MooTools 的情况下,它使用的是 Element 类)。Dojo 没有提供任何显式助手来注入 HTML 或构造 DOM 元素,因此它被排除在外。

Frameworks	jQuery 1.2.6	jQuery 1.3	MooTools 1.2.1	Prototype 1.6.0.3
Firefox 3	161		41		47		323
Firefox 3.5	113		31		42		78
Safari 3.2	77		10		25		41
Safari Nightly	87		22		22		31
Opera 9.6	130		23		36		84
IE 6		710		110		600		971
IE 7		560		60		330		460
Chrome		49		14		23		21

.offset() 测试

对多个元素运行了 jQuery .offset() 方法。

Frameworks	jQuery 1.2.6	jQuery 1.3
Firefox 3	142		30
Firefox 3.5	45		23
Safari 3.2	92		18
Safari Nightly	75		39
Opera 9.6	39		26
IE 6		151		70
IE 7		100		50
Chrome		115		21

.hide()/.show() 结果

对多个元素运行了 .hide() 和 .show() 方法。

Frameworks	jQuery 1.2.6	jQuery 1.3
Firefox 3	2680		722
Firefox 3.5	1867		448
Safari 3.2	1015		577
Safari Nightly	532		306
Opera 9.6	2327		1173
IE 6		8242		2715
IE 7		1912		961
Chrome		1922		551

jQuery 1.3 和 jQuery 基础

发布于 作者

祝 jQuery 生日快乐!jQuery 今天三岁了,它是在 2006 年 1 月 14 日由 John Resig 在第一个 BarCampNYC 发布的。

今天我们有四个公告要宣布,希望您喜欢!

jQuery 1.3

首先,我们有一个出色的新版本 jQuery 供您使用。此版本的重大功能包括

  • Sizzle:一款非常棒的 CSS 选择器引擎。
  • 实时事件:jQuery 风格的事件委托。
  • jQuery 事件大修:完全重写以简化事件处理。
  • HTML 注入重写:闪电般快速的 HTML 附加。
  • 偏移重写:超快的定位计算。
  • 不再进行浏览器嗅探:使用功能检测来帮助 jQuery 持续更长时间。

有关此版本的完整详细信息,请参阅发行说明
http://docs.jquery.com/Release:jQuery_1.3

我们目前计划在未来的一两周内发布 jQuery 1.3.1 补丁版本,以修复可能遗漏的任何错误。如果您发现任何错误,请务必将其提交到 错误跟踪器

Sizzle

jQuery 拥有一个全新的 CSS 选择器引擎 - 绰号为“Sizzle”。您可以在 jQuery 1.3 发行说明 中阅读有关它的全部详细信息(包括性能数据)。

更重要的是,我们将在 Sizzle 上迈出重要的一步:我们将它作为一个完全独立的项目发布,以便许多库创建者和开发人员可以进行协作。我们看到了一个机会,不仅可以回馈 jQuery 社区,还可以回馈整个 JavaScript 开发社区;同时,我们能够与其他库的开发人员就一个统一的选择器引擎进行协作。我们认为,竞争太多,而合作太少,因此我们发布了我们的代码,作为共同努力的第一步。

作为诚意和愿意合作的表示,我们已将 Sizzle 移交给 Dojo 基金会(这是一个非常棒的非营利组织,非常适合这个项目,不要与 Dojo 工具包混淆)。我们希望有一个共同的平台,让所有开发人员能够在其中合作,并且有一个明确的长期版权所有者。

我们对合作的请求已经得到了非常棒的回应:来自 Prototype、Dojo、Yahoo UI、MochiKit 和 TinyMCE(以及许多其他项目)的开发者都对完善 Sizzle 表现出了兴趣。

可以在这里找到一个粗略的 Sizzle 项目页面
http://sizzlejs.com/

以及完整的源代码
http://github.com/jeresig/sizzle/tree/master

新的 API 浏览器

随着 jQuery 1.3 的发布,我很高兴地向大家介绍由 Remy Sharp 开发的新 API 浏览器,它可从以下地址访问:https://api.jqueryjs.cn/.

jQuery API Browser
这是对现有 jQuery API 的另一种视图,它应该易于导航和使用。

新的 API 浏览器包含以下功能

  • 所有最新的 jQuery 和 jQuery UI 文档。
  • 能够将页面标记为收藏夹,以便您可以轻松地返回到这些页面。
  • 代码示例中的语法高亮显示
  • 在浏览器中实时运行示例
  • 链接到编辑和试验代码示例

最重要的是,API 浏览器也可以作为 Adobe AIR 应用程序离线使用(感谢 Tane Piper 的 AIR 框架)。界面看起来和工作原理相同,并且包含自动更新机制,因此您将始终保持最新状态。

下载并安装 AIR API 浏览器

如果您遇到问题,请向 错误跟踪器 的“网站”组件提交错误报告。

这将我们引向最后一个,当然也是最不重要的点……

jQuery 基金会

随着 jQuery 项目以惊人的速度增长,作为团队,我们有必要退一步,确定项目的归属权应如何处理。目前,jQuery 的创始人兼首席开发人员 John Resig 和 jQuery UI 的首席开发人员 Paul Bakaus 都拥有其各自项目的归属权。从实际和法律角度来看,这引发了一些担忧,因为它将两个人作为项目的拥有者,而不是一个正式的组织。随着越来越多的个人和公司开始为项目做出贡献,这些担忧变得更加明显,导致人们对特定工作单元的正确版权持有者感到困惑。

在最近的 jQuery 大会上见面讨论后,我们决定真正地集中精力解决这个问题,并确定如何将 jQuery 项目的归属权转移到一个基金会类型的组织,该组织将

1. 了解开源软件开发的性质。
2. 允许我们继续不受阻碍地管理项目。
3. 确保无论谁参与其中,项目都能继续存在。

在考察了众多选项后,我们得出了最终结论——我们很高兴地宣布,软件自由保护协会 已向 jQuery 项目发出邀请,邀请它加入该非营利组织,并在其庇护下继续开发软件。加入软件自由保护协会后,jQuery 项目及其社区将立即获得一些重要的好处

1. 它允许当前的项目成员继续管理项目,并对当前和未来工作的方向负最终责任。
2. 它允许项目被视为真正的非营利性工作,使我们能够接受捐赠和贡献,而不会承担巨大的个人财务责任。
3. 代码的版权将分配给保护协会,从而确保没有一个人会拥有项目的贡献或资产。
4. 它可能允许公司在员工为项目做出贡献时将时间抵税。
5. 最重要的是,它确保 jQuery 项目始终是开放的和免费的软件。

这是正式化 jQuery 项目的一大步,也是确保 jQuery 社区所做的投资得到保护的重要成就。我们将在未来几周内完成向保护协会的过渡。项目运行方式几乎不会有任何变化。 jQuery 团队 仍将运行和管理项目,我们仍将努力打造最佳的 JavaScript 库。如果有什么不同的话,这将帮助我们腾出一些时间,以便我们可以投入更多时间进行编码——谁不喜欢这种声音呢?

jQuery 三岁生日快乐!

帮助测试 jQuery 1.3 Beta 2

发布时间: 作者:

我们正越来越接近 jQuery 1.3 的最终发布!在最近的 1.3 Beta 1 的后续版本中,我们又发布了一个测试版本供大家尝试。与之前一样,它还没有准备好投入生产使用,但我们确实需要大家的帮助来找出我们可能遗漏的任何错误。

请不要再测试 1.3 Beta 1 了——所有测试都应该转移到 beta 2。jQuery 1.3 的最终发布日期为 1 月 14 日,最终发布候选版本将在几天后发布。

下载

jQuery 1.3b2 的副本可在以下位置找到

请在测试时不要使用 jQuery 的压缩或打包版本——这会使定位错误变得困难。

更改

到目前为止,1.3 中的两个更改最有可能导致问题

  1. 旧的、XPath、样式属性选择器[@attr=value]. 这些已经被弃用了一段时间——我们最终将其删除。要修复它,只需删除 @!
  2. 冒泡触发的事件。触发的事件现在会沿着 DOM 向上传播——一些插件没有预料到这一点,不得不做出调整。修复代码以“防止”冒泡非常容易——在绑定的处理程序中添加以下语句if ( this === event.target ) { ... }

测试

测试套件运行良好。我们目前有 1370 个测试涵盖了库的所有方面,并且在所有主要浏览器中通过。

jQuery 1.3b2

如何提供反馈

  • jQuery 错误跟踪器 提交错误报告(您需要先创建一个帐户)。
  • 务必包含您遇到的任何问题的简单测试用例(附件测试用例或提供链接)。
  • 请注明您正在测试“jQuery 1.3 Beta 2”(否则您的问题单可能会与另一个版本混淆)。
  • 将测试用例和错误报告的链接发送到 jQuery 开发者列表,以便开发团队能够收到有关您问题的通知。

感谢大家提前帮助测试此版本。我们对这个版本感到非常兴奋,迫不及待地想把它送到大家手中。