让我们想象一个网页需要加载一个 javascript 文件(即my.js
)。是否可以组织以下故障转移加载顺序?
- 如果服务器 A 已启动,则加载
my.js
来自服务器A。
- 否则,如果服务器 B 已启动,则加载
my.js
来自服务器 B。
- 否则,如果服务器 C 已启动,则加载
my.js
来自服务器C。
- ...
如果是,如何进行?谢谢。
PS:我刚刚发现耶普诺佩斯 http://yepnopejs.com/。有人推荐吗?
我见过这种技术可以在 CDN 宕机时进行回退。
如果您的 js 文件具有一些可测试的属性,例如全局变量(我将其称为标记),您可以尝试从服务器 A 加载文件,测试标记,如果未找到脚本,则再次尝试。
<script type="text/javascript" src="http://server_A.tld/my.js"></script>
<script type="text/javascript">
if( !window.marker ) {
document.write(
'<script type="text\/javascript" src="http:\/\/server_B.tld\/my.js"><\/script>'
);
}
</script>
更新
使用此技术运行所有脚本都没有危险。约翰·雷西格 (John Resig) 在博客文章中解释了这一点。 http://ejohn.org/blog/degrading-script-tags/。脚本可以以任意顺序并行下载,但它们must按顺序执行。
这是一个小提琴,演示了 http://jsfiddle.net/HaNGR/2/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)