不要使用 jquery-latest.js

发表时间 作者

本周早些时候,jQuery CDN 出现了一个问题,导致 jquery-latest.js 和 jquery-latest.min.js 文件在某些地区无法使用几个小时。(这不是 CDN 本身的问题,而是提供 CDN 文件的存储库的问题。)虽然我们始终希望能够实现 100% 的正常运行时间,但这次特别的中断强调了使用此文件的反模式的生产网站数量。所以让我们明确一点:**不要在生产网站上使用 jquery-latest.js。**

我们知道 jquery-latest.js 被滥用,因为 CDN 统计数据 显示它是最受欢迎的文件。如果它只被开发人员用来制作本地副本,情况就不会是这样。jquery-latest.js 和 jquery-latest.min.js 文件旨在提供一种简单的方法来下载最新发布的 jQuery 核心版本。相反,一些开发人员直接在他们的生产网站中包含了这个版本,这使得用户面临每次发布新版本 jQuery 时网站都可能崩溃的风险。当然,团队会尽力将这些风险降到最低,但 jQuery 生态系统非常庞大,我们不可能在发布新版本之前检查所有内容。

为了减轻“破坏 Web”的风险,jQuery 团队在 2013 年决定 jquery-latest.js 不能升级到 2.0 分支,即使它在技术上是最新版本。因为使用旧版本的 Internet Explorer 的网站太多,这些网站会莫名其妙地停止工作,而且许多网站可能现在已经不再维护了。

随着 jQuery 采用的不断增长,即使这种保障措施似乎也不足以防止对 https://code.jqueryjs.cn/jquery-latest.js 的粗心使用。因此,我们决定停止更新此文件以及其压缩版本,这两个文件将永远保持 1.11.1 版本。最新发布的版本始终可以通过 jQuery 核心下载页面CDN 主页 获得。开发人员可以从这些页面中的一个下载最新版本,或直接通过版本号在脚本标签中从 jQuery CDN 引用它。

Google CDN 团队加入了我们的努力,以防止无意中破坏 Web,不再更新 https://ajax.googleapis.ac.cn/ajax/libs/jquery/1/jquery.js 中的文件。该文件也将保持在 1.11.1 版本。但是,请注意,此文件目前具有非常短的缓存时间,这意味着当你请求 1.11.1 这样的完整版本时,你将失去 CDN 提供的长期缓存时间的性能优势。

所以请宣传一下!如果你看到一个网站直接在他们的脚本标签中使用 jQuery CDN 的 jquery-latest.js 或 Google CDN 等效文件,请让他们知道他们应该更改为特定版本。如果你需要最新版本,请从下载页面或我们的 CDN 页面获取。对于 jQuery 和 Google CDN,在 <script> 标签中引用文件时,始终提供完整的版本号。谢谢!

关于“不要使用 jquery-latest.js”的 13 个想法

  1. 在阅读了这些内容之后

    “我们知道 jquery-latest.js 被滥用”

    “jquery-latest.js 和 jquery-latest.min.js 文件旨在提供一种简单的方法来下载最新发布的 jQuery 核心版本”

    我想知道为什么你不只是放一个带有最新版本的下载按钮,而不是在 CDN 中保留这个版本。

    把它放在那里就像为开发人员准备的五颜六色的糖果/巧克力棒。

    如果信息是“不要从 CDN 使用最新版本”,并且它仅用于开发目的,那么在这样的版本中只放一个 console.warn(“从 CDN 获取最新版本的支持即将移除”)持续 3 个月,然后在 3 个月后删除它。

  2. Dave Methvin 说:

    博客已经解决了这个问题。许多使用这种不良做法的网站基本上没有维护。无论多么长的时间提醒,都无法阻止它们崩溃,用户将遭受损失。聪明的开发人员(阅读这篇博客的人)会收到信息,不会使用 jquery-latest 文件。

  3. PhistucK 说:

    我也赞成发出控制台警告。不是弃用警告,而是一个简单的警告,提醒那些不知道这件事的人。

    try{console.warn(“此页面使用的 jQuery 版本不适合在生产环境中使用。此外,它不再更新,所以它不再有任何用途。有关更多详细信息,请参见 https://blog.jqueryjs.cn/2014/07/03/dont-use-jquery-latest-js/”);}catch(e){}

    这对那些无意中使用此文件但不知道它的用途的网站来说已经足够了,他们应该不会担心任何崩溃。

    坦率地说,我想不出现在不添加这样的警告的理由。

  4. Dave Methvin 说:

    警告是可以的,我们已经讨论过,在发布此公告后会这样做。但是,我认为在未来十年内我们不可能删除这些文件。

  5. Lennart Sauter 说:

    我认为,联系使用 latest.js 的教程作者比联系那些或多或少没有维护的网站更重要。

  6. James Watt 说:

    他们可能曾经希望人们链接它(可能收集分析信息),但长期不利因素已经超过了数据收集的益处。

  7. 在文件顶部添加一个警告注释会很有帮助。

    也许鼓励用户使用 Bower 也会有所帮助。

  8. Darryl Miles 说:

    只需让 CDN 在提供文件内容(jquery-latest.js)之前插入 1 秒的延迟。

    消费者很快就会停止在生产网站中使用它。

  9. chuckdries 说:

    @Andrea 就像他们说的,他们不想破坏那些不再维护的网站。如果他们这样做,他们会破坏每个没有活跃开发人员的网站。

  10. 我认为你应该直接破坏所有这些旧网站,这是一个双赢的局面:jquery-latest 实际上是最新的,而所有自由职业者开发人员都能获得每修复一个网站一小时的报酬。

  11. Lee Fastenau 说:

    为了真正地困扰开发人员而不破坏生产网站,如果文档域或位置主机包含“localhost”,则弹出 JavaScript 警报。