我正在编写一个 JavaScript 小部件,它旨在用于其他网站并从我自己的网站加载其他脚本文件(由于跨域限制,这基本上意味着没有 XHR)。现在我想优雅地处理故障 - 如果一个脚本无法加载,我想从备用服务器加载脚本。
我设法处理了第一台服务器返回错误的服务器故障,但我也想处理超时 - 如果第一台服务器响应时间过长,我想中止负载并切换到备用服务器。
我遇到的问题是我可以设置超时来触发切换到备用服务器的方法,但是在浏览器本身对原始请求超时之前,来自备用服务器的脚本不会成功加载 - 这也是渴望我的需要。
我希望能够 - 当第一个 <script> 标记正在加载时 - 中止加载,并添加第二个 <script> 指向备用服务器的标记。
我尝试将原始脚本的 src 属性设置为 null,甚至使用 removeNode() 从 HEAD 元素中删除标签,但没有效果。
这一切都在 Firefox 上尝试过——我还没有尝试过 IE,但解决方案必须在两者上都有效。我很想听听任何建议。