好处与本地托pipejQuery的陷阱

我们目前正在从谷歌CDN拉jQuery和jQueryUI(和jQueryUI CSS)库。 我喜欢这个,因为我可以调用google.load("jquery", "1");
和最新的jQuery 1.xx将被使用。

因为安全,现在我要在本地拉图书馆。

我很高兴把他们拉到当地,但我想知道还有什么其他的好处和缺陷需要注意?

将它们放在CDN上的主要好处是可以将文件并行下载到从您自己的网站上下载的文件中。 这可以减less每个页面上的延迟。 所以,另一方面是本地托pipe的一个缺陷 – 增加了延迟 。 主要原因是浏览器在同一个Web域中可以同时连接的数量是有限的。 在IE6这是默认为2并发连接到相同的域 – 所有打开的IE浏览器之间共享! 在IE8 +中,它改进了,默认为6,这是FF / Chrome内联,但是,如果你有很多的图像,而你没有使用精灵,你将遇到严重的延迟。

使用CDN,我总是明确设置库版本,而不是获取最新版本 。 这减less了新版本破坏你的代码的风险。 不太可能与jQuery,但可能的。

使用CDN的另一个主要好处是可以减less您网站上的stream量 。 如果您按GB支付费用,或者您处于资源有限的虚拟服务器上,则可能会发现当您将某些内容转存到公共CDN时,整体网站性能会提高,托pipe成本也会降低。

确保你也阅读@revaxarts这个问题的其他答案。 这是一个非常好的窍门

我总是使用Google的CDN。 但为了以防万一,它是离线的:

 <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> 

抓取Google CDN的jQuery,并在必要时回退到本地

编辑 :如果你不需要支持IE6,并且你的网站有部分https使用,你也可以删除http:

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

其他人已经涵盖了好处。 陷阱:

  • 如果您只包含来自您自己的服务器的内容,那么这是一台需要运行的服务器,并且不会被防火墙等阻止,从而使您的网站正常运行。 从第三方提取脚本,现在这是两台服务器需要运行和畅通,使您的网站的工作。

  • 您从任何网站拉<script>可以完全控制用户在您的网站上的体验。 如果谷歌感到恶心,他们可以把一些东西放在他们的jQuery副本中logging您的按键,从您正在进入的网页窃取个人信息并绑定到他们的networking跟踪数据库,让您发布“我爱Google! , 等等。

Google可能实际上并没有这样做,但是这是一个无法控制的因素,当然还有一些其他的脚本托pipe服务需要担心。 统计脚本已经被恶意软件加载程序破坏之前就已经发生过一些事件。

在包含来自第三方的任何脚本(即使在您的站点的单个页面上)之前,您必须100%信任它们,并具有该主机名上可见的所有用户可访问的function(包括面向networking的pipe理function)。

Google CDN:

  • caching,对性能有好处,更多的用户可能已经拥有它,并且可以并行下载
  • 如果有的话,heaver禁止cdn下降。 你完蛋了。
  • 如果一个新版本打破了你现有的插件或站点,你可能就会知道它可能为时已晚

本地:

  • 没有连接到networking的发展是可能的
  • 除了缩小之外,还可以通过gzip来获得一些性能优势

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

好处:(专门针对Google的CDN)

  1. 与您的文件并行下载。 其他答案进一步说明
  2. Google的服务器很可能能够更快速地交付内容
  3. 公共库和框架可能已经在用户的机器上,因为CDN的HTTPcaching在所有站点中是通用的
  4. 您的带宽将不必服务于大型库文件

几乎所有你看,使用谷歌的CDN是一件好事。

性能会得到改善(尽pipe相当的微不足道,除非你的网站真的很忙),而且你的服务器传输的数据量也会减less(尽pipejQuery并不是一个可以下载的东西)等等。

你不想使用它的唯一原因是,如果你不信任谷歌。 通过使用它,您可以有效地向Google提供一个额外的信息窗口,包括您可能不希望公开的URL(例如您网站的安全区域)的知识。

如果你对安全有偏见,那么这可能足以说服你不要使用它们(毕竟,自己托pipe并不会让你的网站变慢),但总的来说,大多数人会采取务实的观点Google已经知道他们的网站已经够多了,添加这个并没有太大的区别。

对我来说,这取决于你想要拥有多less控制权。 如果你和我一样,在工作和旅行时需要在本地主机上开发。 有jquery文件本地比在谷歌或其他地方托pipe好。