Приветствую всех.
Я уже задавал вопрос здесь по long-polling, но сейчас меня интересует немного другое, больше суток бился, но так и не понял, как избежать проблемы.
Вкратце:
Я реализовал на стороне сервера цикл, который работает не более 30 секунд вне зависимости, имеются новые данные или нет. Так вот, AJAX ожидает ответа от сервера, и если в течение этого ожидания (30 секунд в моем случае) ответ не приходит и попытаться перейти по какой-нибудь ссылке, то браузер переходит в зависшее состояние и, пока не получит ответ, не выполняет указанное ему действие.
Можно, конечно, навешать на все ссылки событие по клику, на которое сработает abort()
, но, мне кажется, это извращенно как-то. Если откровенно, я не до конца понимаю, как работает long-polling, и думаю, в этом моя проблема.
Ребят, какие у вас соображения?
abort()
автоматически, по прошествии 30 секунд. Как только Вы отловилиtimeout
, Вам следует открыть новое соединение.