gpt4 book ai didi

Javascript: "Cancelling"动态脚本标签?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:28 24 4
gpt4 key购买 nike

我使用动态脚本标签从外部域请求 javascript。有时请求花费的时间太长;如果请求花费的时间太长,是否可以停止请求或超时?

我不想使用 xmlhttprequest,因为我想避免必须使用服务器端代理。

谢谢!

最佳答案

话虽如此,动态添加脚本有多种方法,一种方法是附加 <script>。当 DOM 准备好时节点到文档的主体,然后如果加载时间过长则将其删除..

   <html>
<head>
<title>bla</title>
<script type="text/javascript">
function init(){
var max_time = 2000 //in milliseconds
g_script_url = "http://yoursite.net/script.js";
var script = document.createElement("script");
script.setAttribute("src",script_url);
script.setAttribute("type","text/javascript");
document.body.appendChild(script);

g_timeout=setTimeout(function(){
var scripts = document.getElementsByTagName("script");
for (var i=0; i < scripts.length; i++ ){
if (scripts[i].src == script_url){
document.body.removeChild(scripts[i]);
}
}
},max_time);
}

window.addEventListener("DOMContentLoaded", init, false);
</script>
</head>
<body>bla bla [...]</body>
</html>

然后可以在动态加载的脚本末尾添加一条清除超时的指令:

/* end of http://yoursite.net/script.js's code */
clearTimout(g_timeout);

注意:

document.addEventListener 在 IE 中不起作用,如果你想要跨平台解决方案,请使用 Jquery 的方法 $(document).ready或者看看 Document ready equivalent without JQuery

关于Javascript: "Cancelling"动态脚本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247611/

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