setTimeout заблокирован непрерывными запросами AJAX?

Я исправляю проблему в веб-приложении, которое использует setTimeout для информирования серверной части о том, что сеанс остается активным. Это работает, как и ожидалось, во всех сценариях, за исключением следующего:

SetTimeout не запускается, пока происходит синхронная передача сообщений AJAX.

Я понимаю, что может быть задержка для запуска setTimeout какJavaScript однопоточный и должен ждать одну задачу для завершения.

У меня вопрос: почему setTimeout вообще не запускается? Почему он запускается в конце всех запросов AJAX, а не между ними?

Это моя функция keepAlive

function keepAlive() {
    var img = new Image(1, 1);
    img.src = "google.com" + '?' + new Date();

    timer = setTimeout(function () {
        keepAlive();
    }, 10000);
}

Я создал быстрый и грязныйдемонстрация моей проблемы в jsfiddle.

Заранее спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос