jQuery 基金会和标准

发表于

多年来,jQuery 基金会一直致力于为 Web 开发人员提供参与标准制定过程的有意义的途径。因此,我们很高兴能帮助正式建立我们在 chapters.io 中的参与,这项工作使我们能够与全球各地的聚会和支持者合作,帮助开发人员了解最新的标准并讨论当前的提案。

我们的首场活动将是一个定期论坛,由我们自己的代表共同组织,并得到宾夕法尼亚州匹兹堡的 Code and SupplyBearded 的支持。8 月 2 日星期二,Brian Kardell 将在 Code and Supply 定期聚会 上做演讲,详细介绍标准和章节。从那里,我们将组织第一次会议。如果您在匹兹堡并从事 Web 开发工作,请务必参加。如果您有兴趣在您的城市举办和组织聚会,请在 jQuery 基金会标准团队 GitHub 上创建一个 issue,我们将尝试找到可以帮助协调的人。

jQuery 基金会深知,Web 最佳状态是当开发人员积极参与其中,但传统的标准制定模式并未将这一点纳入考量。标准通常由浏览器制造商和在结果中拥有重要利益的大公司推动。有时,标准对这些群体有意义,但在实际应用于互联网的严酷现实中,却证明效率低下。

2011 年 10 月,Addy Osmani 在博客上发布了一篇帖子,宣布了 jQuery 标准团队,任命 Yehuda Katz 和 Paul Irish 代表开发人员社区参与 W3C 和 TC39。多年来,许多 jQuery 代表为倡导开发人员和改进标准制定过程做出了巨大贡献。

事实上,标准从那时起有了很大改进——jQuery 过去和现在的代表在每个步骤中都发挥了作用。

2012 年 12 月,我们帮助选举了一批候选人来改革 W3C。2013 年,Yehuda Katz、我本人(Brian Kardell)、Paul Irish 和 Rick Waldron 等 jQuery 成员共同撰写了 可扩展 Web 宣言。这份文件阐述了重新关注标准、纳入开发人员声音和重新构想更美好未来的新愿景。在过去几年中,这一愿景逐渐成为每个 Web 标准机构的驱动力。然后,在 2014 年,又是 jQuery 呼吁 W3C 年会 (TPAC) 正式采纳、支持并找到更好的方法来纳入开发人员的声音。

可扩展 Web 宣言所阐述的许多原则与 Addy 在最初的那篇博文中表达的原则相同:它鼓励标准机构赋予开发人员发言权,并创建方法来缩短反馈周期。正如 Addy 在最初的那篇博文中所表达的那样:

……我们有多少次都觉得,我们对这些负责定义标准的群体的建议和想法都被听到了?现实情况是,虽然我们中的许多人都希望看到改变,但由于时间限制和冗长的正式流程,我们无法参与标准讨论、参与编写规范并为有关未来功能的会议做出贡献。这使得 Web 开发人员很难发出自己的声音。

传统的标准参与模式无法大规模推广。数百万开发人员无法飞到世界各地参加会议,而一个有数百万成员的邮件列表也无法扩展。Chapters 的目标是提供开发人员与标准之间的一种连接,使每个人都能方便地参与其中。如果您觉得这很有趣,请参与进来!让您的声音被听到!

jQuery 3.1.0 发布 – 再也没有静默错误

发表于

不久前,我们发布了 jQuery 3.0。jQuery 3.0 的主要功能之一是对 jQuery Deferreds 进行了一些小的重写。具体来说,我们使它们与 Promises/A+ 规范兼容。这意味着错误必须被静默处理,并作为拒绝值传递给拒绝处理程序(使用 deferred.catch() 添加)。这样做的好处是防止 Promise 处理程序被运行时错误阻塞,但缺点是如果未添加拒绝处理程序,错误会被静默处理。虽然这对 Deferreds 来说是正确的选择,但我们也在幕后更改了 jQuery.readyjQuery.fn.ready 以使用新的符合规范的 Deferreds。

不幸的是,如果您使用的是通常的方式附加 ready 处理程序(例如 jQuery(function() {})jQuery(document).ready(function() {})),则无法添加拒绝处理程序。此外,您并不清楚自己身处 Deferred 领域。任何运行时异常都被吞并并丢失在太空之中。我认为它们最终落在了冥王星附近,而冥王星现在已经不是行星了!虽然有一些 解决方法,但我们无法接受这种情况。

我们立即着手解决这个问题,因此 jQuery 3.1.0 诞生了。错误不再会被静默处理!默认情况下,您将在控制台中看到它们被记录下来。如果您希望更细致地控制如何处理这些错误,我们还添加了一个入口点:jQuery.readyException。在大多数情况下,您不需要使用它,但任何在 ready 处理程序中抛出的错误都会传递给此函数,以备不时之需。

jQuery.readyException =
  function(error) {
    // "error" is thrown from
    // any ready handler
  };

默认的 jQuery.readyException 将异步重新抛出错误,以避免停止执行并记录错误到控制台。我们希望这可以解决您在使用 jQuery 3.0 时可能遇到的任何调试问题。

我们预计此版本不会有任何重大更改,但如果您在从以前版本升级时遇到错误,请 告诉我们

如果您需要帮助从 jQuery 1.x 或 2.x 升级到 jQuery 3.0,请查看 3.0 升级指南jQuery Migrate 1.4.1 博客文章

3.1.0GitHub 变更日志

下载

如果您愿意,可以直接从 jQuery CDN 包含这些文件,或者将它们复制到您自己的本地服务器。

https://code.jqueryjs.cn/jquery-3.1.0.js
https://code.jqueryjs.cn/jquery-3.1.0.min.js

精简版

有时您不需要 ajax,或者您更喜欢使用专注于 ajax 请求的众多独立库中的一个。通常,对所有 Web 动画使用 CSS 和类操作的组合会更简单。除了包含 ajax 和效果模块的 jQuery 正式版本外,我们还发布了一个“精简版”,排除了这些模块。总而言之,它排除了 ajax、效果以及当前已弃用的代码。如今,jQuery 的大小很少会成为加载性能问题,但精简版的压缩后体积比正式版本小约 6k 字节——23.6k 对比 30k。这些文件也可以在 npm 包和 CDN 上找到。

https://code.jqueryjs.cn/jquery-3.1.0.slim.js
https://code.jqueryjs.cn/jquery-3.1.0.slim.min.js

这些更新已经在 npm 和 Bower 上作为当前版本提供。有关获取 jQuery 的所有方式的信息,请访问 https://jqueryjs.cn/download/。公共 CDN 今天会收到它们的副本,请给他们几天时间发布文件。如果您急于开始,请在他们有时间更新之前使用我们 CDN 上的文件。

感谢所有参与此版本测试、报告错误或提交补丁的人,包括 Oleg GaidarenkoMicha? Go??biowski 以及整个 jQuery 团队。