Javascript 多个CDNJ与一个小型本地js

Javascript 多个CDNJ与一个小型本地js,javascript,cdn,Javascript,Cdn,vs (myMin.js将包含连接在一起并缩小的所有js文件) 什么是最佳性能?我使用cdnjs是因为它解决了其他地区的人直接从我的服务器下载js文件的问题。例如,亚洲人不必从USA服务器下载我的js文件,这是一个巨大的性能问题cdnjs帮助我将js文件分散到全球各地。既然CDNJS是异步下载的,那么当 MYMIN,JS是首选? < P> >有几个事情要考虑去做决定。其中一些: 性能: 建议使用CDN,因为这些.js文件在全球范围内大量缓存。这将对远离原始服务器位置的用户帮助最大。与CPU和

vs


(myMin.js将包含连接在一起并缩小的所有js文件)
什么是最佳性能?我使用cdnjs是因为它解决了其他地区的人直接从我的服务器下载js文件的问题。例如,亚洲人不必从USA服务器下载我的js文件,这是一个巨大的性能问题
cdnjs
帮助我将js文件分散到全球各地。既然CDNJS是异步下载的,那么当<代码> MYMIN,JS是首选?

< P> >有几个事情要考虑去做决定。其中一些:

性能: 建议使用CDN,因为这些.js文件在全球范围内大量缓存。这将对远离原始服务器位置的用户帮助最大。与CPU和其他资源一样,这也将帮助您节省源站的带宽使用

框架兼容性: 使用CDN文件的缺点是,如果公共库在版本更新时有任何更改,您的应用程序可能会停止工作,因为某些方法或功能可能会因版本而异。如果使用本地文件,则无论对公共库进行了任何版本更新,都可以确保应用程序正常工作


总而言之,如果您没有太多的应用程序可支持,而其中一个库中的方法更改会花费您大量的更改,请使用这些库的CDN版本,因为它们最终会为您节省资源;让它成为金钱或服务器资源

我想说,出于HTTP/2的简单原因,最好使用大量CDN引用

我相信Cloudflare支持HTTP/2,因此您最好使用多个单一用途的脚本,而不是一个组合脚本

在他们的博客文章中,标题为的部分特别相关:

但是,在HTTP/2中,连接文件不再是最佳做法。虽然串联仍然可以提高压缩比,但它会导致昂贵的缓存失效。即使只更改了一行CSS,浏览器也会被迫重新加载所有CSS声明

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

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


既然HTTP/2已经存在,我们都需要开始质疑这些提高性能的标准技巧。

如果您只使用cdn交付js,而页面的其余部分(html、图像等)没有使用cdn,那么使用cdn就没有真正的优势。除了它可能已经在访问者缓存中,因为它已经在另一个使用相同cdn的页面上使用。显然,将许多Js文件合并到一个会降低您的服务器负载,将say10-15请求减少到之前服务器负载的1/10左右,但当您使用cdn时,我会说这几乎不会产生任何影响差异,因为只有第一个请求才重要,即常量。此外,巨大的Js文件将花费大量时间来加载和完全解释,这对页面来说确实是一个不必要的负担,因为假设它是一个常规的动态网站,大多数页面的使用率不会超过20-30%。关于框架兼容性,这不是一个问题,因为您需要指定lib的版本。例如jQuery-3.1.1.js与jQuery.js
<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>
<script src="/myMin.js">