我计划使用requirejs通过公共CDN提高我的网站负载性能,以便在公共cdn失败时我可以获得本地回退。但很快,我发现requirejs具有优化功能,它将所有必需的模块组合成一个大的js文件。
那么,哪一个是更好的练习并且有更好的表现?从多个公共CDN加载多个JS文件或从本地加载一个大JS文件?
答案 0 :(得分:1)
你忘记了选项3:来自CDN的一个大文件。通常最好尽可能少的请求,因为低于网络速度(kb / s),网络延迟是一个问题。
但是,如果您的代码发生了很大变化(并且用户经常返回),将所有库和插件连接到一个文件并将您自己的代码连接到另一个文件中,而不是将所有代码连接在一起,这可能是一个合理的想法。 。 这样,如果你进行了一些小改动,那么它不是一个大的文件,它会改变并且必须再次下载,但是用户只需要再次获取脚本文件而不是(未更改的)库。根据我的经验,那些超过自定义代码的比例为10:1。
此外,如果您使用jQuery的CDN链接,最好的情况是它已经在用户缓存中。
最后,我还建议您测试不同的选项(Chrome DevTools'网络标签)。我有一个案例,其中一个CDN链接比一个"本地"链接(可能由于我的位置,澳大利亚)。
答案 1 :(得分:0)
这取决于您网站的性质。
例如,如果大多数页面上都需要大多数模块,那么对于捆绑选项,您将获益更多。
如果您有许多模块,并且大多数模块只出现在单个/几个页面上,那么您将从CDN选项中受益更多。
如果您希望大多数流量来自重复用户,而不是唯一身份用户,您可能也会从捆绑选项中获益更多。