getJSON调用似乎只触发一次?

时间:2011-06-27 16:50:28

标签: jquery getjson

我有一个调用(每10秒)调用下一个函数的setintervall:

function myJSONCall(imgIDs) {
    var href = $('#href_' + imgIDs[0]).attr('href');
    alert("MyJSONCall..." + href);

    $.getJSON("/mvc-ajax/ac/availability", {
        url: href
    }, function(availability) {
        alert("Availabilit=" + availability);
        if (availability == "OK") {
            alert("It's a valid location");
        } else {
            alert("It's an invalid location");
        }
    });
    alert("I left from myJSONCall");
}

我不知道为什么,“getJSON”只触发一次。每隔10秒显示$ .getJSON之间设置的“警报”。那有什么问题?

1 个答案:

答案 0 :(得分:1)

ajax是异步的。在ajax调用返回后移动settimeout(或interval):

function myJSONCall(imgIDs) {
    var href = $('#href_' + imgIDs[0]).attr('href');
    alert("MyJSONCall..." + href);
    $.getJSON("/mvc-ajax/ac/availability", {
        url: href
    }, function (availability) {
        alert("Availabilit=" + availability);
        if (availability == "OK") {
            alert("It's a valid location");
        } else {
            alert("It's an invalid location");
        }
        setTimeout(myJSONCall, 10000); //SET TIMEOUT HERE
    });
    alert("I left from myJSONCall");
}