jQuery 1.2.6 发布
这主要是针对 jQuery 1.2 的错误修复版本。您可以在 错误跟踪器 上查看已修复内容的完整列表。
这是紧随 jQuery 1.2.3 之后的下一个版本。版本 1.2.4 和 1.2.5 被跳过(1.2.4 构建错误,使其实际上与 1.2.3 相同,而 1.2.5 缺少一个补丁)。
整个 jQuery 团队在共同发布此版本方面做得非常出色——我借此机会感谢他们所有人继续努力工作。
我还想借此机会欢迎 Ariel Flesler 加入 jQuery 核心开发团队。他在共同发布此版本方面提供了宝贵的帮助——贡献了错误修复、性能改进、功能和测试用例。您可以在整个版本中看到他努力工作的成果。欢迎 Ariel,并感谢他为我们做出的所有贡献!
下载
jQuery 1.2.6
- 推荐 Google 托管代码:AJAX 库 API
- jQuery 压缩版(使用 gzip 压缩后为 15kb)
- jQuery 打包版(30kb)
- jQuery 标准版(100kb)
性能改进
jQuery 团队再次努力地在该版本中带来了巨大的性能改进。与以前的版本一样,我们已经扩展到查看 jQuery 框架的许多领域,寻找常见的痛点,并提供解决方案。
以下性能改进的所有数据和测试用例都可以在以下 jQuery 1.2.3 与 1.2.6 的 Google 表格 中找到(由于 Internet Explorer 6 和 Internet Explorer 7 的结果几乎相同,因此排除了 Internet Explorer 6 的结果)。
事件处理速度提高了 103%
在分析密集型应用程序代码(特别是拖放操作等)时,我们寻找可以通过通用更改对所有用户产生影响的方式。经常调用的代码部分是 jQuery 事件处理程序,对其进行任何优化都会显着提高所有生成的经常调用事件的性能。通过专注于此处的改进,您拥有的所有经常调用的事件都应该立即看到好处。
CSS 选择器速度提高了 13%
对内部 jQuery 方法进行了一些优化,显着提高了它们的性能,同时为 jQuery 中一些最常用的代码(如 CSS 选择器代码)提供了可衡量的益处。
例如,jQuery.map() 方法现在快了 866%,而 jQuery.extend() 快了 19%。这两个更改使整个库的性能都得到了显着提高。
.offset() 速度提高了 21%
结合对 jQuery 事件处理代码的改进,.offset() 的优化使密集型鼠标操作变得更快。例如,由于这些更改,jQuery UI 的拖放代码现在快了 300% 以上(使您能够实现更快、更流畅的拖放操作)。
.css() 速度提高了 25%
一个经常调用(内部和外部)的方法。对该方法的优化很容易在其他方法中感受到(例如,.offset())。
新功能和主要更改
尺寸插件现已成为核心的一部分
Brandon Aaron 编写的尺寸插件的剩余方法已引入 jQuery 核心,并附带了额外的错误修复和性能改进。此插件在开发人员和插件作者中得到了广泛使用,并且已成为 jQuery 生态系统的重要组成部分。在过去的几个版本中,我们一直在慢慢地引入尺寸插件中最常用的方法——但随着 1.2.6 的发布,所有剩余的方法现在都已成为核心的一部分。
如果您将 jQuery 的副本升级到版本 1.2.6,现在可以选择从代码中排除尺寸插件。
尺寸的完整文档可以在 jQuery API 文档网站上找到(并且正在与 jQuery 核心文档集成)。
.attr() 大修
.attr() 方法已完全大修(解决了大约 15 个未解决的错误)。此外,该方法已经过显著简化和优化。
.toggle() 现在可以接受更多函数
历史上,jQuery 的 .toggle() 函数接受两个函数(以偶数/奇数方式切换)。但是,这已经改变,因此可以提供任意数量的函数,并通过鼠标单击切换。
$("div").toggle(function(){ $(this).removeClass("three").addClass("one"); }, function(){ $(this).removeClass("one").addClass("two"); }, function(){ $(this).removeClass("two").addClass("three"); });
现在可以解除绑定的 .toggle() 和 .one() 函数
function test(){ $(this).addClass("test"); } $("div").one("click", test); $("div").unbind("click", test); $("div").toggle(test, test); $("div").unbind("click", test);
.index() 支持 jQuery 集合
jQuery 的 .index() 函数允许您在 jQuery 集合中找到 DOM 元素的位置——现在您还可以指定一个 jQuery 集合(其中第一个元素将被提取并在原始集合中找到)。
var test = $("div.test"); $("div").index( test ) == 3
jQuery.makeArray 可以将任何内容转换为数组。
jQuery 的内部 .makeArray() 方法现在将任何类似数组的对象转换为一个新数组。此外,它将所有其他对象包装为数组并返回结果集。
jQuery.makeArray( document.getElementsByTagName("div") ) // => [ div, div, div ] jQuery.makeArray( true ) // => [ true ] jQuery.makeArray() // => []
beforeSend 可以取消 Ajax 调用
beforeSend Ajax 回调允许开发人员在请求发生之前执行一段代码——现在这段代码还可以验证一些参数的完整性并取消生成的 Ajax 请求(对于表单验证等任务很有用)。
$.ajax({ beforeSend: function(){ return $("#input").val() == ""; }, url: "test.php" });
公开的速度
jQuery 有许多命名动画速度(如“slow”、“fast”和“default”),现在您可以通过操作 jQuery.fx.speeds 对象来为动画速度提供自己的名称,或修改现有名称。
jQuery.fx.speeds.slow = 1000; $("#test").slideDown("slow");