最新的jQuery版本在Google的CDN上。
最新的jQuery版本在Google的CDN上。
在谷歌CDN的官方文档中,我读到了这是jQuery的src
:。然而,每次版本更新都要更改jQuery的
src
引用是很烦人的。我发现,如果将版本设置为1
,谷歌会返回最新版本的jQuery:http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js /*! jQuery v1.8.2 jquery.com | jquery.org/license */
。这样做对吗?是否有官方URL可以引用托管在谷歌CDN上的最新版本的jQuery?
Google的CDN上的jQuery库被广泛使用,因为它提供了最新的jQuery版本。然而,有些网站可能想要使用其他CDN上的jQuery库。为此,他们可以使用以下代码来确保使用最新的jQuery版本:
然而,使用上述代码时,有人发现它获取的是1.9.1版本的jQuery,而不是最新的2.0版本。这是因为2.x版本与1.x版本不兼容。如果一个网站使用了上述代码并且更新到了2.x版本的jQuery,它将会导致网站出现问题。
同时,之前提到的链接(http://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/)也无法获取到最新的1.x版本的jQuery。
所以,为了解决这个问题,我们需要使用其他CDN或自己托管最新版本的jQuery库。
近期有关于Google CDN上jQuery版本的问题。问题的原因是用户想要获取最新的jQuery版本,但是不知道如何通过Google CDN获取。解决方法是通过忽略次要和构建版本号,可以获取到最新的发布版本。最新的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>
然而,需要注意的是,这些链接的缓存时间比带有完整版本号的链接更短,所以用户可能会频繁下载这些文件。点击此处了解更多相关信息。另外,用户也可以通过code.jquery.com/jquery.min.js获取最新版本,通常会在其他CDN更新之前几天进行更新。尽管可以通过这种方式获取最新的1.8.x版本,但是无法通过类似的链接获取最新的1.9版本或之后的任何次要版本号。此外,"最新的1.x"链接目前指向的是1.11.1版本,而最新版本实际上是1.11.3。
最新的jQuery版本为何不再在Google的CDN上更新,以及解决方法是什么?
根据jQuery博客的更新,他们决定停止更新jquery-latest.js
文件和压缩版本,并将两个文件都保持在1.11.1版本。这是因为CDN统计数据显示,jquery-latest.js
是最受滥用的文件,如果只有开发者用于本地复制,那就不会出现这种情况。Google 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。浏览器如何确保它获取到了最新版本呢?答案是:没有缓存)
通过以这种方式链接到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要大。
感谢您提出的观点,但在我的情况下,使用最新版本更好。然而,我在某种程度上同意您的观点,但一些新版本也修复了旧的bug。此外,最新版本更有可能被缓存,这是CDN的一个好处。
一个很好的例子是在任何小于1.4的jQuery版本中进行开发,然后升级到1.4以上。在访问属性和处理JSON数据回调的AJAX请求方面发生了变化。
只是为了澄清...我只是想要一个使用jQuery的单个页面...我理解您的好意,但我只是想知道谷歌是否提供了获取最新版本的URL。
jQuery 1.9也引入了很多重大变化。多年来,我遇到了很多因为jQuery向后兼容性问题而引起的错误。我完全同意Blazemonger的建议。在任何情况下,您都不应该简单地使用“最新的jQuery”URL。您将完全依赖于jQuery团队,而新的jQuery版本很可能会破坏您的网站。它不仅可能发生,而且很可能在某个时候会发生。
很高兴了解缓存是基于版本详细级别的!