从 Web 加载 js 文件或自己提供它们

Load js files from the web or serve them yourself?

本文关键字:自己 Web 加载 js 文件      更新时间:2023-09-26

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

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

例如

<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 请求数有限制。但是,此限制是针对每个域的。因此,联系谷歌的服务器不会阻止您加载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 的负载有效,则将跳过此块。

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

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

  • 不信任谷歌并被阻止、脚本被阻止等的人。这些 ppl 也不想直接包含来自谷歌的文件。

  • 与谷歌的连接可能会有更高的延迟。 如果您的受众群体在自己的国家/地区并且拥有良好的提供商,那么您的 Connec 可能会比 Google 更快。

魂斗罗:

  • 更高的网络服务器流量

  • 更多连接

  • 更高的 CPU 影响

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