【发布时间】:2023-04-11 14:46:01
【问题描述】:
我已经在多个地方阅读了如果由 google 或 microsoft 或其他托管的链接失败,如何回退到 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 是否已定义,如果经过如此多的迭代后仍未定义...做其他事情?
感谢您的帮助。
【问题讨论】:
-
(我从来不理解 CDN 的事情。额外的 DNS 查找,额外的下载,仍然需要后备。)
-
A
<script src>正在阻塞,因此下一个<script>将知道是否加载了前一个脚本。不需要超级超级慢的超时。 -
onerror=和onload=中的<script src>怎么样? -
下载后按顺序执行。下一个脚本块只有在前一个脚本块下载并执行(或失败)后才会执行。
标签: javascript jquery fallback