是否有任何数据的优势加载jQuery从CDN (HTML5BP) vs连接和缩小它与其他脚本

Is there any data on the advantage of loading jQuery from a CDN (HTML5BP) vs concatenating and minifying it with the other scripts?

本文关键字:连接 vs HTML5BP 缩小 脚本 其他 CDN 数据 任何 jQuery 加载      更新时间:2023-09-26

我使用HTML5样板,看到他们从main.jsplugins.js分离jQuery。我明白这背后的逻辑是,很多网站使用jquery,如果你使用一个cdn,有一个很大的机会,用户已经缓存了它。

但由于我使用html5 bp利用构建步骤,我也可以连接和缩小jquery与我所有的其他脚本。所以:

  • 单独的jQuery,最好从CDN加载,或
  • 连接和缩小jQuery与所有其他脚本

从我的理解HTML5 BP不考虑连接/缩小选项,因为他们的样板文件不包括构建步骤。但既然这是我的选择;是否有确凿的数据表明什么是最好的选择,或者现实世界中的性能差异是什么?

在去年的拉取请求中对此(以及其他相关问题)进行了大量讨论。你应该看看那个帖子。有很多详细的讨论。

H5BP使用该设置的原因是它是最佳的默认解决方案。如果H5BP的用户没有对他们的设置做任何其他事情,他们可以保证从CDN源获得地理上优化的jQuery版本,并且有最高的可能命中缓存彩票。

超出默认解决方案:

  • 如果你有一个全球的观众,你将从CDN提供你的静态资产,那么它可能会稍微快一点,从该CDN提供单个文件。
  • 如果你有一个性能调优的静态资源服务器,你有一个本地受众,那么你可能会更快地从静态资源服务器提供单个文件,即使它不是在CDN上。
实际上,根据你所在地区的受众来测试你的设置是最好的方法。这是为您的站点或应用程序回答这个问题的唯一方法。

优点:

-性能稍微好一点,因为用户已经从其他站点缓存了它。

缺点:

-如果CDN坏了,你的网站坏了。

-如果你所有的文件连接在一个,你将只有一个查询在你的域,它总是比(IMHO)一个单独的查询外部域。

我个人总是选择串联。

但无论如何,不要过度优化。如果你的站点不大,选择你喜欢的。(我认为,如果你测试两种解决方案,结果不会有太大的不同)