为 getScript() 添加超时
Add a timeout to getScript()
我正在使用 getScript()
JQuery 方法,但确实可以添加超时。有些脚本在 6-8 秒内不会返回失败状态,这太长了。
这可能吗?
我搜索了一下,没有找到解决方案。
类似于:
$.getScript(a + "/myspeed/MySpeedServer/mss/js")
.done(function() {
//do stuff
})
.fail(function() {
//do stuff
});
.timeout(2000)
$.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。
因为 getScript
不接受超时选项。
您可以使用 ajaxSetup
方法来设置全局超时。
如果全局超时不适用,您可以使用
$.get({
url: a + "/myspeed/MySpeedServer/mss/js",
timeout: 5000, // 5 seconds
dataType: "script"
});
我正在使用 getScript()
JQuery 方法,但确实可以添加超时。有些脚本在 6-8 秒内不会返回失败状态,这太长了。
这可能吗?
我搜索了一下,没有找到解决方案。
类似于:
$.getScript(a + "/myspeed/MySpeedServer/mss/js")
.done(function() {
//do stuff
})
.fail(function() {
//do stuff
});
.timeout(2000)
$.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。
因为 getScript
不接受超时选项。
您可以使用 ajaxSetup
方法来设置全局超时。
如果全局超时不适用,您可以使用
$.get({
url: a + "/myspeed/MySpeedServer/mss/js",
timeout: 5000, // 5 seconds
dataType: "script"
});