我在几个地方读过如何在jQuery库的本地副本上退步,如果由google或microsoft托管的链接失败或其他失败。
<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>
然而,我的应用程序在内部网环境中工作,并且偶尔外部jQuery链接不会失败,但是加载需要很长时间(由于外部internet连接问题)。
我想知道是否有一种方法不仅可以使用这样的回退,还可以为CDN链接设置一个超时,这样如果链接需要一定的时间,它就应该失败并调用回退。
类似于:
if(timetoloadjquery > n) {
Use fallback local jQuery library.
}
也许是某种检查jQuery是否已定义的循环,如果经过多次迭代,它是not....do吗?
谢谢你的帮助。
发布于 2013-12-11 22:06:51
这可能对你有帮助。经过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>
https://stackoverflow.com/questions/20530855
复制相似问题