Google CDN上的最新jQuery版本


103

我在Google CDN 的官方文档中看到这是srcjQuery的:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

但是,src每次更新版本时都必须更改我的jQuery 参考是很烦人的。

我发现如果将版本设置为,1则Google会返回jQuery的最新版本。

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
/*! jQuery v1.8.2 jquery.com | jquery.org/license */

这是正确的做法吗?是否有官方网址引用Google CDN上托管的jQuery的最新版本?


检查此帖子是否旧。因此,另一个是副本
Martin Borthiry 2014年

1
这是stackoverflow.com/questions/441412/…的副本(于2009年1月14日提出)
Nick Pierpoint 2015年

1
@MartinBorthiry 不一定要紧
Blazemonger 2015年

Answers:


182

UPDATE 7/3/2014:截至目前,jquery-latest.js不再更新。来自jQuery博客

我们知道,由于CDN统计数据表明http://code.jquery.com/jquery-latest.js是最受欢迎的文件,因此该滥用了。如果仅开发人员将其用于制作本地副本,则情况并非如此。

我们已决定停止更新此文件以及缩小的副本,并将两个文件永久保持在1.11.1版。

Google CDN团队已加入我们的行列,以防止意外的网络中断,并且不再在http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js上更新文件 。该文件也将锁定在1.11.1版。

出于历史原因,下面保留了目前尚无定论的答案。


不要这样 说真的,不要。

链接到jQuery的主要版本确实可行,但这不是一个好主意-每次十进制更新都会添加和弃用整个新功能。如果您在没有测试您的代码COMPLETELY的情况下自动更新jQuery ,那么如果某些关键方法的API发生了变化,您可能会感到意外的意外。

这是您应该执行的操作:使用最新版本的jQuery编写代码。测试,调试,准备生产时将其发布。

然后,当新版本的jQuery推出时,问问自己:我的代码中需要这个新版本吗?例如,是否存在一些以前不存在的关键浏览器兼容性,还是会加快大多数浏览器的代码速度?

如果答案为“否”,请不要费心将代码更新为最新的jQuery版本。这样做甚至可能向您的代码中添加以前不存在的NEW错误。任何负责任的开发人员都不会在未经彻底测试的情况下自动包含来自另一个站点的新代码。

根本没有充分的理由总是使用最新版本的jQuery。CDN仍然可以使用旧版本,如果它们可以满足您的需求,那么为什么还要替换它们呢?


次要的,但可能更重要的问题是缓存。许多人链接到CDN上的jQuery,因为其他许多站点也这样做,并且您的用户很有可能已经缓存了该版本。

问题是,只有提供完整的版本号缓存才有效。如果提供部分版本号,则不会进行远距离缓存-因为如果这样做,则某些用户将从同一URL获得不同的次要版本的jQuery。(假设指向1.7的链接一天指向1.7.1,第二天指向1.7.2。浏览器将如何确保它今天获得了最新版本?答案:没有缓存。)

实际上,这里是几个选项及其到期设置的细分 ...

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 2.x也已经发布,它也链接到最新版本的jQuery1.x。这是因为jQuery 1.x与包括IE 6/7/8在内的旧版浏览器兼容,而jQuery 2.x不兼容。如果您想要最新版本的jQuery 2.x,那么(现在)您需要明确指定它。

这两个版本具有相同的API,因此对于兼容的浏览器没有感知上的差异。但是,jQuery 1.x的下载量大于2.x。


感谢您的观点,但就我而言,最好使用最新版本。但是,我部分同意您的观点,但是某些新版本也可以修复旧错误。另外,最新版本更有可能进入缓存,这是CDN的优势之一。
Martin Borthiry 2012年

2
一个很好的例子是在任何<1.4的jquery中开发,然后升级到1.4以上。访问属性以及ajax请求在回调中处理JSON数据的方式有所变化。
scrappedcola 2012年

我只是想澄清一个问题。我要求使用jquery的琐碎部分的单个页面。
Martin Borthiry 2012年

4
@scrappedcola-jQuery 1.9还引入了许多重大更改。多年来,由于jQuery中的向后兼容性问题,我遇到了很多错误。我完全同意Blazemonger的建议。在任何情况下,您都不应简单地指向“最新jQuery” URL。您将完全受jQuery团队的支配,而新的jQuery版本可能会轻易破坏您的网站。它不仅发生,而且可能会在某个时刻发生。
Steve Wortham 2013年

很高兴得知缓存基于版本详细信息级别!
塔达斯诉

8

我不知道它是否发布/在哪里发布,但是您可以通过省略次要版本号和内部版本号来获取最新版本。

最新的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>

但是,请记住,与完整版本号相比,这些链接的缓存超时要短得多,因此您的用户下载的链接可能比您想要的更多。有关更多信息,请参阅Google CDN对jQuery 1.x.0的关键.0


1
您也可以从code.jquery.com/jquery.min.js获取最新版本,通常会在其他CDN之前几天更新
Kevin B

虽然您可以通过这种方式提取最新的1.8.x,但是在使用类似链接后,您也无法提取最新的1.9或任何次要版本号。此外,最新的实际上是1.11.3时,“最新的1.x”链接当前指向1.11.1。
Blazemonger,2015年

@Blazemonger是的。在我回答之后,情况发生了变化。您的更新中有很好的解释!
jrummell



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.