<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">
(myMin.js将包含所有连接在一起并缩小的js文件(什么对性能最好?我使用cdnjs是因为它解决了其他地区的人直接从我的服务器下载js文件的问题。例如,亚洲人不必从美国服务器下载我的js文件,这是一个巨大的性能问题。cdnjs
帮助我将js文件散布到全球各地。既然cdnjs是异步下载的,那么myMin.js
什么时候会是首选?
我认为最好使用大量CDN引用,原因很简单,HTTP/2。
我相信Cloudflare支持HTTP/2,所以拥有多个单一用途的脚本比拥有一个组合脚本要好。
从他们题为";HTTP/2 for Web Developers";,称为";停止连接文件";特别相关:
但是,在HTTP/2中,串联文件不再是最佳做法。虽然串联仍然可以提高压缩率,但它会强制执行昂贵的缓存无效操作。即使只更改了一行CSS,浏览器也会被迫重新加载所有的CSS声明。
此外,并非您网站中的每个页面都使用连接的CSS或JavaScript文件中的所有声明或函数。缓存后,这并不是什么大不了的事,但这意味着为了呈现用户访问的第一个页面,正在传输、处理和执行不必要的字节。虽然HTTP/1.1中请求的开销使这成为一个值得权衡的问题,但它实际上会减慢在HTTP/2中首次绘制的时间。
web开发人员应该更多地关注优化缓存策略,而不是连接文件。通过将经常更改的文件与很少更改的文件隔离开来,可以从CDN或用户的浏览器缓存中提供尽可能多的内容。
既然HTTP/2得到了广泛的支持,我们都需要开始质疑这些提高性能的标准技巧。
做出决定需要考虑以下几点。其中几个:
性能:建议使用CDN,因为这些.js文件在全球范围内都有大量缓存。这将对远离原始服务器位置的用户提供最大帮助。这也将帮助您节省源中的带宽使用量,就像CPU和其他资源一样。
框架兼容性:使用CDN文件的缺点是,如果公共库对版本更新有任何更改,您的应用程序可能会停止工作,因为某些方法或功能可能会随着版本的变化而变化。如果使用本地文件,则可以确保无论对公共库进行任何版本更新,应用程序都能正常工作。
总而言之,如果您没有太多的应用程序可支持,其中一个库中的方法更改会花费您大量的更改成本,请使用库的CDN版本,因为它们最终会为您节省资源;让它成为金钱或服务器资源。