При запросе ajax и попытке перейти по ссылке браузер виснет

Мизантроп777

Новичок
Приветствую Вас Уважаемые форумчане.

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

Ребят, какие у вас соображения?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мизантроп777, соображения, ну я не знаю, заняться отладкой, наверное. А вообще надо подумать, не ипользуются ли в твоем скрипте сессии.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
при том, что она блокирует работу приложения, пока ты ее не закроешь.

Если у тебя 2 Ajax запроса, запускаются один за другим, в первом используется сессия и долгая обработка чего-либо. Второй будет видеть до тех пор, пока ты сессию ему не освободишь
 

Мизантроп777

Новичок
c0dex, Если просто скрипт отправить в сон, то ничего не виснет, а если в нем задать цикл который повторяется каждую секунду на протяжении 30 секунд, то виснет. В чем может быть трабл? Все дело в цикле?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мизантроп777, я знать не знаю что и как ты написал, потому и предложил дебажить) Самый распространенный повод провисания - я уже описал.
 

Мизантроп777

Новичок
c0dex, Вот я глупец, догадывался но почему-то не пробовал так.
Проблема: Прежде чем заработает цикл сервер отправляет заголовки и из-за этого браузер виснет, переместил цикл выше заголовком ответ и все нормально)
 

Мизантроп777

Новичок
c0dex, Огромное спасибо.
Да, действительно вся проблема в сессиях.
Гребанные подводные камни.
А почему сессия блокирует скрипт?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мизантроп777, а чего ты ожидал? Читать-писать туда надо с определенными предосторожностями, чтобы не получить недостоверных данных.
 

Мизантроп777

Новичок
c0dex, Это точно.
Это только на сессии распространяется или же имеются еще какие функции которые блокируют работу скрипта? Например: запросы в БД...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мизантроп777, работу скрипта блокирует что угодно, любая длительная операция, которая вкупе с блокированной сессией приведет к "зависанию". Другое подобное в голову не приходит сейчас.
 
Сверху