jQuery CDN超时回退

jQuery CDN timeout fallback

本文关键字:回退 超时 CDN jQuery      更新时间:2023-09-26

我在很多地方读过,如果谷歌、微软或其他公司托管的链接失败,如何在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链接不会失败,而是需要很长时间才能加载(由于外部互联网连接问题)。

我想知道是否有一种方法不仅可以使用这样的回退,还可以为CDN链接设置超时,这样,如果链接需要一定的时间,它就会失败并调用回退。

类似于:

if(timetoloadjquery > n) {
    Use fallback local jQuery library.
}

也许是某种循环,检查jQuery是否已定义,以及在多次迭代后是否未定义。。。。做点别的吗?

谢谢你的帮助。

这可能会对您有所帮助。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>