这对某些人来说可能是显而易见的,但我一直在想:我为什么要依赖Google's server为我的网站托管jQuery?
是否只是因为它以这种方式加载速度更快?
答案 0 :(得分:385)
这是因为:
答案 1 :(得分:56)
有几种情况可能不想要使用Google的CDN中的jQuery:
在构建Intranet时 Web服务器所在的应用程序 托管在同一网络上 客户。如果您使用Google的CDN jQuery,你会打电话给 互联网而不是网络服务器 在本地网络上。这个 增加你的带宽 组织,而且速度较慢。
如果要脱机运行应用程序。 (与第一个问题相关)如果您需要处理开发环境(例如使用Bower进行管理),您可能需要能够在没有任何Internet连接的情况下使您的应用程序正常工作(即:在列车中) :)
当您通过SSL提供网页时 这需要jQuery。你应该 通过SSL提供JavaScript服务 以及避免安全的页面 问题和警告。
另外,他们的CDN上有Microsoft hosts jQuery。这是与使用Google托管的jQuery相媲美的另一种选择。
答案 2 :(得分:28)
study TJ VanToll让我确信将jQuery与其他脚本连接起来比将其加载到CDN更好。
原因是在移动设备上获取jQuery所涉及的延迟:
" 2012年美国移动网络的平均RTT时间 是344毫秒。并且344ms不仅适用于每个HTTP请求 - 平均网页现在是93个 - 但也是每个DNS查找 和TCP连接...虽然平均RTT正在改善,但只有 由于目前的网络在一个范围内,所以可以获得额外的小额收益 由物理学决定的理论极限的一小部分。"
他还引用Steve Souders的this post来说明为什么你使用CDN实际上不太可能获得缓存优势:
"由于CDN提供程序中的碎片,jQuery版本和 协议使用(http与https),获得CDN缓存的机会 命中率非常低 - 从外部域下载 有可能不是一次,而是三次往返(DNS查找, TCP连接和HTTP GET)。"
答案 3 :(得分:12)
最大的好处是来自缓存。理论上说,如果访问者访问了一个加载他们的JavaScript库的网站,例如来自Google CDN的jQuery,那么当他们访问您的网站时,该库已经在该用户的浏览器缓存中,不必再次下载。这在理论上听起来很棒。
这里和其他地方分享的好处都是理论上的。刚刚对使用CDN进行了深入分析,是否能提供预期的性能优势。 http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
答案 4 :(得分:7)
不让谷歌托管您的jQuery的一个主要原因是许多人没有想到的是,如果您在中国,它将无法下载。它与许多其他脚本,字体等一起被封锁......由谷歌CDN托管。如果您需要接触中国受众,最好始终使用托管在您自己服务器上的后备广告。 Google APIS Blocked in China
答案 5 :(得分:0)
这里有一些很好的答案"为什么你应该......"和"为什么你不应该......"
如果您确实想要从CDN加载jQuery,我只想添加Google的替代品列表。
但总而言之,您基本上可以提高整体网站/应用程序的性能。
答案 6 :(得分:0)
使用Service Worker来签名CDN,您可以在客户端生命周期中一次下载CDN,而不是每次更新代码时都可以下载。