Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: асинхронный ajax запрос с остановкой кода
Поскольку запрос асинхронный, то код после отправки запроса продолжает свою работу и ф-ция freeEmail : function(input) завершает свою работу. Мне же надо, чтобы во время отправки ajax запроса код дождался, когда аякс запрос закончится и выполнится ф-ция complete: function (data) и код продолжит выполняться. Для этого есть параметр async : false, но он вешает браузер, точнее страница не реагирует на действия пользователя пока ajax не выполнится и создается впечатление, что браузер повис. Если бы запрос выполнялся быстро, то черт с ним, но запрос длится секунды 2/3 и все виснет на это время. Как быть?Отредактировано модератором: armancho7777777, 08 Августа, 2013 - 12:39:57 Уважайте участников конференции, форматируйте код должным образом.
DelphinPRO
Отправлено: 08 Августа, 2013 - 11:57:01
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
могу ошибаться, но по-моему никак. либо "подвисание", либо переписать код, чтобы он работал по событиям
----- Чем больше узнаю, тем больше я не знаю.
esterio
Отправлено: 08 Августа, 2013 - 12:15:41
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
никак. на то он и асинхронный. он продолжает испольнятся. сделайте его не ассихронним. тогда JS будет дожидатся окончания запрося
IllusionMH
Отправлено: 08 Августа, 2013 - 12:34:36
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Pavelbeginner, перенести оставшийся код функции в обработчик ответа.
tuareg
Отправлено: 08 Августа, 2013 - 14:40:08
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
IllusionMH пишет:
перенести оставшийся код функции в обработчик ответа.
Не прокатит.
По теме, см $.Deferred();
armancho7777777
Отправлено: 08 Августа, 2013 - 15:00:19
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
tuareg пишет:
Не прокатит.
Почему ?
tuareg
Отправлено: 08 Августа, 2013 - 15:26:48
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
armancho7777777 пишет:
Почему ?
Хотя может я и ошибся. Надо попробовать. Но все равно лучше, чтобы возвращался $.Deferred();
Что то типа
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.