我为什么要将谷歌的CDN用于jQuery?

Yve*_*tte 169 performance jquery cdn

对于某些人来说这可能是显而易见的,但我一直在想:我为什么要依靠Google的服务器为我的网站托管jQuery?

是不是因为它以这种方式加载得更快?

Joh*_*zen 391

这是因为:

  1. 它增加了可用的并行性.
    (大多数浏览器一次只能从任何给定的站点下载3或4个文件.)

  2. 它增加了缓存命中的可能性.
    (随着越来越多的网站遵循这种做法,更多用户已经准备好了文件.)

  3. 它确保有效载荷尽可能小.
    (谷歌可以用各种格式预压缩文件(如GZIP或DEFLATE).这使得下载时间非常短,因为它是超级压缩的,并且不会动态压缩.)

  4. 它减少了服务器使用的带宽量.
    (谷歌基本上提供免费带宽.)

  5. 它确保用户获得地理上接近的响应.
    (谷歌在世界各地都有服务器,进一步减少了延迟.)

  6. (可选)它们会自动使您的脚本保持最新.
    (如果你喜欢"在你的裤子旁边飞行",你可以随时使用他们提供的任何脚本的最新版本.这些可以修复安全漏洞,但通常只是打破你的东西.)

  • 我喜欢你如何不断提出越来越多的理由.仅此+1. (10认同)
  • 上帝每个人都在攻击我,我只是发出了我的想法,并被接受了,大声笑 (2认同)

Lan*_*her 56

有几种方案时,你可能希望使用jQuery来自谷歌的CDN:

  1. 在构建Intranet应用程序时,Web服务器与客户端位于同一网络上. 如果您使用谷歌的CDN jQuery,您将拨打互联网而不是本地网络上的网络服务器.这会增加组织的带宽,并且速度会变慢.

  2. 如果要脱机运行应用程序.(与第一个问题相关)如果您需要在开发环境(例如使用Bower管理)上工作,您可能需要能够在没有任何互联网连接的情况下使您的应用程序正常工作(即:在火车上:)

  3. 当你需要自定义它.例如,如果您使用Grunt构建库以便仅使用某些模块或设置AMD名称

  4. 当您通过SSL提供需要jQuery的页面时. 您应该通过SSL以及页面提供JavaScript,以避免出现安全问题和警告.

此外,微软在他们的CDN上托管jQuery.这是与使用谷歌托管的jQuery相媲美的另一种选择.

  • 只是一个FYI,你可以使用谷歌的服务器来提供托管的JavaScript库的SSL版本.https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js有效. (35认同)
  • 还有FYI:Scheme相对超链接,比如`src ="// ajax.googleapis.com/..."`,工作. (6认同)
  • 提及微软的+1.谷歌获得了太多的信用评价. (3认同)
  • 还要考虑cndjs (3认同)

can*_*era 29

研究TJ VanToll使我确信,这是更好地串连的jQuery与其他脚本,而不是从CDN加载它.

原因是在移动设备上获取jQuery所涉及的延迟:

"2012年,美国移动网络的平均RTT时间为344毫秒.而且,344毫秒不仅适用于每个HTTP请求 - 平均网页现在只有93个 - 而且还适用于每个DNS查找和TCP连接......虽然平均RTT正在改善,但只有很小的额外收益,因为目前的网络在物理学所决定的理论极限的一小部分内.

他还引用了Steve Souders的这篇文章,说明为什么你实际上不太可能通过使用CDN 获得缓存优势:

"由于CDN提供商,jQuery版本和协议使用(http与https)的碎片化,获得CDN缓存的可能性非常低 - 从外部域下载有可能不是一个,而是三个往返(DNS查找,TCP连接和HTTP GET)."

  • HTTP2和SPDY不再适用.今天,您可以将所有外部资源托管在像Cdnjs.com等CDN中,所有文件都将使用相同的请求下载.这基本上与连接相同. (3认同)

小智 12

最大的好处是缓存.理论上说,如果访问者访问了一个加载他们的JavaScript库的网站,例如来自Google CDN的jQuery,那么当他们访问您的网站时,该库已经在该用户的浏览器缓存中,不必再次下载.这在理论上听起来很棒.

在这里和其他地方分享的好处都是理论上的.刚刚对使用CDN进行了深入分析,是否能提供预期的性能优势. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits


小智 7

不让谷歌主持你的jQuery的一个主要原因是很多人没有想到的,如果你在中国就不会下载.它与许多其他脚本,字体等一起被封锁......由谷歌CDN托管.如果您需要接触中国受众,最好始终使用托管在您自己服务器上的后备广告. 谷歌APIS在中国被封锁