如何通过javascript测试URL是否是带有超时的图像请求的有效图像?

时间:2013-05-03 18:47:33

标签: javascript jquery image

我有这个javascript代码:

$(function() {
    $("<img>", {
        src: "http://urlpath/img.png",
        error: function() { alert("error!"); },
        load: function() { alert("ok"); }
    });
});

它的代码有效,但我需要为此请求设置超时,以避免请求缓慢。

任何建议都将对我充分使用!

谢谢:D

3 个答案:

答案 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/

您可以将超时指定为属性。