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

我应该使用托管版本的JQuery吗?哪一个?,jquery,hosting,Jquery,Hosting,我应该使用jquery的本地副本,还是应该链接到Google或Microsoft提供的副本?我主要关心的是速度。我听说,仅仅从其他域中提取内容就可以在浏览器限制连接方面获得性能优势。特别是,有没有人测试过谷歌、微软和本地的速度和延迟 另外,我是否必须同意从第三方链接的任何条件或许可证?我已经为几个客户在生产中使用了Google的AJAX库托管。工作起来很有魅力,绝对是最好的方式 我建议从jQuery提供的CDN加载jQuery: 您不必注册任何帐户,源代码将从尽可能靠近用户的位置下载,并且您不

我应该使用jquery的本地副本,还是应该链接到Google或Microsoft提供的副本?我主要关心的是速度。我听说,仅仅从其他域中提取内容就可以在浏览器限制连接方面获得性能优势。特别是,有没有人测试过谷歌、微软和本地的速度和延迟


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

我已经为几个客户在生产中使用了Google的AJAX库托管。工作起来很有魅力,绝对是最好的方式


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


您不必注册任何帐户,源代码将从尽可能靠近用户的位置下载,并且您不必担心许可问题。

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

  • 服务器可能会停机
  • 服务器可以更改托管文件的版本
  • 您的用户可能会在托管服务器上任意创建过多负载,而他们可能对此并不感到兴奋

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

任何时候使用第三方托管的资产,都会增加应用程序中可能出现的故障点的数量。托管方对资产所做的更改(例如,修复错误或更新到新版本)也可能导致潜在的错误

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

将所有资产放在一个地方对安全性、性能、稳定性和版本完整性都有好处。除非你运行的是一个流量高得离谱的网站,否则你不应该担心分发你的内容


还值得注意的是,尽管jQuery并不是一个轻量级的包含,但它并不是令人讨厌的大,而且,像任何JavaScript包含一样,应该(但不保证)由浏览器缓存。

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

我一直在用谷歌做这个,到目前为止还没有遇到任何问题。 您可以使用以下方法轻松加载jQuery:

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

load(“jquery”,“1.4”);

我看到的大多数建议都是使用托管版本的谷歌或微软等

Dave Ward有一篇很好的文章解释了原因

  • 潜伏期缩短
  • 增加并行性
  • 更好的缓存
  • 查看他的帖子以获取统计信息

    Dave确实指出,您应该只对面向公众的网站执行此操作。

    出于其他人提到的原因,我强烈建议至少尝试使用托管版本的库,但同时,我也建议您使用自己的托管版本

    两者同时使用听起来可能有点疯狂,但第三方库主机并非100%无误,可能会出现故障。在这些罕见的情况下,能够有一个备份是很好的,而这正是专家们的建议

    以下是从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>
    
    
    window.jQuery | | document.write('\x3C/script>'))
    

    据我所知,对于普通的“本地副本”或“第三方”策略来说,唯一可能的缺点是存在额外的查找(总是),以查看从第三方加载库的尝试是否成功。然而,对于这种方法给你带来的所有好处来说,这是一个微不足道的代价

    另一个好的方面是,这种相同的策略可以用于任何多服务器托管场景,因此您可以(我也可以)将其用于其他库,例如jqueryui

    您还可以将其扩展为使用多个第三方,因此,如果Google宕机,您可以返回到Microsoft的托管版本,然后在需要时返回到您的本地托管副本


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

    很多时候我发现jQuery网站本身运行缓慢,如果他们的主站点正在使用他们的CDN,那么我可能不会相信它。我可以想象,谷歌的设置更适合处理大量负载。@ceejayoz jQuery CDN实际上是由Media Temple(mt)托管的这应该能够很好地处理负载…因为这是该公司成立的目的。我在MediaTemple托管方面的经验比我在谷歌方面的经验要负面得多。1。你的也可以。2.这就是为什么谷歌允许你直接链接到major(即“jQuery 1.3.x”)和minor(即“jQuery 1.3.2”)版本号。3.谷歌的负载太大?如果谷歌是主机提供商,这可能是真的。就我个人而言,我不会信任第三方服务器,因为它的核心应用程序依赖关系是由应用程序本身托管的。但是,如果它满足了某人的需要,我不会挑剔。你可以指定要使用的库版本,至少在使用googleAlso时,如果你必须紧急进行,从Google切换到本地主机大约需要10秒钟。@ceejayoz当然,你的服务器可能会停机。但是如果发生这种情况,请求jQuery包含的页面将无法得到服务,因此这不是问题。为什么要引入交换的额外复杂性(无论多么琐碎)?事情应该尽可能简单