Перейти к содержимому


Асинхронное выполнение последовательных $.ajax


  • Вы не можете ответить в тему
Сообщений в теме: 4

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 October 2012 - 07:33 PM

Понадобилось тут мне последовательное выполнение нескольких $.ajax запросов, каждый из которых требует полного выполнения предыдущего, т.е. получения ответа. Например, такое надо при создании модуля "заказ на одной странице", но у меня задача другая.

Как-то можно сделать эту процедуру не многократно вложенной (следующий запрос вкладывается в функцию обработки ответа от предыдущего), а линейной, по семафорам, т.е. чтобы следующая функция $.ajax (следущий запрос) выполнялась только после того, как в функции обработки предыдущего ответа поставлен какой-нибудь семафор-флаг?

Или в JS в такой многократной вложенности (кто будет разбирать код - застрелится) нет ничего страшного, нормальное явление?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 08 October 2012 - 08:23 PM

присваивать пременным значения выполнения операции, а не посылать на выполнение

	   var orders_count = $.ajax({url: "/index.php?do=new_orders_count", cache:false, async:false, dataType : "text",}).responseText;

  • 0
Изображение Изображение Изображение

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 October 2012 - 08:45 PM

эээ... т.е. вот при таком исполнении order_count получит содержимое ответа сервера? Хотя что я, спасибо за идею, дальше уж сам прочитаю!
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 08 October 2012 - 08:46 PM

эээ... т.е. вот при таком исполнении order_count получит содержимое ответа сервера?

так и есть :)
  • 0
Изображение Изображение Изображение

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 October 2012 - 08:56 PM

(ворчливо) [тут непечатно]ять, [аналогично]уко, читайте нормальные первоисточники :(. Ну есть же ажно на русском описание JQUERY (http://jquery-docs.ru/), в том числе и функций AJAX (http://jquery-docs.ru/Ajax/), а также конкретно $.ajax (http://jquery-docs.r...ax/jQuery.ajax/). Ну вот хренли бы мне их не почитать сразу? Цитата:
--------
$.ajax() возвращает объект XMLHttpRequest. В большинстве случаев Вам не понадобится работать непосредственно с этим объектом, но он все же доступен, в случае, если Вам необходимо прервать запрос вручную.
---------------
Спасибо за указание направления :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)