jQuery 1.5.1 发布

发布日期 作者

jQuery 1.5.1 现已发布!这是 jQuery 1.5 的第一个次要版本,修复了大量的 bug。

我们感谢以下贡献者为本次发布提供了补丁:antonkovalyov、csnover、danheberden、davidmurdoch、dmethvin、gnarf37、jaubourg、jeresig、jitter、jrburke、lrbabe、mathiasbynens、rwldrn、SlexAxton 和 voxwerk。

我们尤其感谢我们的错误分类团队,他们帮助缩小了本次发布所需的一些重要修复。

下载

和往常一样,我们提供了两个版本的 jQuery,一个压缩版本和一个未压缩版本(用于调试或阅读)。

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

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

Microsoft CDN: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js

Google CDN: https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.5.1/jquery.min.js

1.6 路线图会议

jQuery 核心开发团队现在正在接受对 jQuery 1.6 的更改建议。现在,我们的目标是在 4 月下旬/5 月初发布 jQuery 1.6,并将在 3 月 7 日东部时间中午举行会议讨论提交的建议(会议将在 irc.freenode.net 上的 #jquery-meeting 中进行)。

请在 3 月 7 日会议之前通过以下表格提交您的建议:表单

jQuery 1.5.1 变更日志

jQuery 1.5.1 Test Swarm Results

API 文档:jQuery 1.5.1 API 文档

由于这是一个 bug 修复版本,因此没有新的功能要报告。唯一的更改如下

jQuery 现在支持 Internet Explorer 9 作为顶级浏览器。所有已知的 bug 都已修复或已报告给 IE 团队,以便在最终版本中解决。

已向 jQuery.ajax() 添加了三个新选项

  1. isLocal: 允许将当前环境识别为“本地”(例如文件系统),即使 jQuery 默认情况下不将其识别为本地。以下协议当前被识别为本地:file、*-extension 和 widget。如果 isLocal 设置需要修改,建议在 $.ajaxSetup() 方法中仅修改一次。
  2. mimeType: 用于覆盖 XHR 类型的 mime 类型。
  3. xhrFields fieldName-fieldValue 对的映射,用于设置在原生 XHR 对象上。例如,如果需要,可以使用它将 withCredentials 设置为 true 以进行跨域请求。

已关闭的工单

以下是所有已关闭的 bug 和工单的完整列表

  • #2551 确保 .val() 在 IE 中 form.reset() 后工作
  • #4537 确保 .clone(true) 正确克隆命名空间事件
  • #4966 在对无单位属性进行动画处理时,不要向其添加“px”
  • #6774 确保我们仅在可用时访问 parentNode。修复了一个问题,即在选项标签被分离后,会抛出 elem.parentNode 错误。
  • #6911 阻止对禁用元素的操作,包括触发和通过 .live() 绑定
  • #7531 再次修复 IE9RC。增强 ajaxSetup,以便它可以接受一个可选的 target 选项,在这种情况下,target 将被更新而不是 ajaxSettings。这样,那些不应该被深度扩展的字段就可以被列出来,并在一个地方进行处理。jQuery.ajax 现在使用带有 target 的 ajaxSetup 来创建其内部设置对象
  • #7568 #5862 的后续修复。具有 length 属性的对象无法被 jQuery.param 正确序列化
  • #7653 更改正则表达式以检测本地协议,使其接受以 -extension 结尾的任何协议
  • #7668 Sizzle 和 jQuery QUnit 测试不同步
  • #7912 此更改使 .cur() 更加 .cssHooks 友好。如果 .cur() 不是数字、类似数字或需要回退到 0 的值,则它现在将返回由 .css() 未修改的值。
  • #7922 修复了 live(‘click’) 在 IE 中先绑定 live(‘submit’) 则不会触发的问题
  • #7945 使 jQuery.param() 正确序列化具有名为 jquery 的属性的普通对象
  • #8033 jQuery 1.4.4+ 无法在具有旧版 Prototype (<= 1.5) 或 Current Prototype + Scriptaculous 的页面上加载 IE
  • #8039 使用 HTML5 输入类型的选择器在 IE6/7 中不起作用
  • #8052 更新 jQuery.support.noCloneEvent 测试,使其在 IE9 中正常工作
  • #8095 正确处理需要绕过浏览器缓存的情况,同时服务器端逻辑仍然提供正确的 304 响应。添加了单元测试
  • #8098 在可用时使用快速的 document.head
  • #8099 始终根据元素的预期默认显示值恢复到正确的显示值
  • #8107 修复 $.ajax 的参数处理,以支持多种方法签名,并添加测试用例
  • #8108 使用 JSON.stringify 序列化时,临时修复 jQuery 元数据在普通 JS 对象上暴露的问题,以避免出现不兼容的更改。对此的正确修复将在 1.6 中完成
  • #8115 在代码中将所有对 jXHR 的引用重命名为 jqXHR(如文档中所做的那样)
  • #8123 .clone() 的默认值为不克隆任何事件
  • #8125 当 location.protocol 为“file:”时,状态被设置为 200,而请求的状态为 0。添加了 test/localfile.html 来控制它是否工作
  • #8129 修复在 IE8 中克隆多个选定选项的问题
  • #8135 确保 IE 9 仍然克隆属性。
  • #8138 仅在加载时访问 document.location 一次,如果失败(当 document.domain 已被设置时,IE 中会抛出异常),我们使用 A 元素的 href 代替
  • #8145 添加了 readyWait 测试
  • #8146 引入了 xhrFields 选项,它是一个 fieldName/fieldValue 的映射,用于设置在原生 xhr 上。如果需要,可以使用它将 withCredentials 设置为 true 以进行跨域请求
  • #8152 对协议“chrome-extension:”应用与“file:”相同的特殊情况(需要测试)。重新组织并修复了对 XHR 传输中 HTTP 状态码的特殊情况的处理
  • #8177 XHR 传输现在将 304 Not Modified 响应视为 200 OK,前提是没有提供条件请求标头(根据 XMLHttpRequest 规范)
  • #8193 修复了预过滤中的中止。在这种情况下,即使将全局选项设置为 true,也不会触发全局事件。添加了单元测试
  • #8198 删除不必要的“script.type = text/javascript;”
  • #8200 取消公开 $.support._scriptEval,因为它不再需要。使用私有变量代替
  • #8209 确保将鼠标悬停在 Chrome“内部 div”上不会触发 mouseleave
  • #8219 引入了 mimeType 选项,用于在转换中覆盖 content-type 标头(如果可能,在原生 xhr 中也是如此)。在 jqXHR 对象上添加了配套的 overrideMimeType 方法(它只是设置了该选项)
  • #8220 从标签名称过滤器中删除反斜杠
  • #8245 Ajax 现在确保标头名称是大写的,这样不符合规范的 xhr 实现就不会覆盖它们
  • #8250 ajax 在 Opera 10 小部件中不起作用
  • #8277 在 ajax 助手未提供数据时,将数据设置为 undefined 而不是 null,这样就不会阻止在 ajaxSettings 中设置的数据被使用。
  • #8297 确保正确处理具有空值的响应标头,并且不会阻止对整个响应标头字符串的正确解析。
  • #8353 在 resolveWith 中添加了一个 catch 块,以便在 IE7 和 IE6 中执行 finally 块。
  • #8365 确保 IE 9 仍然克隆属性。

关于“jQuery 1.5.1 发布”的 11 则评论

  1. CDN 是一个糟糕的想法。在第三世界,互联网速度像乌龟一样慢,DNS 查询可能需要很长的时间。因此,当从网站调用第三方 DNS 查询(例如到 CDN)时,实际上它所做的一切就是阻止网站加载,有时完全停止加载。而在互联网速度很快的西方,本地加载 30Kb 有什么区别呢?Durr...

  2. 我一直都在 Firebug 中使用 Firefox 的最新版本,在使用 jquery1.5 和 1.5.1 加载的任何脚本中都遇到了这个问题。

    属性选择器中的意外标记:‘!’。

  3. CDN 的作用是,当其他人从另一个 CDN 的网站下载了副本后,浏览器就不需要再次为你的网站下载副本。Google CDN 非常有名,它可以通过这种方式帮助很多人。而且,一些 Google 服务甚至使用自己的 CDN 的 jquery,你可能没有发现你经常使用它。