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.com.cn/download/

以及在

https://jqueryui.com.cn/themeroller

这是在明天(周六晚上)发布 1.6 最终版之前的最后一步。由于我们只有两天时间,我们真的需要您的帮助来测试,看看是否还有我们可能遗漏的重大问题。请在 jQuery UI 错误跟踪器上创建任何您发现的问题的工单

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

并向 jQuery UI 开发邮件列表发送讨论说明

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

感谢大家,祝大家周末愉快!

旧金山 jQuery Meetup

发布于 作者:

本周旧金山有一些 jQuery 开发者,我们觉得举办一次 Meetup 会很有趣。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

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

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

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

我们提供的通过 YUI Compressor 压缩的 jQuery 副本应该是用于生产环境的最佳 jQuery 版本(如果可能,使用 gzipping 提供)。

jQuery UI 1.6rc5 与 jQuery 1.3 兼容

发布于 作者

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

创建一个自定义主题。请务必获取更新的 1.6rc5 主题,如果您在过去两周内从 ThemeRoller 获取了主题。(另外,对于任何使用 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 基金会。我们希望有一个共同的聚集地,每个人都可以一起工作,并且有一个明确的长期版权所有者。

目前我们正在与 Prototype、Dojo、Yahoo UI、MochiKit 和 TinyMCE(以及许多其他)合作,完善 Sizzle。

Live 事件

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

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

在处理 live 事件时,我们希望找到一种快速且可扩展的解决方案。为此,我们需要一个能够处理委托元素过滤的 selector 引擎(大致来说就是“此选择器是否匹配此元素”)。新的 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")) 相同(结果更快且更合理)。

Offset 重写

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 和 Validation 插件都已更新了与 jQuery 1.3 配合使用的版本。

下载

像往常一样,我们提供两个版本的 jQuery,一个经过压缩(我们现在使用 YUI Compressor 作为默认压缩器),一个未压缩(用于调试或阅读)。

https://code.jqueryjs.cn/jquery-1.3.min.js jQuery 压缩版 (18kb gzipped)
https://code.jqueryjs.cn/jquery-1.3.js jQuery 正式版 (114kb)

此外,Google 还在其服务器上为我们提供了一个 jQuery 副本。此 jQuery 副本会自动压缩和 gzip——并从 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 方法不再接受数据数组中的事件对象。相反,它们应直接指定为参数。
  • trigger 和 triggerHandler 函数中的未记录的“extra”函数也已删除。
  • 内部 jQuery.event.trigger 不再返回处理程序返回的最后一个项目,而是根据 W3C 规范返回 true 或 false。您应该使用 jQuery.Event 对象来捕获特定的返回值。
  • 您应该始终确保您的页面以标准模式运行。已知在怪异模式下某些方法无法正常工作。
  • 一种旧的(已弃用)创建选择器插件的样式已被删除。以前您可以创建字符串编码的插件,这些插件后来会变成函数——这已被删除——请直接创建函数。
  • jQuery.param(obj) 执行 obj 的函数,而不是将其转换为 String。

已弃用以下属性(为了功能检测和 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 今天三岁了,由 John Resig 于 2006 年 1 月 14 日在第一次 BarCampNYC 上发布。

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

jQuery 1.3

首先,我们有一个新的 jQuery 版本供您使用。此版本的主要功能是

  • Sizzle:一个火热的 CSS 选择器引擎。
  • Live 事件:具有 jQuery 风格的事件委托。
  • jQuery 事件重构:完全重写以简化事件处理。
  • HTML 注入重写:闪电般快速的 HTML 追加。
  • Offset 重写:超快速的位置计算。
  • 不再进行浏览器嗅探:使用功能检测来帮助 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.jquery.org.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. 确保无论谁参与该工作,项目都能持续存在。

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

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

这是正式化 jQuery 项目的一大步,也是确保 jQuery 社区的投资得到保护的重要成就。我们将在未来几周内完成向保护协会的过渡。项目运行方式几乎不会或根本不会发生变化。 jQuery 团队 将继续运行和管理项目,我们仍然将努力构建最好的 JavaScript 库。如果说有什么改变,那就是这将有助于释放我们的一些时间,以便我们可以花更多的时间编写代码——谁不喜欢听起来像这样呢?

祝 jQuery 3 岁生日快乐!

帮助测试 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 ) { ... }

Tests

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

jQuery 1.3b2

如何提供反馈

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

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