关于 Dave Methvin

CTO, PC Pitstop http://pcpitstop.com

jQuery CDN 中 jQuery 1.9.1 的错误映射文件

发布于 作者

很久以前,Mike Taylor 指出,jQuery CDN 中有一个最小化的 jQuery 1.9.1 复制文件,其中包含一个错误的映射文件引用。基本上,它引用了 jQuery 1.11.1 的映射文件,而这显然是错误的。如果你试图调试使用最小化 jQuery 1.9.1 文件的网站,开发工具将会非常混乱,让原本困难的任务更加困难。

你可能会认为我们只需要编辑https://code.jqueryjs.cn/jquery-1.9.1.min.js文件以指向正确的映射文件,它确实存在,名为https://code.jqueryjs.cn/jquery-1.9.1.min.map。这样做至少有两个问题。第一个问题是,该文件在整个互联网上被大量缓存,因为多年来一直认为它在发布后将永远不会改变。即使我们编辑了文件,JavaScript 文件和映射文件也可能在使用时永远不会真正更新。

第二个问题更加严重。我们一直倡导开发人员使用脚本的integrity属性,以确保你包含的文件自你最初编写脚本标签以来没有被修改。如果我们修改文件的内容,这个属性将是错误的,页面将不再包含该文件。这很可能会导致页面完全崩溃!考虑到 jQuery 1.9.1 的年代,有可能包含此文件的许多页面都没有被积极维护。因此,我们不能认真考虑以任何方式更改 JavaScript 文件,即使是一字节也不行。

最不具破坏性的选择是删除 jQuery 1.9.1 最小化文件引用的jquery.min.map文件。它不会影响 jQuery 是否能正常运行,也不会影响网站访问者。它只会禁用源映射。由于在 CDN 和整个互联网上包含sourceMappingURL映射引用的这些 JavaScript 文件经常被复制到其他地方,因此我们不再包含它。

如果你需要调试使用这些最小化文件的网站,可以在 Chrome 中手动关联映射文件。打开最小化的源文件,在最小化源区域右键单击,然后选择“添加源映射...”。

不正确的jquery.min.map文件已从 jQuery CDN 中删除。我们预计,除了恢复使用 jQuery 1.9.1 调试网站的正常状态外,删除该文件不会带来任何明显的改变。jQuery 1.11.1 最小化文件不引用其映射文件,因此它将继续正常工作,你可以像上面提到的那样关联映射文件。

由于 CDN 和整个互联网上的缓存非常积极,你可能在一段时间内仍然会看到这个映射文件。如果你发现一些你认为与缺失的jquery.min.map文件相关的异常行为,你可以在 CDN 问题跟踪器中创建一个工单.

jQuery Migrate 1.4.1 发布,以及通往 jQuery 3.0 的道路

发布于 作者

jQuery Migrate 插件的 1.4.1 版本已经发布。它只有一些更改,但其中最重要的更改修复了无引号选择器的问题,这似乎在一些 WordPress 主题中很常见。在大多数情况下,Migrate 可以与 jQuery 1.12.x 或 2.2.x 结合使用时自动修复此问题,尽管它可能无法修复一些复杂的选择器。好消息是,所有在 WordPress 主题中报告的无引号选择器案例似乎都可以通过此版本的 Migrate 修复!

你可以在所有熟悉的地方获取这个新版本

jQuery CDN: https://code.jqueryjs.cn/jquery-migrate-1.4.1.jshttps://code.jqueryjs.cn/jquery-migrate-1.4.1.min.js

npm: 只需npm install jquery-migrate@1.4.1,它在https://npmjs.net.cn/package/jquery-migrate中列出。

Bower: 在你的 bower.json 文件中,在依赖项部分使用以下内容来复制 CDN 文件

 "dependencies": {
    ...
    "jquery-migrate": "https://code.jqueryjs.cn/jquery-migrate-1.4.1.js"
  },

与往常一样,我们建议你使用 jQuery Migrate 作为工具,在将网站升级到新版本的 jQuery 和相关插件时查找并修复问题。非最小化版本在控制台上提供了大量诊断信息。利用它们,我们为你构建了它们!

Migrate 和 jQuery 3.0

jQuery Migrate 将继续发挥其作用,使 jQuery 升级更加轻松。jQuery Migrate 3.0 的候选版本即将发布。

随着多年积累的更改,不可能存在一个版本的 jQuery Migrate 可以支持从 jQuery 1.6(五年前!)一直到 jQuery 3.0 的所有更改。因此,对于 Migrate 3.0,我们建议使用以下流程升级到 jQuery 3.0

  • 如果你还没有,请升级到最新版本的 1.x 或 2.x 版 jQuery,以及最新版本的 1.x 版 jQuery Migrate。(截至今天,分别是 jQuery 1.12.3 或 jQuery 2.2.3,以及 jQuery Migrate 1.4.1。)
  • 修复你可能在控制台上看到的Migrate 1.x 警告消息中标识的任何问题。
  • 删除 Migrate 1.x 插件,并确保页面在没有加载它的情况下仍然可以正常工作。
  • 升级到最新版本的 jQuery 3.x 和最新版本的 jQuery Migrate 3.x。
  • 修复你可能在控制台上看到的Migrate 3.x 警告消息中标识的任何问题。
  • 删除 Migrate 3.x 插件,并确保页面在没有加载它的情况下仍然可以正常工作。

请在探索 jQuery 的最新版本时使用 jQuery Migrate 3.0,它将大大简化查找问题。我们希望这个插件成为一个工具,使你的开发生活更轻松。如果你发现问题,可以在问题跟踪器中报告。

非常感谢 jQuery 核心团队的帮助,以及 Github 用户 ekonoval 提供的非常有用的错误报告!

十年 jQuery 及其未来

发布于 作者

2006 年 1 月 14 日,John Resig 参加了名为BarCamp NYC的活动,并谈论了他正在开发的一些项目。其中一个项目是一个名为 jQuery 的 JavaScript 库。它标志着后来成为有史以来使用最广泛的 JavaScript 库的诞生的开始。

现在很难想象,但在 John 发布 jQuery 的那天,已经存在大约十几个 JavaScript 库,试图解决基本上相同的问题。无法保证还需要另一个库,或者 jQuery 能否取得任何进展。然而,在过去十年中,jQuery 缓慢而稳步地被广泛采用。如今,很难找到一个不知道它的 Web 开发人员,或者一个没有使用它的网页。

仅仅是代码并不能使 jQuery 独一无二,并推动其流行。这需要一个强大的用户和贡献者社区,他们共同努力帮助新手掌握这个库。John 认真倾听社区的意见,并将这些互动中的反馈整合进来,从而使代码和文档都得到了改进。jQuery 是由使用它并欣赏它在多个浏览器中简化开发方式的人们塑造的。更令人惊叹的是,这一切都发生在 Github 和 StackOverflow 出现之前的时代!

基于 jQuery 开发过程中产生的经验和社区见解,jQuery 基金会于 2012 年成立。它不仅包括 jQuery 项目,还包括针对开发周期其他部分的工具,例如用于测试的QUnit和用于国际化的Globalize。去年,我们与 Dojo 基金会合作,扩大了我们支持的项目范围,包括DojoGruntLodash等等。

基金会继续遵循使 jQuery 取得成功的原则,并倡导包容性、团队的多样性以及赋予贡献者在开源社区中领导的能力。随着我们进入 2016 年,我们支持的项目数量不断增加,围绕这些项目的生态系统也随之发展。当项目之间相互协作并共享核心原则时,生态系统就会蓬勃发展。通过促进这种协作,我们希望鼓励开源 JavaScript 中出现新的想法和不同的观点。

在互联网时代,十年是永恒;在这段时间里,Web 开发以及 Web 本身都发生了巨大的变化。然而,开源项目成功的基本公式始终如一:从一个好主意开始,根据用户的需求进行调整(即使这些需求发生变化),并让社区参与到项目的各个方面。让我们衡量我们的成功,不是通过我们编写的代码,而是通过用户使用我们的代码创建的内容以及它如何激励他们进一步推动 Web 发展。

敬请期待 JavaScript 中下一个十年的精彩开源创新!

jQuery Migrate 1.3.0 发布

发布于 作者

随着 jQuery 1.12.0 和 2.2.0 的发布,现在是更新 jQuery Migrate 插件的好时机。此插件提供诊断信息,可以简化升级到新版本的 jQuery,因为它可以找出对已弃用的 API 的任何使用或 jQuery 中可能影响您代码的其他更改。

jQuery Migrate 1.3.0 版本添加了一些关于已弃用功能的警告,将帮助您为即将发布的 jQuery 3.0 做准备。(下一个版本的 jQuery Migrate 将完全支持 jQuery 3.0,并将拥有更多新功能,但我们会在以后公布这些消息。)在 问题跟踪器 中可以找到 jQuery Migrate 1.3.0 中所做更改的完整列表。如果您发现任何错误,也可以在那里报告。请务必提供一个可以重现问题的测试用例。我们喜欢使用 jsbin.comjsfiddle.net

特别是,jQuery 1.12.0、jQuery UI 1.11.4 和旧的 jQuery Migrate 1.2.1 组合存在一个问题,可能会导致使用 .outerWidth 等方法出现错误。如果您在升级到最新版本的 jQuery 后遇到此错误,请升级到此版本的 jQuery Migrate,问题应该会解决。此版本还推出了 jQuery.migrateVersion 属性,顾名思义,这次是字符串 "1.3.0"

你可以在所有熟悉的地方获取这个新版本

jQuery CDN: https://code.jqueryjs.cn/jquery-migrate-1.3.0.jshttps://code.jqueryjs.cn/jquery-migrate-1.3.0.min.js

npm: 只需 npm install jquery-migrate@1.3.0,它列在 https://npmjs.net.cn/package/jquery-migrate 上。

Bower: 在您的 bower.json 文件中,您可以在 dependencies 部分使用以下内容来复制 CDN 文件

 "dependencies": {
    ...
    "jquery-migrate": "https://code.jqueryjs.cn/jquery-migrate-1.3.0.js"
  },

与往常一样,我们建议您使用 jQuery Migrate 作为工具来查找和修复在将网站升级到新版本的 jQuery 和相关插件时出现的问题。非压缩版本在控制台中提供 详尽的诊断信息。请充分利用它们,我们专门为您打造它们!

感谢所有报告错误并提供代码或其他帮助的人,包括 c24wg7015412-trbvm-comgibson042KingRialmarkelogmgolMottiethbaymettimmywilocean90wbinnssmithwisec

投资自己

发布于 作者

您已经知道,jQuery Foundation 项目以某种方式为地球上几乎所有 JavaScript 工作提供支持。jQuery 是网站最流行的库。Grunt 构建了数千个项目的资产。Lodash 在客户端和服务器端广泛使用,使其成为 npm 上最依赖的软件包。这些和其他所有 Foundation 项目都需要您的帮助。

也许您犹豫是否要为开源项目做出贡献,因为您认为“我还不够聪明、经验不足或技能不足”。错了!如果您足够好,可以利用开源,那么您也足够好,可以做出贡献。此外,还有许多项目正在寻找各种技能。您有可以提供的东西。作为新的贡献者,仅新的视角对于那些花时间从“内部”看待问题的人来说可能非常宝贵。

关于开源的最大误解之一是您必须是 guru 级别的程序员,并且要了解项目中每一行代码是如何工作的。但这并非事实。许多需要完成的与代码相关的事情涉及“构建代码的代码”,例如单元测试、构建系统和发布脚本。如果您在日常工作中使用这些工具,即使您不是内部工作机制的专家,也可以将这些经验带到项目中以帮助完成这些任务。

然后是一些程序员会推迟(或者干脆无法完成)但会极大地提高开发人员可用性的非编程任务。这些任务包括错误分类、文档编写、网站设计和图形设计。我已经为开源项目贡献了十年。前五年主要用于分类错误、编写测试用例和改进文档。完成这些经常被忽视的任务提高了我对项目用户需求的理解。

几个 Foundation 项目已经使用“需要帮助”标签标记了问题,以便新的贡献者更容易找到团队认为不需要太多内部知识的任务。一些项目还标记了他们认为适合“首次贡献”的任务,适合刚接触开源流程的人员。您将在下面找到指向它们问题的直接链接。请查看并选择一个任务,这些项目会感谢您的!

QUnit
jQuery Mobile
Tessel CLI
Sizzle
Dojo 1.11
Dojo 2 核心
Intern
lodash 网站
lodash-cli
jQuery 核心
jQuery 核心文档

如果您没有在 jQuery Foundation 项目中找到匹配项,不要阻止您开源世界中做出贡献。像 24pullrequests.com 这样的网站可以帮助搜索。

jQuery Foundation 也将感谢您为我们做出的任何 贡献,这样我们就可以继续帮助开源项目发展壮大。

就像您可以赠送的许多礼物一样,对开源的贡献可以像对接收者一样造福给予者。开源软件是关于共同创造,每个人都做出一点贡献,最终获得巨大的好处。在帮助项目的过程中,您将提高您的开发技能,结识与您兴趣相投的人,甚至可能磨练您的才能,为新工作做好准备。找到最适合您的项目可能需要一些时间,但对每个人的益处将远远超过沧海一粟。

Grunt,重启

发布于 作者


Grunt 是 Web 开发人员工具包中最知名、最流行的任务运行器之一。现在这个项目已经加入了 jQuery Foundation,我们希望让这个项目再次启动。Grunt 的创建者 Ben Alman 正在寻找能够接管项目的人员。该团队需要一些帮助来处理一堆问题和拉取请求,然后发布一个新版本。

这是一个很好的机会,让您参与到开源中来。如果您在项目中使用过 Grunt,这也有机会回馈并帮助 Web 开发社区。

有兴趣?在此 Grunt 问题中发帖。

jQuery Foundation 2014 年年度报告

发布于 作者

jQuery Foundation 致力于支持 Web 开发人员创建建立在开放标准之上的 Web 内容,这些内容对所有用户都可访问。我们通过开发和支持开源软件以及与开发社区合作来实现这一目标。Foundation 拥有对这一愿景至关重要的开源项目。

我们取得的成就

我们一直以我们的同名项目及其出色的文档而闻名。在过去的一年中,jQuery Foundation 继续努力确保 Web 开发人员拥有完成工作所需的工具和信息,而不仅仅是 jQuery、jQuery UI 和 jQuery Mobile。

特别是过去几个月非常高效。10 月,我们采用了 jQuery Mousewheel 插件。12 月,Google 将 Pointer Events Polyfill (PEP) 的所有权转让给了 jQuery Foundation。最后,在 1 月,我们宣布采用 Esprima 项目,这是一个用于数十个开发人员工具的 JavaScript 解析器。我们正在努力促进所有这些项目的持续发展,并欢迎来自社区的贡献。

在 2014 年,我们开始着手进行 Chassis 项目,以创建 CSS 库的开放标准。我们已经与来自 Topcoat、Zurb Foundation、Filament Group、Cardinal、Famo.us、Yandex、WordPress、Automattic、10up、960grid、Unsemantic、jQuery Mobile、jQuery UI、Intel App Framework、Cascade CSS、Portland Webworks、Adobe、Hulu 和 Bootstrap 的开发人员进行了讨论。我们正在寻找额外的贡献者和来自社区的输入,关于您想要在 CSS 框架中使用什么。

我们的一年数据

如今,jQuery Foundation 在 GitHub 上托管着 45 个开源代码库。其中包括代码和文档。

如果您需要证据证明 jQuery Foundation 项目在各个地方都得到使用,请查看由 MaxCDN 提供支持的内容交付网络 (CDN)。2014 年的 **2900 亿** 次请求传输了近 **11 PB** 的数据。当然,这并不包括对本地托管的 jQuery 副本以及其他 CDN(如 Google、Microsoft 或 CDNJS)的请求。毫无疑问,总请求次数已达万亿。

即使是最棒的代码项目,如果没有良好的文档,也可能无法使用。Web 开发人员不仅告诉我们我们的文档很好,而且告诉我们它很出色。2014 年,jQuery Foundation 文档有 **1.49 亿次页面浏览量**,来自 **230 个国家/地区**。我们所有的文档网站都在 GitHub 上提供,以便开发人员可以打开问题并进行拉取请求以改进它们。开源不仅仅是针对代码,它同样适用于文档!

在过去的一年中,jQuery Foundation 还举办、授权并参与了全球 **10 场活动**,包括在圣地亚哥、芝加哥、奥地利维也纳、加拿大多伦多和英国牛津举行的 jQuery 大会。这些活动总是涵盖各种主题,而不仅仅是 jQuery Foundation 托管的项目。所有会议的共同点是,它们涵盖了 Web 开发人员为了出色地完成工作应该学习的主题。

未来计划

今年,我们将继续根据网络开发者的需求推动标准发展。我们参与 EcmaScript TC39 和 W3C 等组织,使网络开发者能够参与到这个过程中,而这个过程在最近之前主要由大型营利性公司和浏览器制造商控制。我们还计划增加对 Unicode 联盟的参与,同时加大对 Globalize 的投资,以便开发者可以轻松地使他们的软件在全球范围内使用。

我们最近采用 Esprima,突出了另一个网络开发者需要更多帮助的领域:开发工具。用于处理 JavaScript、CSS 和 HTML 的工具环境非常分散。存在多种用于创作、创建、模块化和使用 JavaScript 的流程,但没有一种流程能够成为标准。有十多种包管理器,每个管理器都有其独特的优势和缺点。我们希望与开发者合作,确定一套更小的选项,减少 JavaScript 库的生产者和消费者所承受的负担。

2014 年财务信息

由于成员和赞助商的慷慨捐助,我们能够资助各种活动,回馈开源事业。我们的大部分投资用于促进 jQuery 基金会项目的开发,并通过活动和教育机会促进这些项目的应用。

2014 Revenue Chart2014 Expenses Chart

鸣谢

我们为 jQuery 基金会的成就感到自豪,所有这些成就都是由我们团队成员持续努力的结果。也要感谢那些抽出时间报告问题、修正文档或贡献代码补丁的网络开发者。通过改进 jQuery 基金会项目,你们为所有人改善了网络开发。

我们也感谢我们的 jQuery 基金会成员 及其支持。在过去的一年里,IBM 和 Famo.us 等公司加入并提供了资源,使我们能够完成我们的使命。让我们在 2015 年一起做出更多贡献!

发布 Esprima 2.0

发布日期 作者

上周,jQuery 基金会 宣布我们采用 Esprima 项目,这是一个广泛使用的 JavaScript 解析器,为许多代码分析工具提供支持。今天,我们很高兴地宣布发布 2.0 版,现在可以在 npm 上获取

到目前为止,Esprima 的官方版本只解析了 ECMAScript 5 标准语法。但是,实验性的“harmony”分支一直在添加 ECMAScript 2015(也常称为 ES6)功能,已经有一段时间了。Facebook 推动了那里的大量工作。现在,许多 ES6 功能的语法已经稳定,甚至在一些浏览器中发布了,因此需要支持新语法的工具。

Esprima 2.0 引入了 许多来自 harmony 分支的稳定 ES6 功能,这些功能在那里非常可靠。Esprima 的这个新基线使得代码覆盖率分析、样式检查器和代码 linter 等工具可以开始处理新的 ES6 语法。

由于 ES5 可能会在很长一段时间内与我们共存,因此 Esprima 1.x 将继续维护,以便提供仅 ES5 的解析。目前使用 Esprima 1.x 的工具可以继续使用,直到它们准备好并能够处理 ES6 结构。

Esprima 的 2.1 版本应该会很快发布,这取决于对 2.0 版本稳定性的反馈。这意味着 Esprima 团队需要来自基于 Esprima 的工具制造商的反馈,以了解是否出现任何问题。如果您已经构建了基于 Esprima 的工具,并且发现此版本存在问题,请 报告。(请注意,该项目现在使用 GitHub 来处理问题,而不是 Google 代码。)

我们很高兴看到 Esprima 的未来发展方向!

jQuery 基金会采用 Esprima

发布日期 作者

jQuery 基金会很高兴地宣布,我们现在托管了 Esprima 项目!这个 JavaScript 解析器生成的抽象语法树被 许多重要的开发者工具 使用,例如 ESLint、Istanbul、JSDoc 和 JSCS。

Ariya Hidayat 决定将 Esprima 项目及其代码库的所有权转让给 jQuery 基金会。我们很高兴 Ariya 采取了这一步骤,因为 Esprima 是许多项目的重要组成部分,并且每个月从 npm 下载超过 250 万次。非常感谢 Ariya 将这个项目托付给我们。

在最近采用 Pointer Events polyfill 之后,采用 Esprima 项目是朝着实现我们改善开放网络并使其对所有人可访问的使命迈出的重要一步。jQuery 基金会希望确保其他重要的工具和新兴标准也有机会发展和塑造开放网络。

jQuery 基金会致力于为 Esprima 提供支持并将其开放以供贡献。如果您已经为该项目贡献过,我们希望您继续这项工作,并且始终欢迎新的贡献者。敬请关注,我们很快将发布更多公告。

发布 jQuery 1.11.2 和 2.1.3 - Safari 安全版

发布日期 作者

节日快乐!经过对“好孩子”和“坏孩子”名单的深思熟虑,我们决定在圣诞树下留下一个小礼物来结束 2014 年:jQuery 1.11.2 和 2.1.3!这些版本包含了一些错误修复,可以改善您的跨浏览器开发体验。

此版本中最重要的修复是针对 Safari 8.0 和 7.1 中 一个严重的 querySelector 错误 的解决方法。当这个错误出现时,我们希望它会在补丁版本中得到修复,但事实并非如此。苹果是迄今为止最不透明的浏览器制造商,我们对何时将 针对该错误的 Webkit 补丁 合并到 Safari 中知之甚少。因此,我们决定在 Sizzle(jQuery 使用的选择器引擎)中进行修复。

这样的错误突出了使用像 jQuery 这样的库而不是直接使用 DOM API 的好处。即使是现代浏览器也可能出现长期无法修复的错误,并且仍然存在几个广泛使用的浏览器(例如 Android 2.3)之间的跨浏览器功能差异。为晦涩的浏览器问题编写特殊代码似乎没有必要,除非您花了一天时间试图调试自己的代码中因其中一个问题而导致的问题。或者更糟的是,因为客户无法从他们的旧手机上使用您的网站而失去了一位付费客户。

另一个让我们难以在 iOS 8 上测试 jQuery 的错误是,模拟器的用户代理不正确,因此 iOS 8 模拟器无法被我们的单元测试基础设施识别。 针对该问题的修复 非常简单,但苹果不会告诉我们是否可以依赖它。目前,我们正在手动进行 iOS 8 测试。

此外,此版本还对 jQuery 内部进行了一些更改,以避免不必要地保留 DOM 元素。虽然旧代码通常不会导致运行错误,但网页可能会运行缓慢并使用比必要更多的内存。

您可能会注意到我们在 2.x 分支中跳过了补丁版本号。我们并没有真正 *跳过* 它,而是构建了它,并发现了一个问题,该问题会导致 jQuery 与 node 一起使用时出现问题。(非常感谢 Denis Sokolov 及时告知我们并促使我们进行修复!)与其将这些文件发送到其他 CDN,我们决定创建新的版本。

至于兼容性或回归问题,我们认为对于当前使用 1.11.1 或 2.1.1 的任何人来说,这是一个非常低风险的升级。我们在 jQuery 3.0 之前发布此版本,以确保您可以在不需审查代码以确保其与 jQuery 3.0 中预期更改的兼容性的情况下使用 Safari 安全版的 jQuery。如果您在从以前版本升级时遇到错误,请 告知我们

如果您愿意,可以直接从 jQuery CDN 包含这些文件,或者将它们复制到您自己的本地服务器。1.x 分支支持 IE 6/7/8,而 2.x 分支不支持。

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

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

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

非常感谢所有通过测试、报告错误或提交补丁参与此版本发布的人,包括 Chris Antaki、Denis Sokolov、Jason Bedard、Julian Aubourg、Liang Peng、Michał Gołębiowski、Oleg Gaidarenko、PashaG、Richard Gibson、Rodrigo Rosenfeld Rosas、Timmy Willison 和 TJ VanToll。

自从 jQuery 上次发布以来,我们已经从 Trac 安装迁移到了 GitHub 问题,因此目前这两个错误跟踪器中都有此版本的票证。对 Trac 票证的引用已迁移到 GitHub 问题,因此您可以使用 此 GitHub 问题查询 来查看所有票证。

感谢您一直以来的支持,并在 jQuery 3.0 相见!