devote,
Я помню когда Одноклассники юзали GWT и синхронные запросы. Я долго смеялся. |
Цитата:
|
Пытаюсь прервать ajax запрос abort'ом, и, передача данных останавливается, но аякс все равно ждёт ответ от сервера.
Как сделать, чтобы он не ждал ответа от сервера? |
qwerty13,
Это как? Не закрывается соединение? Как вы это видите? Какой браузер? Почему ваш сервер не реагирует на закрытие соединения? |
Цитата:
js: var id = false; function ajax(q){ if ( id ) id.abort(); id = $.post(url,{to:q},function(d){alert(d);}); } $('#button').live('click',function(){ ajax('qwe'); return false;}) php: <?php sleep(5); exit('ok'); ?> Если нажать на кнопку то аякс отправит запрос... Если ещё раз нажать на кнопку, то запрос (вроде бы как) прерывается и аякс создаёт новый запрос, но время ожидания уже около 10 сек. Если ещё раз нажать, то ждать будет около 15 сек и т.д. Это хорошо видно в мозилле с помощью Firrebug'а, (+такое же в опере, в остальных браузерах не знаю). А сервер у меня Denwer. |
qwerty13,
Тут проблема серверного кода. Не знаю как php работает, но предполагаю, что когда соединение прекращается, а скрипт всё ещё спит, он не выводится из сна. То есть он в любом случае ждёт эти пять секунд. А так как на Апаче запросы становятся в очередь, то с каждым новым запросом ждёте время предищуего исполнения скрипта, плюс нового. Как то так. |
Nekromancer,
Значит если скрипт будет выводить результат за (например) 0.03 сек., то в независимости от скорости интернета у пользователя и объёма возвращаемых скриптом дынных, следующий запрос аякса будет проходить нормально (без задержек)!? |
qwerty13,
Ну задержкой как раз будет скорость интернета и объем передаваемых данных по нему. Так же скорость отрисовки на его компьютере. |
Часовой пояс GMT +3, время: 06:30. |