许多CDNjs与一个缩小的本地js

Zan*_*nko 9 javascript cdn

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.1/jquery.inputmask.bundle.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/numeral.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/Ladda/1.0.0/spin.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/Ladda/1.0.0/ladda.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-modal/2.2.6/js/bootstrap-modalmanager.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-modal/2.2.6/js/bootstrap-modal.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

VS

<script src="/myMin.js">
Run Code Online (Sandbox Code Playgroud)

(myMin.js将包含连接在一起并缩小的所有js文件)性能最佳?我正在使用cdnjs,因为它解决了其他地区的人直接从我的服务器下载js文件的问题.例如,亚洲人不必从美国服务器下载我的js文件,这是一个巨大的性能问题.cdnjs帮助我在全球范围内散布js文件.因为cdnjs是异步下载所以什么时候myMin.js首选?

Gre*_*egL 13

我想说,由于HTTP/2的简单原因,使用大量CDN引用是可取的.

我相信Cloudflare支持HTTP/2,所以你可以通过拥有多个单一用途脚本而不是一个组合脚本来获得更好的效果.

在他们的博客文章"HTTP/2 for Web Developers"中,名为"Stop Concatenating Files"的部分特别相关:

但是,连接文件不再是HTTP/2中的最佳实践.虽然连接仍然可以提高压缩率,但它会强制执行昂贵的缓存失效.即使只改变了一行CSS,浏览器也会被迫重新加载所有的CSS声明.

此外,并非您网站中的每个页面都使用连接的CSS或JavaScript文件中的所有声明或函数.在缓存之后,这不是什么大问题,但这意味着正在传输,处理和执行不必要的字节,以便呈现用户访问的第一页.虽然HTTP/1.1中的请求开销使得这是一个值得的权衡,但它实际上可以减慢HTTP/2中的首次绘制时间.

Web开发人员应该更多地关注优化缓存策略,而不是连接文件.通过将经常更改的文件与很少更改的文件隔离开来,可以从CDN或用户的浏览器缓存中尽可能多地提供内容.

我们都需要开始质疑这些标准技巧,以便在HTTP/2得到广泛支持的情况下提高性能.