Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Действие после выполнение Ajax запроса (https://javascript.ru/forum/jquery/52525-dejjstvie-posle-vypolnenie-ajax-zaprosa.html)

paveltkachev 23.12.2014 10:52

Действие после выполнение Ajax запроса
 
Я с помощью Ajax отправляю данные php скрипту и последний после обработки данных даёт ответ. Необходимо, чтобы страница ждала ответа и в зависимости от него производились действия. Подскажите, как этого добиться?

У jQuery.ajax() есть два на мой взгляд подходящих кандидата: complete и success. Чтение документации мне не помогло понять, какой их них будет ждать ответа от скрипта, а какой запустится сразу после корректной отправки запроса. Правильно ли я понял, что именно этим они отличаются?

danik.js 23.12.2014 11:05

success будет вызван только при успешном запросе. А complete - при любом исходе. Допустим у юзера во время запроса отвалится интернет-соединение. Или твой сервер из-за косяка твоего хостера уйдет в аут. При таких обстоятельствах будет вызван error колбэк, а затем - complete.

paveltkachev 23.12.2014 14:16

Запрос ушёл, а как узнать что ответ пришёл? Предположим, что скрипту надо 30 секунд и потом он выдаёт результат. Пинговать каждую секунду что-ли?

paveltkachev 23.12.2014 16:08

А этот курительный callback сам как работает? Пингует?

danik.js 23.12.2014 17:22

Цитата:

Сообщение от paveltkachev
Пингует?

HTTP протокол работает по схеме запрос-ответ. Так что не нужно ничего пинговать. Отправили запрос - получили ответ. Для $.ajax это complete/success/error либо промисы (Deferred).

paveltkachev 23.12.2014 18:20

Возникли ещё вопроса по Ajax.

Читал рекомендации использовать метод пересылки GET, так как он работает быстрее.
Насколько быстрее?
Какой максимальный объём данных может быть передан?
Если передаются русские буквы, то они кодируются 4 байтами?

MallSerg 23.12.2014 18:36

Цитата:

Сообщение от paveltkachev
пересылки GET, так как он работает быстрее.

буквально моментальный т.к. стандарт рекомендует брать данные из кэша браузера а не отправлять запрос на сервер.

paveltkachev 24.12.2014 11:15

Цитата:

Сообщение от MallSerg (Сообщение 347921)
буквально моментальный т.к. стандарт рекомендует брать данные из кэша браузера а не отправлять запрос на сервер.

А какой объём данных можно передавать? До IE 9, я слышал можно было только несколько килобайт.

paveltkachev 24.12.2014 11:21

Max URI length in IE8 is 32KB. In IE9+ JavaScript files are supported too and the maximum size limit set to 4GB.

Остальные браузеры тоже до 4 GB принять могут?

А зачем вообще тогда нужен метод POST, если он тормозной?

MallSerg 24.12.2014 13:01

Цитата:

Сообщение от paveltkachev
А зачем вообще тогда нужен метод POST, если он тормозной?

бред сивой кобылы (сори за прямоту)


Часовой пояс GMT +3, время: 18:29.