gpt4 book ai didi

javascript - 如何从 JavaScript 中止加载外部 HTML 资源?

转载 作者:行者123 更新时间:2023-11-29 22:43:42 24 4
gpt4 key购买 nike

我正在编写一个 JavaScript 小部件,它旨在用于其他网站并从我自己的网站加载额外的脚本文件(由于跨域限制,这基本上意味着没有 XHR)。现在我想优雅地处理失败 - 如果一个脚本加载失败,我想从备用服务器加载脚本。

我设法处理了第一台服务器返回错误的服务器故障,但我也想处理超时 - 如果第一台服务器响应时间太长,我想中止加载并切换到备用服务器。

我遇到的问题是我可以设置一个超时来触发切换到备用服务器的方法,但是备用服务器的脚本不会成功加载,直到浏览器本身在原始请求上超时 - 这对我的需求来说太长了。

我希望能够在加载第一个 <script> 标记时中止加载,并添加指向备用服务器的第二个 <script> 标记。

我试过将原始脚本的 src 属性设置为 null,甚至使用 removeNode() 从 HEAD 元素中删除标签,但没有效果。

这一切都在 Firefox 上尝试过 - 我还没有尝试过 IE,但解决方案必须适用于两者。我很想听听任何建议。

最佳答案

很遗憾,无法取消标签请求。从历史上看,浏览器只允许同时对一个主机名发出 2 个请求,因此应该可以从另一台服务器加载第二个脚本。

是否在 body.onload 之前启动脚本加载?对于正常的页面加载,浏览器在继续之前等待每个脚本加载,因为脚本可以更改文档。如果脚本未修改文档,您可以使用 defer 属性,以便浏览器在脚本加载时继续呈现文档。

jQuery 有一些关于类似功能的公开请求: http://dev.jquery.com/ticket/1863 http://dev.jquery.com/ticket/3442

关于javascript - 如何从 JavaScript 中止加载外部 HTML 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com