Neo*_*ang 10 javascript performance cdn browser-cache web
我的网页使用了几个javascript库,如jquery,jquery-ui,下划线,主干和一些其他着名的jquery插件.
现在我面临两难困境,我可以:
使用托管所有这些库的公共CDN.如果用户使用相同的CDN访问了另一个站点,则脚本可能已被缓存.但由于每个库都是独立的,因此页面需要包含许多脚本标记,因此需要许多http请求.
将所有必需的脚本合并为一个(包括我自己的脚本文件)并将其托管在我自己的服务器上.只有一个请求一切,但我无法比CDN更快地提供脚本,我无法利用缓存.
从你自己的经验来看,哪个更好?
我想估计是否有足够的网站使用提到的CDN(如果许多知名网站使用它们,那么缓存脚本的概率很高),我该如何调查?我试过谷歌搜索脚本src属性,但似乎谷歌没有索引.
如果仅使用1-2个库,那么一个好的做法也包括CDN版本,并且回退到本地版本.这是大多数HTML样板/框架使用的实践.eg.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="//myserver/js/libs/jquery-1.8.3.min.js"><\/script>')</script>
Run Code Online (Sandbox Code Playgroud)
但是,您使用了大量的库,因此页面上可能存在依赖关系,以及它们的特定顺序,并且其中一些可能不会出现在标准CDN上,因此您无论如何都必须包含一些来自您的javascripts服务器.因此,对于您的情况,更好的选择是将所有javascript代码良好地组合/版本化为1-2个文件.例如,一个用于库(通常不被触及),一个用于您自己的自定义代码(当您制作时缓存已被破坏)改变它).