我有这个javascript代码:
$(function() {
$("<img>", {
src: "http://urlpath/img.png",
error: function() { alert("error!"); },
load: function() { alert("ok"); }
});
});
它的代码有效,但我需要为此请求设置超时,以避免请求缓慢。
任何建议都将对我充分使用!
谢谢:D
答案 0 :(得分:1)
$(function() {
timedout = false;
var i = $("<img>", {
src: "http://urlpath/img.png",
error: function() { if (!timedout) { timedout = true; alert("error!"); } },
load: function() { timedout = true; alert("ok"); }
});
window.setTimeout(function () { i.trigger('error'); i.remove(); }, 2000);
});
答案 1 :(得分:1)
试试这个:
$(function() {
var timed = false;
var imgTO = setTimeout(function () {
timed = true;
alert("timed out");
}, 2000); // 2 second timeout
$("<img>").on({
error: function() {
clearTimeout(imgTO);
if (!timed) alert("error!");
},
load: function() {
clearTimeout(imgTO);
if (!timed) alert("ok");
}
}).attr("src", "http://urlpath/img.png");
});
答案 2 :(得分:1)
也许你需要:
$.ajax({
url: "test.html",
error: function(){
// will fire when timeout is reached
},
success: function(){
//do something
},
timeout: 3000 // sets timeout to 3 seconds
});
[READ] http://api.jquery.com/jQuery.ajax/
您可以将超时指定为属性。