如果谷歌或微软或其他网站托管的链接失败,我已经在几个地方读过如何回退jQuery库的本地副本。
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined')
{
document.write(unescape("%3Cscript src='/Scripts/jquery-1.3.2.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
我的应用程序在Intranet环境中工作,但偶尔外部jQuery链接不会失败,但需要很长时间才能加载(由于外部Internet连接问题)。
我想知道是否有办法不仅使用这样的回退,而且为CDN链接设置超时,这样如果链接需要一定的时间,它应该失败并调用回退。
类似的东西:
if(timetoloadjquery > n) {
Use fallback local jQuery library.
}
也许某种循环会检查是否定义了jQuery,如果经过这么多次迭代后它不会......做其他事情吗?
感谢您的帮助。
答案 0 :(得分:1)
这可能会对你有所帮助。经过5秒后,Javascript检查jQuery是否可用,如果没有,则从本地服务器加载库。
1。使用计时器
<script>
setTimeout(function() {
if(window.jQuery) return;
var n = document.getElementsByTagName("script")[0];
n.parentNode.insertBefore(document.createElement("script"), n).src = "assets/jQuery/jquery-1.7.2.min.js";
}, 5000);
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
2. 这个没有计时器,如果CDN版本失败,它会加载本地版本。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"></script>
<script type="text/javascript">window.jQuery || document.write("<script type='text/javascript' src='js/jquery-1.8.3.min.js'>\x3C/script>")</script>