为getScript()添加超时

时间:2015-07-30 15:44:14

标签: javascript jquery ajax timeout getscript

我正在使用getScript() JQuery方法,但实际上可以添加超时。有些脚本没有恢复为6-8秒的失败,这太长了。

这可能吗?

我搜索了一下,没有解决方案。

类似的东西:

$.getScript(a + "/myspeed/MySpeedServer/mss/js")
        .done(function() {
            //do stuff
        })
         .fail(function() {
            //do stuff
        });
         .timeout(2000)

2 个答案:

答案 0 :(得分:5)

$.getScript只是$.ajax()的封套。因此,您可以将$.ajax()timeout选项一起使用,如下所示。

$.ajax({
    url: url,
    dataType: "script",
    timeout: 2 * 1000
}).done(function() {
    //do stuff
})
.fail(function() {
    //do stuff
});

the doc的注释:仅在Firefox 3.0+中,超时无法取消脚本和JSONP请求;即使在超时时间之后到达,脚本也会运行。

您也可以将abort()方法用作stated here

答案 1 :(得分:0)

由于getScript不接受超时选项。 您可以使用ajaxSetup方法设置全局超时。

如果全局超时不适用,您可以使用

$.get({
  url: a + "/myspeed/MySpeedServer/mss/js",
  timeout: 5000, // 5 seconds
  dataType: "script"
});