我有一个网站,我想在线和离线工作。我想减少加载时间,所以我缩小了缓慢加载脚本。它没有足够的工作。在本地,一些脚本需要4-6秒才能加载。
我知道从外部链接脚本会大大加快速度。我试过了它,它的工作原理。但是一些用户将无法访问互联网。有没有办法将一组脚本链接到外部站点,如果他们没有Internet访问权限,可以在本地链接吗?
false
答案 0 :(得分:1)
您可以执行与this answer.类似的操作。基本上,您的想法是尝试为jQuery加载基于Internet的脚本。之后,您将执行一个普通脚本,检查是否jQuery === undefined
。如果是,则要加载本地副本。
基本上,您想要做的一个例子:
<script src="[jQueryURL]" type="text/javascript"></script>
<script src="[dataTablesURL]" type="text/javascript"></script>
<script src="[jQueryUIURL]" type="text/javascript"></script>
<script type="text/javascript">
if(jQuery === undefined) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "js/jquery-1.9.1.min.js";
document.getElementsByTagName('head')[0].appendChild(script);
//repeat for other two scripts here
}
</script>
会发生什么情况,它会尝试加载有问题的脚本,然后它将检查是否定义了jQuery。如果不是,则表示脚本没有加载,因此您需要加载本地版本并将其附加到标题中。
答案 1 :(得分:0)
确保脚本声明了您可以测试的全局变量。如果外部脚本加载失败,则生成本地脚本加载元素(可以通过测试该变量来确定)。
<script src="http://example.com/example.js"></script>
<script>
if !(window.Example) {
document.write('<script src="../scripts/example.js"><\/script>');
}
</script>
答案 2 :(得分:0)
<script type="text/javascript">
if(navigator.onLine)
{
alert("Connected");
}
else
{
alert("Not Connected");
}
</script>
首先检查是否存在互联网连接,然后加载外部文件,另外加载内部文件