Вызов getJSON срабатывает только один раз? - PullRequest
0 голосов
/ 27 июня 2011

У меня есть setintervall, который вызывает (каждые 10 с) следующую функцию:

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 запускается только один раз.Оба «оповещения», установленные между $ .getJSON, показываются каждые 10 секунд.Так в чем же проблема?

1 Ответ

1 голос
/ 27 июня 2011

AJAX асинхронный.переместите установленное время (или интервал) после возврата вызова ajax:

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");
}
...