让我们想象一个网页页面需要加载一个 javascript 文件(即 my.js
)。是否可以组织以下故障转移加载顺序?
- 如果服务器 A 启动,从服务器 A 加载
my.js
。 - 否则,如果服务器 B 已启动,则从服务器 B 加载
my.js
。 - 否则,如果服务器 C 已启动,则从服务器 C 加载
my.js
。 - ...
如果是,如何进行?谢谢。
P.S.:我刚刚找到yepnopejs .有人推荐吗?
最佳答案
我已经看到这种技术允许在 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 explains this in a blog post. .脚本可以以任何顺序并行下载,但它们必须按顺序执行。
关于javascript - 从服务器序列故障转移加载 .js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7448449/