从网上加载js文件或自己提供?

时间:2015-06-17 15:31:48

标签: javascript performance latency

我有一段时间没有这个问题,我很惊讶我还没有得到一个好的/完整的答案。

问题基本上是这样的: 在加载js文件时,在什么情况下你应该从网上加载它们而不是自己提供它们?什么情况通常允许最低延迟?

E.g。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

VS

<script src="js/jquery-1-11-3.min.js"></script>

2 个答案:

答案 0 :(得分:5)

完整答案:两者。

将它从网上加载下来会让您受益匪浅:

1)浏览器可以拥有的最大开放HTTP请求数量有限制。但是,此限制是每个域。因此,与谷歌服务器联系不会阻止您加载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>

在从CDN加载JQuery后放置此标记,如果加载失败,将jQuery未定义并继续从本地源加载它。如果来自CDN的负载有效,则将跳过此块。

答案 1 :(得分:1)

包括来自自己的服务器专业人士:

  • 从技术上讲,谷歌服务器可能已关闭,您的网站无法正确加载。

  • 人们,不信任谷歌并阻止它,脚本被阻止等。 这些人也不想直接包含谷歌文件。

  • 与谷歌的连接可能会有更高的延迟。如果你在自己的国家有一个观众和一个好的提供者,你的连接可能比谷歌更快。

禁忌:

  • 更高的网络服务器流量

  • 更多关联

  • 更高的CPU影响

你必须自己决定哪一个更适合你。对于较小的网站,我会选择本地存储文件。