我们目前正在从谷歌 CDN 中提取 jQuery 和 jQueryUI(和 jQueryUI CSS)库。我喜欢这个,因为我可以调用google.load("jquery", "1");
并且将使用最新的 jQuery 1.xx。
现在我为了安全起见要在本地拉库。
我很高兴将它们拉到本地,但我想知道还有哪些其他好处和需要注意的陷阱?
我们目前正在从谷歌 CDN 中提取 jQuery 和 jQueryUI(和 jQueryUI CSS)库。我喜欢这个,因为我可以调用google.load("jquery", "1");
并且将使用最新的 jQuery 1.xx。
现在我为了安全起见要在本地拉库。
我很高兴将它们拉到本地,但我想知道还有哪些其他好处和需要注意的陷阱?
我总是使用 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>
将它们放在 CDN 上的主要好处是,这些文件可以与从您自己的网站下载的文件并行下载。这减少了每个页面的延迟。因此,另一方面是在本地托管会增加延迟的陷阱。主要原因是浏览器可以同时连接到同一个网络域的连接数量受到限制。在 IE6 中,这被默认为 2 个到同一个域的并发连接 -在 IE 的所有打开的窗口之间共享!!在 IE8+ 中它有所改进,默认为 6,与 FF/Chrome 一致,但是,如果您有很多图像并且不使用精灵,您将遇到严重的延迟。
使用 CDN,我总是会明确设置库版本,而不是获取最新版本。这降低了新版本破坏代码的风险。jQuery 不太可能,但可能。
使用 CDN 的另一个主要好处是减少您网站上的流量。如果您按 GB 付费,或者您使用的是资源有限的虚拟服务器,您可能会发现当您将某些内容转移到公共 CDN 时,整体站点性能会提高,托管成本会降低。
确保您还阅读了@Xaver 对此问题的其他答案。这是一个很好的技巧
其他人已经涵盖了这些好处。陷阱:
如果您只包含来自您自己的服务器的内容,则该服务器需要运行——而不是被防火墙等阻止——以使您的站点正常工作。从第三方拉取脚本,现在需要运行和解锁两台服务器才能使您的站点正常工作。
您<script>
从中提取的任何站点都可以完全控制用户在您站点上的体验。如果谷歌感觉邪恶,他们可以在他们的 jQuery 副本中放一些东西来记录你的按键,从你所在的页面窃取个人信息以绑定到他们的网络跟踪数据库,让你发布“我爱谷歌!” 对每个表单的评论,等等。
Google 可能实际上不会这样做,但这是一个您无法控制的因素,当然还有其他脚本托管服务需要担心的问题。之前曾发生过统计脚本被恶意软件加载程序破坏的事件。
在包含来自第三方的任何脚本之前(即使是在您网站的一个页面上),您必须 100% 地信任它们具有在该主机名上可见的所有用户可访问功能(包括面向 Web 的管理功能)。
谷歌 CDN:
本地:
我更喜欢使用我的本地版本,因为我无法控制他们将提供什么。例如,我不希望我的用户受到 google-analytics 或任何类似的影响,因为这在我的国家是一个法律问题。