所以,我一直在寻找,但似乎没有一种方法可以在执行脚本调用后实际中止/取消/停止脚本调用。
我发现必须使用延迟加载来解决对第三方的非响应脚本调用有点奇怪。使用 json/ajax,确保我可以在其上超时 - 太棒了。但是通过脚本调用,就没有这样的运气了。我认为 jQuerys $.getScript 会允许这种行为。没有?
我希望完成的事情:取消阻塞的 js 调用。
这样的东西行不通吗?
var getScript = $.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
//
});
var exitOut = setTimeout(function(){
getScript.abort();
},2000)
根据我一直在阅读的内容,“脚本”请求不能中途中止。
但是,由于 getScript 只是一个 ajax 调用,我希望超时也适用于此。但我的一些测试并未证实这一点?
除了延迟加载还有其他解决方案吗?
最佳答案
BUT, since getScript is just an ajax call, I was hoping that timeout could also apply here.
实际上, getScript
做 not use XHR but a <script>
element .因此,abort
不工作,timeout
ajax
选项两者都不做。
您最好先通过 XHR 加载脚本,然后 manually evaling它:
$.ajax({
url: "ajax/test.js",
dataType: "text",
timeout: 2000
}).done(function(str) {
$.globalEval(str);
});
关于javascript - 有什么方法可以取消/停止/中止 getScript 调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206566/