Задать вопрос

Почему не работает асинхронность Ajax-запроса?

Проявилась следующая проблема: на сайте работает long polling скрипт в виде ajax запроса к серверу с тайм-аутом, по завершению которого все повторяется, в случае success тоже.
Помимо данного скрипта есть еще различные, например, ajax навигация, кнопка отправки сообщения, etc..
Так почему невозможно отправить сообщение, даже уйти со страницы посредством ajax навигации пока исполняется скрипт long-polling (а исполняется он всегда, очевидно) если ajax запрос асинхронный?

Скрипт long polling (jQuery):

function getContent(time_mark)
{
    var queryString = {"time_mark" : time_mark};

    $.ajax(
        {
            type: "GET",
            url: "../server.php",
            data: queryString,
            async: true,
            success: function(data){
                var obj = jQuery.parseJSON(data);
                $("#res").append(obj.text);
                getContent(obj.time_mark);
            }
        }
    );
}

$(function() {
    getContent();
});
  • Вопрос задан
  • 2509 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Ответ написан
Комментировать
@Levhav
Возьмусь за разработку проектов любой сложности.
Вот аналогичная проблема Long Polling тормозит браузер — как это исправить? только с решением.
Ответ написан
Комментировать
@mayorovp
Небольшой совет: вызывайте повторный getContent в обработчике complete, а не success. На ваш же вопрос уже ответили.
Ответ написан
andriy063
@andriy063 Автор вопроса
Спасибо. А как на все вкладки открыть лишь одно активное соединение?
Если можно, с примером...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы