为getScript()添加超时

Dan*_*mer 0 javascript ajax jquery timeout getscript

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

这可能吗?

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

就像是:

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

lsh*_*tyl 5

$.getScript只是一个包装$.ajax().因此,你可以使用$.ajax()timeout下面的选项.

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

来自文档的说明:仅在Firefox 3.0+中,脚本和JSONP请求不能被超时取消; 即使脚本在超时期限后到达,脚本也会运行.

您也可以使用此处所述的abort()方法.

  • 请注意,文档有一些警告,并非所有浏览器都会为脚本提供"超时"功能 (2认同)