Gra*_*t P 4 javascript performance latency
我有一段时间有这个问题,我很惊讶我还没有得到一个好的/完整的答案.
问题基本上是这样的:当涉及到加载js文件时,在什么情况下你应该从网上加载它们(如果可用)而不是自己提供它们?什么情况通常允许最低延迟?
例如
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
与
<script src="js/jquery-1-11-3.min.js"></script>
完整答案:两者.
将其从网上加载将以两种方式使您受益:
1)浏览器可以拥有的最大开放HTTP请求数量有限制.但是,此限制是每个域.因此,与Google的服务器联系不会阻止您加载CSS /图像.
2)用户很可能已经缓存了该文件,因此他们将获得HTTP 304 not changed响应,而不必下载该文件.
现在,有了这样说,有时服务器将关闭,否则网络问题将阻止您加载该文件.当发生这种情况时,您需要一个解决方法,我们可以这样做:
<script>
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='/js/jquery-2.0.0.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
Run Code Online (Sandbox Code Playgroud)
在从CDN加载JQuery之后放置此标记,如果加载失败,jQuery将是未定义的并继续从本地源加载它.如果来自CDN的负载有效,则将跳过此块.