Google 的 CDN 上的最新 jQuery 版本
Posted
技术标签:
【中文标题】Google 的 CDN 上的最新 jQuery 版本【英文标题】:Latest jQuery version on Google's CDN 【发布时间】:2012-09-18 11:07:22 【问题描述】:我在 Google CDN 的 official doc 中读到这是 jQuery 的 src
:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
但是,每次版本更新都必须更改我的 jQuery src
引用,这很烦人。
我发现如果我将版本设置为1
,那么 Google 会返回最新版本的 jQuery。
http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
/*! jQuery v1.8.2 jquery.com | jquery.org/license */
这是正确的做法吗?是否有任何官方 URL 可以引用 Google CDN 上托管的最新版本的 jQuery?
【问题讨论】:
这是***.com/questions/441412/… 的副本(2009 年 1 月 14 日询问) 【参考方案1】:使用 Google 托管的最新 jquery 版本
人类:
https://developers.google.com/speed/libraries/#jquery
获取 sn-p:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
-
将其放入您的代码中。
确保它有效。
机器人:
-
等待人工操作。
【讨论】:
【参考方案2】:2014 年 7 月 3 日更新:截至目前,jquery-latest.js
不再更新。
来自jQuery blog:
我们知道http://code.jquery.com/jquery-latest.js 被滥用 因为 CDN 统计 显示它是最受欢迎的文件。如果是这样就不是这样了 仅被开发人员用来制作本地副本。
我们决定停止 更新此文件以及缩小的副本,同时保留这两个文件 永远在 1.11.1 版本。
Google CDN 团队与我们一起努力防止 无意的网络破损,不再更新文件 http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js。那个文件 在 1.11.1 版本中也将保持锁定状态。
由于历史原因,以下现在没有实际意义的答案保留在这里。
Don't do this. Seriously, don't.
链接到主要版本的 jQuery 确实有效,但这是一个坏主意——每次十进制更新都会添加和弃用全新的功能。如果您在完全测试代码的情况下自动更新 jQuery,如果某些关键方法的 API 发生了变化,您将面临意外的意外风险。
这是您应该做的:使用最新版本的 jQuery 编写代码。测试它,调试它,当它准备好用于生产时发布它。
然后,当新版本的 jQuery 推出时,问问自己:我的代码中是否需要这个新版本?例如,是否存在一些以前不存在的关键浏览器兼容性,或者它会在大多数浏览器中加速我的代码吗?
如果答案是“否”,请不要费心将代码更新到最新的 jQuery 版本。 Doing so might even add NEW errors to your code which didn't exist before。任何负责任的开发人员都不会在未经彻底测试的情况下自动包含来自另一个站点的新代码。
没有充分的理由总是使用最新版本的 jQuery。旧版本仍然可以在 CDN 上使用,如果它们适合您的目的,那么为什么还要更换它们呢?
次要但可能更重要的问题是缓存。许多人在 CDN 上链接到 jQuery,因为许多其他网站都这样做,并且您的用户很有可能已经缓存了该版本。
问题是,caching only works if you provide a full version number。如果您提供部分版本号,那么远期的缓存就不会发生——因为如果这样做了,一些用户会从同一个 URL 获得不同的次要版本的 jQuery。 (假设1.7的链接指向前一天的1.7.1和后天的1.7.2。浏览器如何确保它今天获得最新版本?答案:不缓存。)
其实here's a breakdown的几种期权及其到期 设置...
http://code.jquery.com/jquery-latest.min.js(无缓存)
http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js(1 小时)
http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js (1 小时)
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js (1 年)
因此,通过这种方式链接到 jQuery,您实际上消除了首先使用 CDN 的主要原因之一。
http://code.jquery.com/jquery-latest.min.js 也不一定总能提供您期望的版本。在撰写本文时,它链接到最新版本的 jQuery 1.x,尽管 jQuery 2.x 也已发布。这是因为 jQuery 1.x 兼容旧版浏览器,包括 IE 6/7/8 和 jQuery 2.x is not。如果您想要最新版本的 jQuery 2.x,那么(目前)您需要明确指定。
两个版本的API相同,所以对于兼容的浏览器没有感知上的差异。但是,jQuery 1.x 的下载量比 2.x 大。
【讨论】:
感谢您的观点,但就我而言,最好使用最新版本。但是,我部分同意您的意见,但一些新版本也修复了旧错误。此外,最新版本更有可能被缓存,这是 cdn 的好处之一。 发生这种情况的一个很好的例子是在任何 jquery 只是为了澄清..我要求一个使用jquery琐碎部分的页面...我理解你的意思,但我只是想知道谷歌是否提供了一个获取最新信息的网址版本。 @scrappedcola - jQuery 1.9 也引入了许多重大更改。由于 jQuery 中的向后兼容性问题,这些年来我遇到了很多错误。我完全同意 Blazemonger 的建议。在任何情况下,您都不应简单地指向“最新的 jQuery”URL。您将完全受 jQuery 团队的支配,而新的 jQuery 版本很容易破坏您的网站。不仅可能会发生,而且会可能在某个时候发生。 很高兴了解到缓存是基于版本详细信息级别的!【参考方案3】:如果您希望使用 Google 托管的 jQuery 库以外的 jQuery CDN,您可以考虑使用它,并且确保使用最新版本的 jQuery:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
【讨论】:
这拉高了 1.9.1 而不是 2.0 v2.x 与 v1.x 不兼容。任何指向这个 url 的网站如果更新到 v2 就会搞砸这些网站 That link no longer pulls up the latest version of 1.x, either【参考方案4】:我不知道它是否/在哪里发布,但您可以通过省略次要版本号和内部版本号来获取最新版本。
最新 1.8.x:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
最新的 1.x:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
但是,请记住,这些链接的缓存超时时间比完整版本号短得多,因此您的用户下载它们的次数可能超出您的预期。请参阅The crucial .0 in Google CDN references to jQuery 1.x.0 了解更多信息。
【讨论】:
您也可以从code.jquery.com/jquery.min.js 获取最新版本,它通常会比其他 cdns 提前几天更新 虽然您可以通过这种方式获取最新的 1.8.x,但您无法通过类似链接获取最新的 1.9 或任何次要版本号。此外,“最新的 1.x”链接当前指向 1.11.1,而最新的实际上是 1.11.3。 @Blazemonger 没错。在我回答这个问题后,情况发生了变化。您的更新中有很好的解释!以上是关于Google 的 CDN 上的最新 jQuery 版本的主要内容,如果未能解决你的问题,请参考以下文章
从Google的CDN服务器加载jQuery和jQueryUI的最新版本
JavaScript 从Google的CDN服务器加载最新版本的jQuery和jQueryUI