代码之家  ›  专栏  ›  技术社区  ›  orolo

本地托管jQuery的优点与缺点

  •  71
  • orolo  · 技术社区  · 14 年前

    google.load("jquery", "1");
    将使用最新的jquery1.x.x。

    现在为了安全起见,我要把图书馆搬到本地去。

    我很高兴在当地推出这些产品,但我想知道还有什么其他好处和隐患需要注意?

    8 回复  |  直到 14 年前
        1
  •  111
  •   Daniel Dyson    5 年前

    将它们放在CDN上的主要好处是,这些文件可以与从您自己的网站下载的文件并行下载。这减少了每页的延迟。因此,另一方面是本地托管的陷阱- 延迟增加 . 主要原因是浏览器在同一时间与同一web域的连接数量有限。在IE6中,默认为2个并发连接到同一个域- 在IE的所有打开的窗口之间共享!! 在IE8+中,它得到了改进,默认为6,这与FF/Chrome是内联的,但是,如果你有很多图像并且你没有使用sprite,你会经历很长的延迟。

    使用CDN,我会 而不是最新的。这降低了新版本破坏代码的风险。使用jQuery不太可能,但是可能。

    使用CDN的另一个主要好处是 网站流量减少 . 如果您是按GB付费的,或者您使用的是资源有限的虚拟服务器,那么当您将部分内容转移到公共CDN时,您可能会发现总体网站性能提高,托管成本降低。

    确保您也阅读了@Xaver对这个问题的另一个答案。这是一个很好的把戏

        2
  •  147
  •   Nicolai Lissau    6 年前

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>
    

    抓取googlecdn的jQuery并在必要时回退到本地

    编辑 如果您不需要支持IE6,并且您的站点使用了部分https,那么您也可以删除http:

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    
        3
  •  25
  •   bobince    14 年前

    其他人则承担了这些好处。陷阱:

    • 如果您只包含来自您自己的服务器的内容,那么只有一个服务器需要运行并且不被防火墙等阻止,才能使您的站点正常工作。从第三方拉脚本,现在这是两个服务器,需要运行和解锁,使您的网站工作。

    • <script>

    谷歌可能不会真的这么做,但这是一个你无法控制的因素,当然还有其他脚本托管服务需要担心的问题。以前也发生过这样的事件:统计脚本被恶意软件加载程序破坏。

    在包含来自第三方的任何脚本(即使是在站点的一个页面上)之前,您必须100%信任这些脚本,并在该主机名上显示所有用户可访问的功能(包括面向web的管理功能)。

        4
  •  14
  •   Moin Zaman    14 年前

    谷歌CDN:

    • 缓存,有利于提高性能,更多的用户可能已经拥有它,而且它可以并行下载
    • 如果有,更重的禁止cdn下降。你完蛋了。
    • 如果一个新版本破坏了你现有的插件或站点,你可能会知道的太晚了

    • 不联网开发是可能的
        5
  •  13
  •   Dr.Molle    14 年前

    我更喜欢使用我的本地版本,因为我无法控制他们将提供什么。 例如,我不希望我的用户受到谷歌分析或任何类似的影响,因为这在我的国家是一个法律问题。

        6
  •  9
  •   bren    7 年前

    好处:(专门针对谷歌的CDN)

    1. 与文件并行下载。其他答案进一步说明了这一点
    2. 谷歌的服务器很可能能够更快地交付内容
    3. 公共库和框架可能已经在用户的机器上,因为CDN的HTTP缓存是 普遍的
    4. 您的带宽将不必用于提供大型库文件
        7
  •  2
  •   Spudley    14 年前

    性能将得到提高(尽管只有很小的提高,除非您的站点非常繁忙),服务器必须传输的数据量也会下降(尽管jQuery并不是一个需要大量下载的东西),等等。

    你不想使用它的唯一原因是你不信任谷歌。通过使用它,你有效地为谷歌提供了一个额外的信息窗口进入你的网站的交通概况,包括知识的网址,否则你可能不想公开(如你的网站的安全区域)。

        8
  •  2
  •   The Godfather    5 年前

    也许我现在是少数派,但我要说的是,除非你真的需要,否则你不想使用CDN。开始使用它的关键因素是:

    • 大量的用户和/或大量的内容,所以一个主服务器已经不够了。你可以想到任何色情视频网站(或者Netflix,如果你愿意的话)。视频流的负载很重,而CDN在主服务器上的负载要小得多。

    但是。。。关键是这些观点并不适用于世界上90%的网站。我敢打赌你不是拥有全球数百万在线用户的Facebook,你不是每秒传输数百GB的Pornhub。

    如果你的网站面向的是你所在城市/国家的用户,并且一台服务器的容量足以满足你的用户数量,那么你为什么会想要CDN呢?对于您所在城市的用户来说,它更快,而且从本地主服务器获取所有内容也更简单。


    使用CDN和回退到本地版本的解决方案,正如@Xaver所建议的,可以是一个很好的折衷方案。但是。。。也许只是摆脱CDN链接?;)

        9
  •  0
  •   WebGoonie    11 年前

    对我来说,这真的取决于你有多大的控制欲。如果你和我一样,在工作和旅行时需要在当地发展。将jquery文件放在本地比把它放在google或其他地方要好。