ПРинудительная остановка Ajax запроса
Всем привет. Нем могу нати решение.
Есть кнопка, по нажатию на котоую происходит ajax запрос. Собственно если кликать 10 раз вподрят, идет 10 запросов. Это мне очень не нравится. так как иногда какой-то один не прохоит, и я получаю ошибку. Можно ли останавливать заведомо известные, выполняющиеся запросы аякса? Например у меня выполняется 2 разных запроса, один из них мне надо по клику стопорнуть и не получать результат. Как так сделать? |
xhr.abort(); |
Спасибо. но если через jquery тогда я нашел такой параметр
async:false, То что нужно |
Цитата:
|
Suharik,
ОМГ, вы чего? Что в jQuery аборта нету? |
Цитата:
var jqxhr = $.ajax({......}); jqxhr.abort(); |
Цитата:
|
trikadin,
Ага, трындец ) |
Я не напутал. Мне просто подошел вариант с тем что я не останавливаю запрос а просто недаю выполнятся одновременно 2-3-4-5 запросам. все попорядку. Один получил ответ, запускается второй.
С абортом не ковырялся, сказать ничего не могу. |
Suharik,
async:false,вешает браузер на время запроса, не лучший вариант это юзать. |
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, время: 04:32. |