有没有办法取消/停止/中止getScript调用?

时间:2014-03-05 18:48:32

标签: javascript jquery

所以,我一直在寻找并且似乎没有办法实际中止/取消/停止脚本调用。

我发现必须使用延迟加载来解决对第三方的无响应脚本调用有点奇怪。使用json / ajax,确定我可以暂停它 - 太棒了。但是通过脚本调用,没有这样的运气。我认为jQuerys $ .getScript会允许这样的行为。没有?

我希望完成的任务:取消阻止js调用。

不能像这样的工作吗?

var getScript = $.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
     //
});

var exitOut = setTimeout(function(){
    getScript.abort();
},2000)

从我一直在阅读的“脚本”请求不能在中间步骤中止。

但是,因为getScript只是一个ajax调用,所以我希望超时也适用于此处。但是我的一些测试并没有证明这一点?

除了延迟加载之外的任何其他解决方案?

1 个答案:

答案 0 :(得分:6)

  

但是,因为getScript只是一个ajax调用,所以我希望超时也适用于此。

实际上,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);
});