javascript - 从服务器序列故障转移加载 .js?

标签 javascript loading failover

让我们想象一个网页页面需要加载一个 javascript 文件(即 my.js)。是否可以组织以下故障转移加载顺序?

  1. 如果服务器 A 启动,从服务器 A 加载 my.js
  2. 否则,如果服务器 B 已启动,则从服务器 B 加载 my.js
  3. 否则,如果服务器 C 已启动,则从服务器 C 加载 my.js
  4. ...

如果是,如何进行?谢谢。

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. .脚本可以以任何顺序并行下载,但它们必须按顺序执行。

Here is a fiddle that demonstrates

关于javascript - 从服务器序列故障转移加载 .js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7448449/

相关文章:

javascript - 数组的子数组

javascript - 在 <a href ="form.submit();"> 中提交表单

javascript - 如何在 Highchart 中根据百分比给出颜色 - JavaScript

android - 如何制作默认的Android加载器动画?

caching - Redis 故障转移和分区?

javascript - 选择所有带有文本链接 : Errors 的复选框

python - 在执行其他任务时预加载 HDF5 文件的一部分

javascript - 在javascript循环中声明变量每次点击都会为声明的变量分配相同的值

caching - 将 session 信息存储在 Redis 集群中是否安全高效

sql-server - Azure VM 可用性、镜像