新版本、视频和 jQuery UI Grid 的抢先预览

发布日期: 作者:

在今天的文章中,我们将介绍 jQuery Core 和 UI 的更新,并重点介绍即将举行的培训活动以及我们认为可能对您有用的文章或视频。我们感谢您对它们的评论和反馈!

内容

 

jQuery 1.5 已发布

本周,核心团队发布了 jQuery 1.5,以庆祝该库的五岁生日。这包括许多 性能改进 和错误修复,以及对 Ajax 模块的重大重写,该模块现在附带了 延迟 回调管理。Core 还引入了一项名为 jQuery.sub 的新功能,它允许创建 jQuery 的新副本,在这些副本中可以安全地修改属性和方法,而不会影响全局 jQuery 对象。

如果您还没有机会阅读或试用这些新功能,社区成员 Eric Hynds 编写了一个 关于使用 Deferreds 的深入教程,您可能会感兴趣。我还录制了一个 快速屏幕截图,解释如何使用 jQuery.sub

jQuery 1.5 已经开始在野外使用,您可能还想看看 jQuery 模板作者 Boris Moore 的新 脚本加载器,它也使用延迟。

与往常一样,我们感谢社区对 1.5 版本的所有反馈,如果您发现任何您想报告的错误或问题,您可以按照我们的 错误提交指南 进行操作。我们已经对 1.5 做了大量 修复(可以在 jQuery-Git 中测试),我们也欢迎对该版本的任何反馈。

请记住,可以在我们的 路线图 上找到我们所有未来版本(包括 jQuery 1.5.1)的最新信息。

 

释放网格 - 新的 jQuery UI Grid

jQuery UI 团队宣布了一个名为 jQuery UI Grid 的激动人心的新项目,他们将在该项目中构建一个功能丰富、速度快的网格小部件,用于通过链接、排序、分页和内联编辑等功能来增强表格数据。

在项目之外,已经有很多尝试创建这样的部件,但是它们经常受到支持、文档不足或可扩展性不足的影响 - 新的 UI 网格项目旨在通过提供一个项目支持的组件来解决这些问题,该组件将既模块化又持续更新。

Richard D. Worth 谈话,以下是关于团队目前在 Grid 上取得的进展的更新

我们即将完成项目的第 1 阶段开发,该阶段包括创建通用数据模型、数据类型解析和标记。此阶段将最终形成一个“零功能网格”,这是一个增强的 HTML 表格,它支持 jQuery UI CSS 框架并用作其他网格功能的基础。

阅读 Richard 关于新网格的完整博客文章.

 

jQuery 大会视频现已在线提供

如果您无法参加去年在波士顿举行的 jQuery 大会(出席者包括 John Resig 和 Karl Swedberg),我们有一个好消息 - 几乎所有演讲都可以在线观看(在您的台式电脑或移动设备上),通过我们的 大会网站。您还可以通过点击任何单个演讲者的演讲来获取视频中提到的幻灯片。

 

即将举行的 jQuery 培训活动

集体培训可以是提高您的 jQuery 技能的绝佳方式,Ben Alman 在 Bocoup(jQuery 赞助商)想要特别宣布他们在 3 月和 7 月将举办的活动。

Bocoup 目前已安排了两场为期 3 天的全面 jQuery 培训课程。与往常一样,课程将在波士顿的 Bocoup Loft 举行,10% 的利润将直接捐赠给 jQuery 基金会。请务必立即报名,因为课程人数限制为 12 人。在此了解有关我们的课程和培训师的更多信息

2011 年 3 月 2 日至 4 日2011 年 7 月 13 日至 15 日

jQuery 团队成员 Karl Swedberg 还将在 3 月 1 日至 3 日 之间在密歇根州霍兰举行一个动手培训活动。

Karl 将以简单易懂的方式向您讲解 jQuery 的原理,并向您展示如何在日常编码中使用该库。Karl 还将向所有与会者赠送他编写的Learning jQuery 一书的免费副本。

有关更多信息或注册,请查看 IdeaFoundry 网站。

 

YayQuery 的新剧集

对于 YayQuery 播客的粉丝,Paul Irish(jQuery 核心团队)、Adam Sontag(jQuery UI 团队)以及社区成员 Alex SextonRebecca Murphey 回到了他们的视频播客的新剧集中。在他们最新的剧集中,他们讨论了新的 Deferreds 功能,其中一位主要开发人员是 Ajax 重写背后的 (Julian Aubourg),他们还介绍了 jQuery 和 JavaScript 世界中的其他新进展。

YayQuery.com 上观看或收听播客。

就是这样!如果您有任何您认为对社区有益的有趣的 jQuery 文章或帖子,请随时在评论中提及它们。我们将在几周后发布另一个社区更新,其中包含有关下一版本的 jQuery 的更多新闻。

在那之前,祝您所有项目好运!

jQuery 1.5 已发布

发布日期: 作者:

jQuery 1.5 准时发布,可以开始使用了!

这个版本的发布已经酝酿了很长时间,是团队共同努力的结果。请借此机会感谢 jQuery 团队jQuery 错误分类团队 的成员,感谢他们帮助我们发布了这个版本。

下载

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

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

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

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

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

关于版本

这个版本修复了 83 个错误,总共关闭了 460 个工单

测试套件(现在有 4437 个测试)在 jQuery 支持的所有浏览器(以及更多)中通过 - 我们验证了测试套件通过了以下所有浏览器

  • Safari 5.0.3 / 4.0.5 / 3.2.3 / 3.1.2
  • Opera 11.01 / 11 / 10.63 / 10.54 / 10.10 / 9.64
  • IE 6 / 7 / 8
  • Firefox 4.0b9 / 3.6.13 / 3.5.11 / 3.0.19 / 2.0.0.20
  • Chrome 8.0.552.215 / 8.0.552.237 / 9.0.597.67 Beta / 10.0.642.2 Dev

此外,可以在 API 网站上找到该版本的所有 API 文档:jQuery 1.5 API 文档

可以在我们的 路线图 上找到我们即将发布的版本的完整时间表。目前,我们计划更频繁地发布主要 jQuery 版本(可能是每年几次,而不是每年一次)。

那么,jQuery 1.5 中有什么变化呢?

Ajax 重写

这个版本中最大的变化无疑是 jQuery 中 Ajax 模块的完整重写。这次重写有助于解决旧 Ajax 系统中存在的大量差距,并为整个 API 提供更高水平的一致性。

也许最大的变化是,对 jQuery.ajax(或 jQuery.get、jQuery.post 等)的调用现在返回一个 jqXHR 对象,该对象在跨平台的 XMLHttpRequest 对象中提供一致性(并允许您执行以前不可能的任务,例如中止 JSONP 请求)。

有关新 jqXHR 对象的更多详细信息,请参阅 jQuery.ajax() 文档

除了更一致的 API 之外,Ajax 系统现在也更加可扩展 - 允许您附加各种数据处理程序、过滤器和传输。这些更改应该开辟一个全新的 Ajax 插件领域,这些插件可以利用这种可扩展性。更多信息可以在 扩展 Ajax 文档中找到。该团队正在积极征求有关 Ajax 可扩展性 API 的反馈,如果您有任何反馈,请随时将其发送到 Developing jQuery Forum

延迟对象

随着 Ajax 模块的重写,一个新的功能也随之推出,并且公开可用:延迟对象。此 API 允许您处理可能无法立即获取的返回值(例如异步 Ajax 请求的返回值)。此外,它还让您能够附加多个事件处理程序(这在之前 Ajax API 中无法做到)。

例如,以下操作现在可以使用 jQuery 的内部 Ajax API 完成:

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.ajax({ url: "example.php" })
    .success(function() { alert("success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });

// perform other work here ...

// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });

此外,您可以使用公开的 jQuery.Deferred 创建自己的延迟对象。有关此 API 的更多信息,请参阅 延迟对象 文档。

Eric Hynds 写了一篇关于 在 jQuery 1.5 中使用延迟对象 的优秀教程。

jQuery.sub()

jQuery 现在公开了一种新的方式,您可以使用它创建和修改 jQuery 的克隆,同时仍然可以使用完整的 jQuery API。例如,您可以使用它来覆盖本机 jQuery 方法,而不会实际影响其他用户将交互的那些方法,甚至为您的插件创建封装的 API,以避免命名空间冲突。

以下示例演示了如何向 jQuery 子项添加一个方法,使其不会在外部暴露出来:

  (function(){
    var sub$ = jQuery.sub();

    sub$.fn.myCustomMethod = function(){
      return 'just for me';
    };

    sub$(document).ready(function() {
      sub$('body').myCustomMethod() // 'just for me'
    });
  })();

  typeof jQuery('body').myCustomMethod // undefined

有关 jQuery.sub() 的更多信息,请参阅 API 文档。

请注意,如果您想将它用于插件开发,您应该首先认真考虑使用像 jQuery UI 小部件工厂这样的东西,它可以管理状态和插件子方法。 一些使用 jQuery UI 小部件工厂构建插件的示例

相邻遍历性能

在此版本中,我们还提高了一些常用遍历方法的性能:.children()、.prev() 和 .next()。我们观察到的加速相当显著(可能快得多,具体取决于浏览器)。

.children() Performance in jQuery 1.5

.prev() Performance in jQuery 1.5

.next() Performance in jQuery 1.5

性能测试案例和原始数据

构建系统

最后,我们对 jQuery 的内部构建系统进行了一些更改。我们努力将所有构建过程标准化到出色的服务器端 JavaScript 环境:NodeJS。我们对此特别感激,因为我们能够减少对传统 Java/Rhino 系统的依赖,并将更多注意力集中在不断涌现的 JavaScript 环境上。

此外,随着这种转变,我们已从 Google Closure 编译器迁移到使用 UglifyJS。我们在使用它时看到了文件大小的显著改进,因此我们对这种转变感到非常满意。

感谢!

一如既往,我们要感谢所有帮助我们发布此版本的人——没有你们的贡献,这个版本不可能实现。如果您有任何问题或发现任何错误,请将您的问题提交到 jQuery 错误跟踪器

API 文档更改

发布日期 作者

api.jquery.com 上评论的示例 当我们在去年 1 月为 API 文档添加评论时,其目的是为社区成员提供一个地方,让他们可以用自己的提示或实际示例来扩展文档。虽然此系统在最初推出时运行良好,但管理其吸引的大量垃圾邮件变得越来越困难。我们还发现,许多人试图将其用作支持系统,而这并非其设计用途。因此,我们计划在本周晚些时候关闭 API 网站上的评论,转而使用更直接的反馈选项

  • 如果您需要帮助调试代码或了解某些内容的工作原理,或者您有兴趣帮助他人,请访问 jQuery 论坛 或访问 irc.freenode.net 上的 #jquery。
  • 如果您发现错误或有增强功能的想法,请遵循我们的 错误报告指南,并将您的报告直接提交到我们的 错误跟踪器
  • 如果您在我们的文档中发现错误或遗漏,并且想要帮助我们改进它,我们将提供一个简单的联系表格供您填写。

评论被禁用后,jQuery API 小组成员将仔细检查旧评论,以查找任何信息,如果获得评论者的许可,我们将将其纳入正式文档。

观察和经验教训

即使我们将关闭评论系统,在过去一年中将其放在网站上也是一项宝贵的经历。以下只是我们在此过程中注意到的一些观察和经验教训

  • 当错误报告、功能请求和求助信息留在评论中,而不是在错误跟踪器和论坛中时,它们没有得到应有的关注。
  • 当好心人以错误的渠道回复求助请求时,他们无意中助长了社区的分裂。
  • 另一方面,当人们在适当的渠道中介绍和回复主题时,成功解决问题的可能性要大得多。
  • 关于如何编写适当评论的说明经常被忽略,无论其大小、位置或措辞如何。
  • 随着错误修复和增强功能的应用,主题相关评论的价值和准确性会随着时间的推移而下降。
  • 知道如何以及何时“修剪”评论是一个特别棘手的挑战。例如,在我们修改了条目中的措辞以解决评论线程后,我们认为删除线程是合适的。然而,我们也后悔没有能够适当地感谢那些在没有增加评论噪音的情况下提供帮助的人。
  • 如果插件作者在评论中宣传他们的项目,这算不算垃圾邮件?我们没有对这个问题以及类似问题的答案,但这并没有阻止我们花大量时间为处理这些情况的正确方式™而烦恼。

感谢 jQuery API 小组

最后,我要借此机会感谢那些自愿贡献宝贵时间和资源来维护和改进 API 文档的人。以下人员是最近成立的 jQuery API 小组成员

  • Adam Sontag
  • Addy Osmani
  • Alex Sexton
  • Dan Heberden
  • Dave Methvin
  • Eddie Monge
  • Jonathan Chaffer
  • Karl Swedberg
  • Paul Irish
  • Richard Worth
  • Rick Waldron
  • Scott González
  • Sean Koole
  • Todd Parker

此外,感谢 jQuery 社区的所有成员,他们提供了建议、批评和鼓励。

jQuery 1.5 RC 1 发布

发布日期 作者

我们正在接近 jQuery 1.5 的最终版本——我们很高兴地宣布第一个候选版本发布!如果没有任何重大错误,这应该就是我们最终用于 jQuery 1.5 的代码(将在 1 月 31 日发布)。

最终的发布说明和文档将在最终的 1.5 版本中发布。

jQuery 1.5 发行候选版本 1

您可以从 jQuery CDN 获取代码

您可以通过将该代码放入您现有的应用程序中并告诉我们如果有任何东西不再工作来帮助我们。请 提交错误,并确保提到您正在针对 jQuery 1.5 RC 1 进行测试。

我们希望鼓励社区中的每个人尝试并 参与回馈 jQuery 核心。我们已经设置了一个 完整页面 的信息,专门用于让您更多地参与团队。团队就在这里,随时准备帮助您帮助我们!

jQuery 1.5 Beta 1 发布

发布日期 作者

祝 jQuery 5 岁生日快乐!jQuery 于 2006 年 1 月 14 日发布,今天标志着它 5 年的发展历程!

为了庆祝这个时刻,我们发布了 jQuery 1.5 的第一个 Beta 版本!我们 计划 在 10 天内发布最终的候选版本,并在月底前发布最终版本。

我们还希望宣布 jQuery 核心开发团队 中的三位新成员:Julian Aubourg、Colin Snover 和 Anton Matzneller。他们三人都是 1.5 版本的重要贡献者——提供了重要的代码贡献、错误修复和分类。请借此机会欢迎他们加入!

此外,我们还希望借此机会感谢 jQuery 社区的所有成员,他们帮助我们发布了这个 Beta 版本——尤其是 错误分类团队 的所有成员。

我们希望鼓励社区中的每个人尝试并 参与回馈 jQuery 核心。我们已经设置了一个 完整页面 的信息,专门用于让您更多地参与团队。团队就在这里,随时准备帮助您帮助我们!

所以,不多说了——jQuery 1.5 Beta 1!

jQuery 1.5 Beta 1

您可以从 jQuery CDN 获取代码

您可以通过将该代码放入您现有的应用程序中并告诉我们如果有任何东西不再工作来帮助我们。请 提交错误,并确保提到您正在针对 jQuery 1.5 Beta 1 进行测试。

jQuery 1.5 Beta 1 更改日志

这是一个简明的更改日志——完整的发布说明将在最终的 1.5 版本中发布。

  • 由 Julian Aubourg 重写 Ajax 模块。这是此版本中最重要的更改,它为 $.ajax 带来了许多性能、稳定性和功能改进。更多信息可以在这里找到 这里 #7195
  • jQuery 中现在支持子类化 #7901
  • 删除了使用 noConflict() 时发生 expando 冲突的可能性(V8 速度很快!)。expando 字符串现在使用随机数 + jQuery 版本来区分 jQuery 的实例,而不是毫秒时钟时间。 #6842
  • 在 $.get 和 $.post 中对代码进行去重。 #7847
  • 当本机浏览器事件在 DOM 中冒泡时,确保 jQuery 的 Event 对象反映正确的 isDefaultPrevented 值。 #7793
  • 不再在 buildFragment 中缓存非 HTML 字符串,以避免与 Object 方法(如 toString)的名称发生可能的冲突。测试表明这还可能提供适度的性能改进。 #6779
  • 更新了 cloneCopyEvent,使其在克隆元素时不会创建多余的数据对象。公开了新方法 $.hasData,用于确定对象是否具有任何数据。 #7165
  • 在复制事件时使用 for 循环而不是 for/in 循环,以便代码可以与增强的 Array.prototype 协同工作。 #7809#7817
  • 修复了 fadeIn 与内联元素配合使用时无法正常工作的问题。 #7397
  • 重写了 IE 的克隆函数,使其在所有已知情况下都能正常运行。 #4386#5566#6997
  • 修复了在普通 JS 对象上分派“提交”事件时 IE 崩溃的问题。 #6398
  • 修复了 1.4 版本中导致脚本传输缓存控制设置不正确的回归问题。 #7578
  • 提高了 get() 方法对负索引的性能。 #5476
  • 如果属性包含回车符 (\r) 字符,则 hasClass 和 removeClass 在 IE 中无法正常工作。 #7673
  • 修复了 1.4.4 版本中在非 DOM 元素上调用 $.fn.data 而不带参数会导致崩溃的回归问题。 #7524
  • 修复了 IE 中由 $.ajax 的自定义中止函数导致的内存泄漏问题。 #6242
  • 阻止 IE 中的禁用元素触发实时事件。 #6911
  • 修复了 1.4.3 版本中导致将 Location 对象发送到 $.ajax 无法再正常工作的回归问题。 #7531
  • 修复了一些遍历方法执行了不必要的唯一性检查的问题。 #7964
  • 现在支持指定回调函数来处理特定的状态码。 #4964
  • 修复了 ?? 作为 JSONP 请求回调函数名称的上下文无关占位符无法得到支持的问题。 #4897
  • 从 dataFilter 返回的数据没有传递给 ajax complete() 回调函数。现在使用 jXHR 的 Promise 接口获取实际的响应。 #4825
  • 现在确保 buildFragment 在所有浏览器中都能正确地克隆元素。 #6655#3879
  • 修复了 IE8 中绑定自定义事件时导致的内存泄漏问题。 #7054
  • 表单数据中的行现在以 CRLF 分隔(如 W3C 建议)。 #6876
  • Ajax 请求现在在卸载时中止,以便仅在使用 xhr 传输时绑定事件。 #5280
  • 现在支持检测 =?,即使它在数据序列化过程中被转义。 #5812
  • 如果用户使用 jsonpCallback 设置,现在会自动将 dataType 设置为“jsonp”。 #5803
  • crossDomain 选项现在强制 ajax 将请求视为跨域请求,即使它不是。这在服务器向跨域 URL 发出重定向时很有用。 #5955
  • $.ajax(this) 允许重试,而不会出现 jQuery 1.4.3 中的递归错误。 #7461
  • 删除了针对早期版本的 Opera 9 的补丁,该补丁使动画值小于 -10000 变得不可能。 #7193
  • 现在为错误回调函数正确地传播 ResponseText。 #7868
  • 脚本的 onload 处理程序将事件作为第一个参数传递,因此 statusText 现在作为第二个参数传递给中止。 #7865
  • 关于 xhr,将 contentType 设置为 false 现在将阻止发送 Content-Type 标头。 #7465
  • 在序列化文本时,现在根据 application/x-www-form-urlencoded 规范将所有换行符编码为 CRLF 对。 #6876
  • 修复了 IE6 中某些事件处理程序导致跨页面内存泄漏的错误。 #7762
  • 跨域检测测试现在包括检查协议、主机名和端口。 #7465
  • 修复了包含句点 ID 导致 find() 无法返回结果的问题。 #7533
  • 已修复 next/adjacent 选择器在没有“prev”元素的情况下无法正常工作的回归问题。 #7452
  • 修复了 1.4.3 版本中无法在节点类型为 1 的 DOM 元素节点以外的任何对象上使用 attr() 的回归问题。 #7452, #7500,
  • 修复了在 IE8 中包含 jQuery 1.3.2 会导致屏幕右侧出现边框的错误。 #5575
  • 修复了向 Array.prototype 添加额外方法并使用 jQuery.clone(true) 克隆元素导致事件绑定无效的问题。 #6355
  • 修复了 nth-child 在 Internet Explorer 中没有正确处理空格的问题。 #7558
  • 修复了使用实时事件时 mouseenter/leave 的行为类似于 mouseover/out 的错误。 #5821
  • 修复了 1.4.3 版本中 eq() 选择器不再与 previous 和 adjacent 选择器一起工作的回归问题。 #7906
  • 更新了有关 event.currentTarget 的文档,以解决有关 jQuery.proxy 的任何困惑。 #7628
  • 修复了 xhr.setRequestHeader('Accept',…) 追加值而不是替换值的问题。 #6230
  • 修复了 IE 中 ajax 方法对以“+xml”结尾的内容类型(例如 rss+xml)失败的问题。 #4958
  • 对 ajax 的更新现在允许中止任何请求。 #3442
  • 修复了 FireFox 3.6.11 中 .slideUp() 的问题,该问题之前隐藏了框架集边框和图例,但保留了其他元素未覆盖的任何内容。 #7308
  • 现在支持跨浏览器 XML 解析。 #6693
  • 修复了在 .ajax() 方法中使用 dataType:'json' 时,数据对象在 IE6 和 7 中未定义的错误。 #6106
  • 修复了 JSONP 调用在调用完成时没有删除脚本标签的问题。 #7418
  • 更新了文档,以反映在未指定持续时间的情况下,使用 delay() 与 show() 一起使用时的行为。 #7543

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

发布日期: 作者:

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

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

有关将您的网站升级以利用可用的 CDN 之一,或下载 jQuery 以自行托管的信息,请访问

下载 jQuery
jQuery UI 1.8.7 发布说明

感谢您的合作!

2010 年 12 月的 jQuery 社区更新

发布日期: 作者:

欢迎来到 12 月的 jQuery 社区更新。我们希望您和您的家人度过了一个愉快的假期,并祝社区中的每个人新年快乐!

在今天的文章中,我们将介绍 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 组件具有可插拔的体系结构,这使得定义新的自定义数据类型和传输变得容易。自定义数据类型允许您为应用程序代码提供一致的响应对象,无论原始数据格式如何,自定义传输允许您执行诸如模拟 ajax 请求以进行测试、使用特定于浏览器的网络对象(如 XDomainRequest)或使用完全不同的机制执行远程调用(如 iframe 或 postMessage)等操作,而无需编写大量代码。最棒的是,任何此类添加都可以立即访问 jQuery.ajax 的全部功能(参数序列化、超时、延迟回调等),并且使用您已经熟悉的相同 $.ajax API 公开给应用程序代码。

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

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

我们非常注重确保现有的单元测试通过,并添加了许多其他测试来帮助确保所有功能都能按预期工作,并且不会破坏现有的代码。

我如何提供帮助?

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

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

要贡献补丁,Rick Waldron 编写了一份优秀的 jQuery 错误修复指南,其中介绍了如何开始使用 git、构建和测试 jQuery 以及查找新的错误来解决。如果您计划提交补丁,还应加入 Freenode 上的 #jquery-dev 频道,这是大多数关于 jQuery 开发讨论发生的地方。

当前更改日志

  • 1.Julian Aubourg 对 Ajax 模块的重写。这是此版本中最重大的更改,它为 $.ajax 带来了许多性能、稳定性和功能改进。更多信息可以在上面找到。 #7195
  • 2.jQuery 现在将自身注册为 CommonJS 异步模块。这允许 jQuery 参与与兼容加载器(如 RequireJS 和 Yabble)的浏览器模块加载。 #7102
  • 3.在使用 noConflict() 时删除了扩展冲突的可能性(V8 速度很快!)。扩展字符串现在使用随机数 + jQuery 版本来区分 jQuery 的实例,而不是毫秒计时器。 #6842
  • 4.在 $.get 和 $.post 中对代码进行去重。 #7847
  • 5.当本机浏览器事件在 DOM 中冒泡时,确保 jQuery 的 Event 对象反映正确的 isDefaultPrevented 值。 #7793
  • 6.不再在 buildFragment 中缓存非 HTML 字符串,以避免可能与 Object 方法(如 toString)的名称发生冲突。测试表明,这还可以提供适度的性能提升。 #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 中的回归,该回归会导致脚本传输的缓存控制设置不正确。 #7578
  • 13.提高 get() 对负索引的性能。 #5476
  • 14.hasClass、removeClass 在 IE 中不起作用,如果属性包含回车符 (\r) 字符。 #7673
  • 15.修复了 1.4.4 中的回归,在该回归中,对非 DOM 元素调用 $.fn.data 而不带参数会导致错误。 #7524
  • 16.修复了 IE 中由 $.ajax 的自定义中止函数引起的内存泄漏。 #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 的支持,但也为按钮、进度条和日期选择器提供了显着的更新。有关此版本的完整详细信息,请阅读 jQuery UI 1.8.7 发行说明

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

jQuery 每周开发会议

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

Wijmo 在 jQuery 播客上

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

捐赠

jQuery 是否帮助您更轻松地进行开发?您可能知道,jQuery 是一个开源项目,它依赖于我们宝贵的志愿者和社区成员的时间和努力,并且完全通过来自公众的捐款来资助。如果您发现 jQuery 有用,我们希望谦虚地请求您考虑做出少量贡献(即使是 10 美元也能起到很大作用)。jQuery 项目是软件自由保护组织的一部分,因此您做出的任何捐款都是完全免税的。有关财务捐款的更多信息,请访问 http://jquery.org/donate

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

这就是本次更新的全部内容!感谢您的阅读;我们期待您的反馈。

团队聚光灯:jQuery 错误分类团队

发布日期为 作者

请允许我用一张图表介绍错误分类团队

在过去的 60 天里,错误分类团队已经将一大堆难以处理的票证整理成一个整洁的整体,并处理了其中的每一张。

没错;目前,jQuery 问题跟踪器中没有待审核的票证。最后一个 被关闭的是一个相当难闻的错误。

jQuery 错误分类团队是一群 jQuery 核心和社区成员,他们积极协助缩小和修补在 jQuery 错误跟踪器 上提交的错误。这个团队成员总共拥有多年调试和修复 JavaScript 和 jQuery 问题的经验。当您向项目提交错误、功能请求或增强请求时,他们就是审查您的票证的团队。

团队成员是

  • Dave Methvin 是 PC Pitstop 的联合创始人,自 2005 年以来一直是 jQuery 用户,并且是 jQuery 核心团队的成员。
  • Addy Osmani 是 AOL 的伦敦用户界面开发人员,也是一位经常撰写 jQuery 博客文章的作者。
  • Colin Snover 是一位总部位于明尼阿波利斯的独立软件设计师和开发人员。
  • Rick Waldron 是波士顿 Bocoup 的研发主管。
  • Alex Sexton 是奥斯汀 Bazaarvoice 的实验室工程师,也是 yayQuery 播客的联合主持人。
  • Adam J Sontag 是 Bocoup 的纽约开发人员,也是 yayQuery 播客的联合主持人。
  • Mike Taylor 为 Opera Software 工作,有时骑自行车会被汽车撞到。
  • Dan Heberden 是一位总部位于俄勒冈州波特兰的网络顾问,并且是 jQuery UI 团队的成员。
  • Anton Matzneller 是一位位于奥地利维也纳的计算机科学学生和开发人员。

我们都应该向这些家伙表示衷心的感谢。他们为使 jQuery 变得更好付出了巨大的努力。

<== jQuery 英雄

现在,让我们来了解开发方面的其他一些新闻…

新(未记录)功能

jQuery.readyWait
jQuery 1.4.3 中引入了一个名为 readyWait 的计数器。这提供了一种方法,让控制流达到注册的 ready() 处理程序被调用的点。

事件映射支持扩展
.live().die().delegate().undelegate() 现在与 bind 和 unbind 当前支持的方式一样,支持事件映射作为参数。

.getData().setData().changeData() 可用覆盖
正如 jQuery 1.4.3 发行说明中提到的那样,我们之前提供了两个事件,setData 和 getData(每当通过 .data() 方法设置或检索数据时广播)。在最新版本的 jQuery 中,您实际上可以覆盖这些事件,以便为这些功能提供替代行为。例如,您可以返回不同的值或阻止设置特定值。

回归

我们发现 1.4.3 中引入了一个回归,它限制了 attr() 的使用范围,仅限于 nodeType 1 DOM 元素节点。虽然这在 1.4.4 中已修复,但 attr(name)attr(name, value)特定情况下 仍然会失败。我们计划在 jQuery 1.4.5 中修复此问题。

jQuery UI 错误跟踪器已更新

jQuery UI 错误跟踪器 最近从 Colin Snover 先生那里获得了与 jQuery Core 相同的增强功能,您现在可以找到与 jQuery Core 跟踪器中相同的功能,包括出色的投票和跟踪选项,用于提交错误、功能和增强请求。这将使您更容易了解我们何时查看了您的票证,以便您可以在有任何其他问题或有关修复的更新时进行跟进。

jQuery 错误修补提示

jQuery 拥有一个非常活跃的开发社区,社区成员经常会发现并修复一些 bug 或问题,并将修复内容提交给项目以供审核。

如果你也对此感兴趣,我们准备了一个带有注释的构建文件(由 Rick Waldron 提供),可以帮助你使用 LAMP 或 MAMP 栈设置并修复 bug。你可以通过 gist 下载这个构建文件 this build file via a gist。如果你在设置过程中遇到问题,请随时在上面提到的 gist 上留言,或者在 #jquery IRC 频道咨询我们。

(感谢 Addy Osmani 帮我起草了这篇文章 :)

jQuery 1.4.4 发布候选版本 2 发布

发布于 作者

我们很高兴宣布 jQuery 1.4.4 发布候选版本 2 现已发布!这是 jQuery 1.4.4 的第二个发布候选版本,是 jQuery 1.4.3 的后续维护版本。代码稳定(通过了我们支持的所有浏览器的所有测试),功能完整(我们不再接受新的功能),需要在实际应用中进行测试。

获取代码

我如何提供帮助?

首先,尝试将上面的 jQuery 1.4.4rc2 版本放入你正在运行的实际应用程序中。如果你遇到异常或出现奇怪情况,请立即登录到错误追踪器并 提交 bug请务必提及你在 jQuery 1.4.4rc2 中遇到了 bug!

我们会密切关注收到的错误报告,并努力解决 jQuery 1.4.3 和 jQuery 1.4.4 之间的任何不一致问题。

更新内容

自 1.4.3 发布以来,jQuery 中的一些区域发生了变化。

  • (新增) 添加了一个新的动画方法,.fadeToggle()
  • (增强) 现在,在没有参数的情况下调用 .data() 将包括来自 HTML5 data- 属性的数据 (#7222)
  • (增强) 将 jQuery.props 从 support.js 移动到 attributes.js (#6897)
  • (增强) .width() 和 .height() 现在报告隐藏元素的宽度和高度 (#7225)
  • (Bug) stopImmediatePropagation 在 live/delegate 事件处理程序中没有被遵守 (#7217)
  • (Bug) 修复了在确定 AJAX 请求是本地还是远程时,主机和协议没有区分大小写比较的问题 (#6908)
  • (Bug) 修复了“clone”变量没有正确声明的问题 (#7226)
  • (Bug) 修复了仅在对于根 qSA 且节点没有 ID 时才更改 ID 的问题 (#7212)
  • (Bug) 在调用 .data('foo') 之后,更改 HTML5 data 属性不再导致 .data('foo') 也随之更改 (#7223)
  • (Bug) 修复了 Opera 不会使用 getComputedStyle 获取 display: none 元素的高度/宽度,但会使用 currentStyle 获取的问题 - 如果存在,则回退到该方法。
  • (Bug) 修复了确保访问元素的计算 CSS 时,始终返回“auto”而不是“”的问题 (#7337)

它还修复了 1.4.3 中的一些回归。其中一个导致

  • (Bug) JSONP 调用在回调之后清理时失败 (#7196)
  • (Bug) .removeData() 失败 (#7209)
  • (Bug) 使用 .bind("ready", foo) 添加时,“ready”事件触发两次 (#7247)
  • (Bug) 当尝试获取隐藏或断开的元素的样式时,.css('width') 和 .css('height') 返回 0 或负值 (#7225)
  • (Bug) 属性不等于选择器 ([foo!=bar]) 在 Firefox 中不起作用 (#7243)
  • (Bug) 从包含名为“id”的输入的表单中选择时,find() 失败 (#7212)
  • (Bug) .children(selector) 在 XML 文档中失败 (#7219)
  • (Bug) 子(>)、下一个兄弟(+) 和上一个兄弟(~) 选择器与非 CSS 伪选择器(如:last)结合使用时失败 (#7220)
  • (Bug) 将 null 作为事件处理程序传递时,会引发错误“handler is null” (#7229)
  • (Bug) 无法在 DELETE 请求中包含内容主体 (#7285)
  • (Bug) 无法在 HEAD 请求中包含数据 (#7285)
  • (Bug) 在使用 live/delegate 时,IE 在禁用元素上触发 click 事件 (#6911)
  • (Bug) 如果首先对已隐藏的元素调用 .hide(),则 .show() 失败 (#7331)
  • (Bug) 如果元素在样式表中隐藏,然后在调用 .show() 之前手动设置 .css('display'),则 .show() 失败 (#7315)
  • (Bug) Sizzle.contains 在不支持 compareDocumentPosition 或 documentElement.contains 的浏览器上引发错误 (#7236)

关于该版本的完整详细信息即将发布 - 现在我们只需要你的帮助来捕获回归。

有了你的帮助,我们应该能够发布一个稳定的版本。现在,我们计划在大约一周内发布最终的 1.4.4 版本。感谢你帮助审查 jQuery 1.4.4rc2!

我们还想提醒你,jQuery UI 1.8 的第六个维护版本也已发布。有关此版本的更多信息,请访问 jQuery UI 博客

jQuery 社区更新 10/26

发布于 作者

来自 jQuery 核心团队的更新

今天,关于 jQuery 的下一个版本(jQuery 1.4.4),我有一些好消息要分享。继 1.4.3 版本发布之后,该版本包含许多修复(当然也包括 jQuery Mobile 的引入),我们认为,尽快发布一个维护版本,旨在进一步提高 jQuery 核心代码的稳定性,将对社区最有益。

对于 1.4.4,我们已经确定了需要优先修复的最关键的 bug,并且感谢 John Resig 和 bug 评审团队,我们已经修复了大部分这些问题。我们目前计划在 11 月初发布 1.4.4,假设没有针对此版本发布的进一步重大 bug。

今天,我们想请社区帮助我们确保这个新版本的稳定性,通过压力测试来实现。虽然我们已经在 jQuery 上运行了一套全面的自动化单元测试,但将实际用户的测试加入到我们的项目流程中,可以让我们有机会更快地修复关键 bug,并将帮助 1.4.4 成为比上一个版本有显著改进的版本。

如果你想测试 1.4.4,你可以在这里下载它的最新版本(称为 jQuery Git)

https://code.jqueryjs.cn/jquery-git.js

请注意,此版本尚未准备好用于生产系统,仅供评估和测试。它现在也已在 jsFiddle.net 上可用,条目为“jQuery 0 Git”。

感谢社区帮助我们使这个版本尽可能稳定,我们欢迎你对它的任何反馈。如果你在这个版本中发现 bug 并想要报告它,请参阅有关错误提交的 指南

来自 jQuery UI 团队的更新

来自 jQuery UI 团队的开发者在会议结束后在波士顿停留了三天,他们修复了许多 bug,并对 jQuery UI 的未来进行了面对面的规划。jQuery UI 1.8.6 即将发布,请关注 jQuery UI 博客 的最新消息。

此外,jQuery UI 团队正在与 Colin Snover 合作,将 jQuery UI 的票务系统迁移到一个新的系统,类似于 jQuery 核心团队刚刚获得的系统。我们非常高兴拥有一个更加稳定和协作的票务跟踪系统,并希望社区能够更多地参与到票务评审中。如果你有兴趣贡献,请与 jQuery 开发者关系团队成员 联系。

由 Ralph Whitbeck 和 Rey Bango 主持的 官方 jQuery 播客 上周发布了他们的 第 37 集。本周的嘉宾是 Ben Nadel,他们讨论了 jQuery 在 ColdFusion 社区的应用,以及上周末在波士顿举行的 jQuery 大会。本周,他们将采访 John Resig 关于 jQuery 1.4.3 和 jQuery Mobile。如果你有任何问题需要解答,请通过 联系表格 提交你的问题。

不要忘记我们的 论坛。我们拥有一个充满活力的社区,在那里大家互相提问和解答。我们希望有更多人通过帮助他人解答问题来贡献力量。这是参与项目的一个很好的方式;能够将你的知识回馈给其他人,这是一种非常有意义的事情。