Действие после выполнение Ajax запроса
Я с помощью Ajax отправляю данные php скрипту и последний после обработки данных даёт ответ. Необходимо, чтобы страница ждала ответа и в зависимости от него производились действия. Подскажите, как этого добиться?
У jQuery.ajax() есть два на мой взгляд подходящих кандидата: complete и success. Чтение документации мне не помогло понять, какой их них будет ждать ответа от скрипта, а какой запустится сразу после корректной отправки запроса. Правильно ли я понял, что именно этим они отличаются? |
success будет вызван только при успешном запросе. А complete - при любом исходе. Допустим у юзера во время запроса отвалится интернет-соединение. Или твой сервер из-за косяка твоего хостера уйдет в аут. При таких обстоятельствах будет вызван error колбэк, а затем - complete.
|
Запрос ушёл, а как узнать что ответ пришёл? Предположим, что скрипту надо 30 секунд и потом он выдаёт результат. Пинговать каждую секунду что-ли?
|
А этот курительный callback сам как работает? Пингует?
|
Цитата:
|
Возникли ещё вопроса по Ajax.
Читал рекомендации использовать метод пересылки GET, так как он работает быстрее. Насколько быстрее? Какой максимальный объём данных может быть передан? Если передаются русские буквы, то они кодируются 4 байтами? |
Цитата:
|
Цитата:
|
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, если он тормозной? |
Цитата:
|
Цитата:
|
Цитата:
|
Мне ранее в этой теме сказали: «буквально моментальный т.к. стандарт рекомендует брать данные из кэша браузера а не отправлять запрос на сервер.» Потому я и стал спрашивать.
А как лучше передавать без увеличения и тормозов? Я сейчас собираю данные из формы с помощью serialize и передаю через POST. Но serialize всё равно кодирует некоторые символы. Есть ли способ лучше? |
paveltkachev,
У пост запроса помимо параметров (которые аналагичны параметрам гет запроса) есть ещё тело. Почитайте, его не надо кодировать. |
Это я понял. Как будет передаваться быстрее: сериализация и всё через один POST или через множество без сериализации?
|
на мой взгляд (честно говоря никогда не тестировал скорость запросов) это экономия на спичках. Скорости запросов должны быть примерно равны и упираться в скорость соединения с сервером. Все остальное +- 10 мс (максимум)
|
paveltkachev,
Зачем вы все время это спрашиваете? Чем спрашивать провели бы пару тестов. Напишите запросы которые передают текущее время и кучу данных, на сервере принимаете и сравниваете дифф времени (понятное дело что на клиенте и сервере время может отличаться так что цифры эти примерные). Так запросов 100, и то же самое для второго типа. Где среднее арифметическое меньше - там и быстрее |
Не думаю что кто-то выбирает между гет и пост запросом исходя из скорости. Пост запрос нуже для повышения безопасности прежде всего.
|
Цитата:
|
ТС, инфа 100%, что тебе вряд ли понадобится учитывать разницу в скорости или ещё чём-то. И вряд ли у тебя будут пересылаться данные размером ~4гига. Просто, у тебя болезнь преждевременной оптимизации, я прав?)
|
danik.js,
Цитата:
fix |
Цитата:
|
melky,
ась? :) |
Цитата:
когда промисы появлялись, были дикие срачи по поводу того, лучше ли это , чем деферед, и зачем оно вообще нужно. но потом А+ промисы утвердили как стандарт и лалки соснули) с того времени у меня в голове алиас : деферед - плохо, промис - хорошо) конкретно к этой теме не сильно относится , конечно, так что мой пост - оффтоп :) |
Часовой пояс GMT +3, время: 13:01. |