谷歌CDN上的最新jQuery版本

Mar*_*iry 99 jquery google-cdn

我在谷歌CDN 的官方文档中读到这是srcjQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,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 */
Run Code Online (Sandbox Code Playgroud)

这是正确的做法吗?是否有任何官方URL可以引用Google CDN上托管的最新版jQuery?

Bla*_*ger 180

更新2014年7月3日:截至目前,jquery-latest.js已不再更新.来自jQuery博客:

我们知道http://code.jquery.com/jquery-latest.js被滥用,因为CDN统计数据显示它是最受欢迎的文件.如果它仅被开发人员用于制作本地副本,则情况并非如此.

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

该谷歌CDN团队已经加入了我们在这方面的努力,以防止意外的卷筒纸断裂,并且不再更新的文件 http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js.该文件也将保持锁定在版本1.11.1.

由于历史原因,以下是现在没有实际意义的答案.


不要这样做.说真的,不要.

链接到jQuery的主要版本确实有效,但这是一个坏主意 - 每个小数更新都会添加和弃用全新功能.如果您在不完全测试代码的情况下自动更新jQuery ,那么如果某个关键方法的API发生了变化,您将面临意外的惊喜.

这是你应该做的:使用最新版本的jQuery编写代码.测试它,调试它,在它准备好生产时发布它.

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

如果答案是"否",请不要费心将代码更新为最新的jQuery版本.这样做甚至可能会为您的代码添加以前不存在的新错误.没有负责任的开发人员会自动包含来自其他网站的新代码,而无需对其进

没有充分的理由始终使用最新版本的jQuery.旧版本仍可在CDN上使用,如果它们适用于您的目的,那么为什么还要更换它们呢?


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

问题是,只有在提供完整版本号时,缓存才有效.如果您提供部分版本号,则不会发生远期缓存 - 因为如果这样做,某些用户将从同一URL获得不同的次要版本的jQuery.(比如1.7到1.7.1的链接到第二天的1.7.2和第二天的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 1.x,即使jQuery 2.x也已发布.这是因为jQuery 1.x与包括IE 6/7/8在内的旧浏览器兼容,而jQuery 2.x则不兼容.如果你想要最新版本的jQuery 2.x,那么(现在)你需要明确指定它.

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

  • @scrappedcola - jQuery 1.9也引入了很多重大变化.由于jQuery中的向后兼容性问题,我多年来遇到了很多错误.我绝对同意Blazemonger的建议.在任何情况下,您都不应该只指向"最新的jQuery"URL.您将完全接受jQuery团队的怜悯,而新的jQuery版本可能会轻易破坏您的网站.不仅*可能*它会发生,但它可能*会在某个时刻发生. (4认同)
  • 这种情况的一个很好的例子是在任何jquery <1.4然后升级到1.4之后开发.访问属性以及ajax请求如何处理回调中的JSON数据有所变化. (2认同)

jru*_*ell 8

我不知道它是否/何处发布,但您可以通过省略次要和构建数字来获得最新版本.

最新1.8.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

最新1.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,请记住,这些链接的缓存超时时间比完整版本号短得多,因此您的用户可能会下载超过您想要的内容.有关详细信息,请参阅Google CDN对jQuery 1.x.0的重要.0.


Abd*_*nim 8

如果您希望使用除Google托管的jQuery库之外的jQuery CDN,您可以考虑使用它并确保使用最新版本的jQuery:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

  • v2.x与v1.x不兼容.任何指向此网址的网站实际上都会将网站更新为v2 (3认同)