禁止热链接将于 2011 年 1 月 31 日禁用

发布于 作者

最近,我们注意到从直接链接我们各种资源(jquery.com、jqueryui.com、dev.jquery.com 等)上的文件,而不是下载并在本地托管或利用我们和其他公司(Google、Microsoft 等)为此目的提供的 CDN 的网站流量显著增加。这种行为已经开始对我们的网络性能产生负面影响,并阻止了合法用户在高峰时段访问我们的网站。

为了提高所有用户的网站性能和可用性,我们已禁用整个网络中对图像的热链。我们将在 1 月底禁用对其他类型内容(如 CSS 和 JavaScript)的热链。如果您的网站正在热链到 jQuery 域名(code.jquery.com 除外),请注意您必须在此截止日期前更新您的网站,否则它将停止正常运行。

有关如何升级您的网站以利用可用的 CDN,或下载 jQuery 在您自己的服务器上托管的信息,请访问

下载 jQuery
jQuery UI 1.8.7 版本说明

感谢您的合作!

jQuery 社区更新 - 2010 年 12 月

发布于 作者

欢迎阅读 jQuery 社区 12 月更新。希望大家在与家人度过了一个愉快的假期,并祝愿社区中的每一个人新年快乐!

在今天的文章中,我们将介绍 jQuery Core 和 jQuery UI 的更新。我们期待您的评论和反馈!

通往 jQuery 1.5 的道路

jQuery 团队本月一直努力工作,为发布 jQuery 1.5 做准备。本次发布的一些更新代表了我们对稳定性和一致性的持续承诺,通过修复错误和规范化浏览器行为来实现,而另一些则是重要的重写,将提高库的性能、可维护性和多功能性。

有哪些变化?

您可以在本文的“变更日志”部分找到我们所做的所有更改的完整列表。目前可用的最大更新是全新的改进的 $.ajax 组件,其作者 Julian Aubourg 在下面进行了说明

您首先看到的 ajax 组件的更改可能是新的签名:jQuery.ajax( [ url ] , [ options ])。这使得我们可以更轻松地使用默认选项获取 URL。当然,这只是冰山一角,因为整个组件都从头开始重写,以提供许多新功能。

现在,每种请求类型都支持超时和中止。原生 XHR 对象现在对开发者隐藏,并提供了一个新的、jQuery 特有的对象,具有相同的基本接口作为替代。这个“jXHR”对象提供了通常的属性和方法来设置和获取标头、中止请求以及查看 readyState、responseXML 和 responseText——但与原生 XHR 对象不同,它还充当一个 Promise(承诺)。Promise 允许您在请求完成之后添加成功、错误或完成回调;例如,现在可以编写类似 jQuery.getJSON( url ).error( errorCallback ) 的代码,并且它始终有效,无论原始请求的状态如何。

在内部,新的 ajax 组件具有可插拔的架构,可以轻松定义新的自定义 dataType 和 transport。自定义 dataType 允许您向应用程序代码提供一致的响应对象,无论原始数据格式如何,自定义 transport 允许您执行诸如为测试模拟 ajax 请求、使用特定于浏览器的网络对象(如 XDomainRequest)或使用完全不同的机制执行远程调用(如 iframe 或 postMessage)等操作,而无需编写大量的代码。最重要的是,任何此类添加都可以立即访问 jQuery.ajax 的全部功能(参数序列化、超时、延迟回调等),并使用您已经熟悉的相同的 $.ajax API 向应用程序代码公开。

最后,现有的 ajax 选项已添加了一些灵活性,并添加了一些新的选项。例如

  • 您可以为 success、error 或 complete 提供回调数组。非函数将被过滤,数组将被展平,因此您可以很容易地通过执行 options.complete = [ yourCompleteCallback , options.complete ] 在所有其他回调之前添加一个 complete 处理程序!
  • 新的“headers”选项可以设置请求标头的映射,避免了仅为了设置标头而需要 beforeSend 回调的麻烦。

已经非常小心地确保现有的单元测试通过,并且添加了许多其他测试来帮助确保一切按预期工作并且不会破坏现有代码。

我如何提供帮助?

与往常一样,我们希望邀请社区贡献新的补丁或帮助我们测试更改,以便我们能够尽快识别和纠正任何问题。

要执行测试,只需将 jQuery 的开发版本(jQuery-GIT) 放入您现有应用程序的副本中即可。如果您遇到异常或出现奇怪的情况,请登录到 bug 跟踪器并 提交 bug请务必将版本下拉菜单设置为“git”。 您也可以通过从侧边栏的下拉菜单中选择“jQuery 0 GIT”在 jsFiddle 上测试代码。

要贡献补丁,Rick Waldron 编写了一个优秀的 jQuery 错误修复指南,该指南介绍了如何开始使用 git、构建和测试 jQuery 以及查找需要处理的新 bug。如果您计划提交补丁,还应该加入 Freenode 上的 #jquery-dev 频道,大多数 jQuery 开发讨论都在这里进行。

当前变更日志

  • 1. Julian Aubourg 重写了 Ajax 模块。这是本次发布中最重要的更改,为 $.ajax 带来了许多性能、稳定性和功能改进。有关更多信息,请参见上方说明。 #7195
  • 2. jQuery 现在将自身注册为 CommonJS 异步模块。这允许 jQuery 与兼容的加载器(如 RequireJS 和 Yabble)一起参与浏览器模块加载。 #7102
  • 3. 移除了在使用 noConflict() 时发生 expando 冲突的可能性(V8 很快!)。expando 字符串现在使用随机数 + jQuery 版本来区分 jQuery 的实例,而不是毫秒时钟时间。 #6842
  • 4. 删除了 $.get 和 $.post 中的重复代码。 #7847
  • 5. 当原生浏览器事件在 DOM 中冒泡时,请确保 jQuery 的 Event 对象反映正确的 isDefaultPrevented 值。 #7793
  • 6. 为了避免与 Object 方法名称(如 toString)发生可能的冲突,不再在 buildFragment 中缓存非 HTML 字符串。测试表明这也可以提供适度的性能改进。 #6779
  • 7. 更新了 cloneCopyEvent,使其在克隆元素时不会创建多余的数据对象。公开了一个新的方法,$.hasData,用于确定对象是否有任何数据。 #7165
  • 8. 在复制事件时使用 for 循环而不是 for/in 循环,以便代码可以与增强的 Array.prototype 一起工作。 #7809, #7817
  • 9. 修复了 fadeIn 在内联元素上无法正常工作的错误。 #7397
  • 10. 重写了 IE 的克隆函数,使其在所有已知情况下都能正常工作。 #4386, #5566, #6997
  • 11. 修复了 IE 在纯 JS 对象上调度“submit”事件时崩溃的问题。 #6398
  • 12. 修复了 1.4 中的回归,该回归导致为 script transport 设置了不正确的缓存控制。 #7578
  • 13. 提高了 get() 在负索引下的性能。 #5476
  • 14. hasClass、removeClass 在 IE 中不起作用,如果属性包含回车符 (\r)。 #7673
  • 15. 修复了 1.4.4 中调用 $.fn.data 而不带参数在非 DOM 元素上中断的问题。 #7524
  • 16. 修复了由 $.ajax 的自定义中止函数引起的 IE 中的内存泄漏。 #6242
  • 17. 防止活动事件在 IE 中禁用元素上触发。 #6911
  • 18. 修复了 1.4.3 中的回归,该回归导致将 Location 对象发送到 $.ajax 不再起作用。 #7531

jQuery UI 1.8.7 和 Spinner、Menu 和 Tooltip

jQuery UI 团队也一直在努力工作。以下是他们的更新

jQuery UI 1.8.7 自我们上次社区更新以来已经发布。这带来了对 jQuery 1.4.4 的支持,但也提供了对 Button、Progressbar 和 Datepicker 的重要更新。有关此版本的完整详细信息,请阅读 jQuery UI 1.8.7 发布说明

此外,三个新插件刚刚登陆到 jQuery UI master 分支,由 Jörn Zaefferer 提供:SpinnerMenuTooltip。这三个小部件已经开发了一段时间,每个小部件都有自己的里程碑发布。有关这些新小部件的更多信息,您可以在其专门的发布页面上阅读。我们邀请社区测试这些新小部件并提供反馈,如果您发现任何错误或问题需要报告,可以在 jQuery UI 开发中心 找到有关如何操作的说明。

jQuery 每周开发会议

从 2011 年 1 月 4 日开始,我们将试用每周在 freenode 上的 #jquery-meeting 频道中由核心开发者和贡献者举行的 jQuery 开发会议的想法。这些会议的议程将提前提供,任何希望参加的 jQuery 社区成员都欢迎参加。我们的第一次会议将于 1 月 4 日星期二晚上 9 点 EDT 举行,讨论的主题将是 jQuery 1.5 路线图、工单分类以及基础设施讨论。本次会议的完整议程可以在 此处 找到。

Wijmo 在 jQuery Podcast 上

对于 官方 jQuery Podcast 的粉丝,我们想提醒您 第 40 集 现在可以流式传输或下载。在本集中,我们与 ComponentOne 的 Chris Bannon 谈论了新的基于 jQuery UI 的库 Wijmo。

捐赠

jQuery 是否帮助您使开发生活更轻松?如您所知,jQuery 是一个开源项目,依赖于我们有价值的志愿者和社区成员的时间和精力,并且完全通过公众捐款资助。如果您觉得 jQuery 有用,我们恳请您考虑捐赠一小笔金额(即使是 10 美元也很有帮助)。jQuery 项目是软件自由保护组织的组成部分,因此您所做的任何捐款均可全额税收抵免。有关财务捐款的更多信息,请访问 http://jquery.org/donate

如果您无法捐赠任何资金,我们一直需要有才华的软件开发人员、IT 专业人员以及各行各业的极客来帮助开发和维护 jQuery 及其相关属性。如果您有兴趣贡献时间来帮助 jQuery 变得更好,请与 团队成员联系,或在 Freenode 的 #jquery 频道中提问。

本次更新就到此为止!感谢您的阅读,我们期待您的反馈。