我应该使用托管版本的JQuery吗?哪一个?

时间:2010-05-18 17:38:30

标签: jquery hosting

我应该使用jquery的本地副本,还是应该链接到Google或Microsoft提供的副本?我主要关注速度。我听说只是从其他域中提取内容可以获得与浏览器限制连接的方式相关的性能优势。特别是,有没有人对谷歌与微软与本地的速度和延迟进行基准测试?

此外,我是否必须同意从第三方链接的任何条件或许可?

7 个答案:

答案 0 :(得分:11)

一个优点是用户可能已经将其缓存,因为另一个网站也链接到第三方。

我一直在使用google,到目前为止还没有遇到任何问题。 您可以使用以下命令轻松加载jQuery:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("jquery", "1.4");
</script>

答案 1 :(得分:7)

只要您使用由第三方托管的资产,您就会增加应用程序中可能出现的故障点数。您还可能面临托管方对资产所做的更改(例如,修复错误或更新到新版本)所带来的潜在错误。

由于您的网站与主机之间的延迟差异,网页性能可能会受到影响。客户端和主机之间的网络中断可能导致您的页面失败,ISP的互联网过滤也会失败。 例如,使用Google托管的代码会导致从中国查看您网站的任何人出现问题

将所有资产保存在一个位置,最好是安全性,性能,稳定性和版本完整性。除非您正在运行一个可笑的高流量网站,否则您不必担心分发您的内容。

值得注意的是,虽然jQuery并不是一个轻量级的包含,但它并不是很大,并且像任何JavaScript包含的那样,应该(但不能保证)被浏览器缓存。

答案 2 :(得分:6)

我见过的大多数建议都是使用托管版本的Google或Microsoft等。

戴夫沃德有一篇很好的文章解释了原因。

3-reasons-why-you-should-let-google-host-jquery-for-you

  1. 延迟减少
  2. 增加并行度
  3. 更好的缓存
  4. 请参阅他的帖子了解统计数据。

    Dave确实指出,您只应为 Public Facing 网站执行此操作。

答案 3 :(得分:3)

我一直在为多个客户使用Google的AJAX库托管。像魅力一样,绝对是最好的方式。

http://code.google.com/apis/ajaxlibs/

答案 4 :(得分:2)

我建议从jQuery提供的CDN加载jQuery:

http://code.jquery.com/jquery-1.4.2.min.js

您无需注册任何帐户,源代码将尽可能靠近用户下载,您无需担心许可。

答案 5 :(得分:2)

我建议您始终托管自己的本地副本。

  • 服务器可能会关闭。
  • 服务器可以更改托管文件的版本。
  • 您的用户可能会在托管服务器上随意创建过多的负载,而这些负载可能并不令人激动。

我认为在发布您希望“工作”的示例代码时,使用托管链接是合理的,而无需用户下载jquery。

答案 6 :(得分:2)

强烈建议至少尝试使用该库的托管版本,原因是其他人提到的,但与此同时,我还建议使用您自己的托管版本。

使用两者可能听起来有些疯狂,但第三方库主机并非100%无法正常使用,可能会失效。在极少数情况下,能够备份到位是很好的,这正是HTML5Boilerplate project推荐的。

以下是项目中从Google服务加载jQuery的代码片段,如果失败则会回退到本地托管的副本:

<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>

据我所知,只有可能可能在这个方面,对于香草“本地副本”或“第三方”策略不存在是有额外的查找(总是)查看从第三方加载库的尝试是否成功。然而,这是一个非常小的代价,因为这种方法可以为您带来所有好处。

另一个好处是,同样的策略可用于任何多服务器托管方案,因此您可以(并且我)将此用于其他库,例如jQuery UI。

您还可以将其扩展为使用多个第三方,因此如果Google停止使用,您可以回退到Microsoft的托管版本,然后根据需要转到本地托管的副本。

最后,这种方法也是协议相对的,因此它在httphttps页面上同样有效,而不会引起浏览器对不安全页面元素的抱怨。