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

性能改进

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");

评论已关闭。