我正在编写一个JavaScript小部件,该小部件旨在用于其他网站,并从我自己的网站加载其他脚本文件(这基本上意味着由于跨域限制而没有XHR)。现在我想正常处理故障 - 如果一个脚本无法加载,我想从备用服务器加载脚本。如何中止从JavaScript加载外部HTML资源?
我设法处理服务器故障,其中第一个服务器返回一个错误,但我也想处理超时 - 如果第一台服务器花费太多时间来响应我想中止负载并切换到备用服务器。
我遇到的问题是,我可以设置一个超时来触发切换到备用服务器的方法,但是备用服务器的脚本不会成功加载,直到浏览器本身在原始请求中超时 - 这对我的需求来说太长了。
我希望能够在加载第一个<脚本标记时中止加载并添加指向备用服务器的第二个<脚本标记。
我已经尝试将原始脚本的src属性设置为null,甚至使用removeNode()从HEAD元素中删除标记,但没有任何效果。
这一切都在Firefox上尝试 - 我还没有尝试过IE,但解决方案必须在两者上都能正常工作。我很乐意听到任何建议。
我想加载第二个脚本来自同一台服务器(无论如何 - 同一主机名 - 它的负载平衡,所以它可能是一个不同的服务器)。这一切都发生在DOMReady和HEAD元素之后,所以它不会延迟页面渲染。BTW“推迟”仅在IE上受支持。 – Guss 2009-03-04 00:34:32