什么是最佳的加载jQuery的方式?

16

我有一个使用 jQuery 的应用程序,可以使用几乎任何最近版本的 jQuery,例如 1.7 或 1.8。

请问有没有人能给我建议,在编写代码时如何最大化应用程序在用户缓存中找到符合我的需求的 jQuery 最新版本的机会。例如,我应该尝试从 Google CDN 查找哪个版本的 jQuery?

可能重复:
你是从哪里引入 jQuery 库的?Google JSAPI?CDN?


不应标记为重复。 "重复" 已经很拥挤并包含过时的信息。这是更加现代化的。 - jnel899
4个回答

23

在公共网站中使用内容交付网络(CDN)非常普遍。要引用其中一个,您可以像引用任何其他本地文件一样使用脚本标签:

jQuery示例

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

谷歌示例

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

微软的例子

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.min.js" type="text/javascript"></script>

我应该总是引用最新版本吗?

这样做存在风险,例如当使用jQuery CDN时始终指向最新版本。在最近的几个版本中,一些方法已被弃用,例如: toggle() - 用于鼠标事件,live()die() 等等。

据我所知,从jQuery论坛得到的消息是,这些弃用的方法将永久删除在版本1.9中。

此外,jQuery计划同时发布1.9和2.0版本,但2.0不是1.9版本的延续,而是会同时开发的一个不同版本。

2.0将不支持IE6、IE7或IE8。而 jQuery 1.9 将保持与所有先前浏览器版本的兼容性。

在这里阅读相关信息。

出于这些原因,我不建议自动始终指向最新版本,而是明确引用您支持的特定版本。

如果CDN无法访问怎么办?

虽然这种情况很少发生,但 CDN可能会无法访问。为了防止这种情况,您可以实现备用方案。

// Check if jQuery was initialized and if not (CDN was down for example), then
// load jQuery from a local source.
if(typeof jQuery === 'undefined'){
    document.write(unescape("%3Cscript src='yourlocalpath/jquery.1.x.min.js' type='text/javascript'%3E%3C/script%3E"));
}

CDN的可用性和性能评估

关于可用的CDN质量和性能,我发现了这篇非常有趣的文章在royal.pingdom.com上。

Pingdom的报告显示,最常用的免费jQuery主机Google、Microsoft和Media Temple都是可靠的,但性能不稳定。

为了评估网络,Pingdom在欧洲和北美的多个位置进行了测试,每分钟一次,持续30天。

结果发现,三者都提供了很好的可用性,但性能并非如此。

对于不使用HTTPS或安全服务器的站点,Media Temple远远快于Google在欧洲,但在北美落后。对于HTTPS站点,在欧洲,Google是最快的,而在北美,Google和Microsoft表现类似。

Microsoft在欧洲表现最差,但在北美整体上与Google相当。


谷歌版本缺少 type="text/javascript" 是打字错误还是故意的? - SCBuergel

7
选择最适合您需求的最新版本的jQuery。目前来说,这应该是1.8版本。然后在一个免费且广泛使用的CDN(可能是Google或Microsoft)上链接到它。
您应该链接到特定版本的jQuery。尽管有一个链接可以获取最新版本的jQuery,但您不应该链接到它,因为当它发生变化时,您的网站可能会在不知情的情况下出现故障。您应该只链接到特定版本的jQuery。以下是链接到Google CDN上的1.8.1版本的代码。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

如果你真的想优化浏览器缓存命中率,你应该选择并测试一个当前广泛部署的jQuery版本(我相信有网络统计数据显示每个版本的使用情况),然后定期更新以跟踪最常使用的版本。我认为这是微观优化,只要选择任何你已经测试过的最近版本就可以了,并且会给你使用普通CDN的好处。

4
我建议从 GoogleMicrosoft CDN 引用一个静态版本号。现在开发时使用最新版本。如果您进行需要更新功能的更改,请在布局中更改引用。
Google CDN 如下:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

1

你可以直接从 jQuery 加载最新版本:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

还有其他内容分发网络可以加载。

一些流行的CDN包括:

  • jQuery (code.jquery.com)
  • Microsoft (ajax.microsoft.com)
  • Google (ajax.googleapis.com)

我想使用CDN,但应该选择哪一个最好,并且如何编写代码以查找最有可能在缓存中的jQuery? - Angela
1
在你需要在谷歌、jQuery或者微软之间做出选择的时候,其实并不重要。它们都有类似的可靠性和性能表现。 - Robert Greiner
3
链接到jquery-latest.min.js是危险的,因为jQuery未来版本中可能会进行更改,这会导致您的网站出现问题(这种情况经常发生)。如果出现问题,您的网站将自动继承并出现故障。 - jfriend00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接