AJAX цикл с передачей параметра

Выполнить работу какого-либо скрипта с помощью AJAX не составляет особого труда. Но как быть, если необходимо выполнить последовательную передачу параметра и выполнение скрипта с помощью цикла? Из статьи мы узнаем, как правильно использовать цикл в AJAX.

Для чего это может пригодиться? Например у Вас имеется пара сотен тысяч записей, которые Вы хотите обработать на своём сайте. Обработка такого количества с помощью PHP скрипта может занять очень продолжительное время и вызвать ошибку 504 Gateway Timeout, т.е. будет превышен допустимый интервал времени выполнения скрипта. В этом случае лучше будет обрабатывать одну запись в Вашем PHP скрипте, а с помощью AJAX просто передавать необходимые параметры (например, итерацию или ID записи).

Как это работает?

Предполагается, что у Вас уже написан необходимый скрипт на PHP, в который будем последовательно передавать параметры и выполнять его.

Обязательно убедитесь, что у Вас подключена библиотека jQuery. Добавьте следующий код скрипта:

Теперь разберем по порядку. Функция ajaxwithi(i) — это функция, которую мы вызываем по запросу, передавая в нее значение итерации. С помощью url: ‘work.php?params=’+i мы вызываем необходимый нам PHP файл скрипта, передавая необходимые параметры. Тип запроса определяем как GET.

Обратите внимание, что код, описанный в блоке success, будет выполнен только после получения ответа на запрос (в нашем случае мы результат выполнения скрипта выводим в блок с идентификатором #result). Т.е. если произойдет ошибка — код дальше выполняться не будет. В блоке complete описана функция, которая будет выполнена даже при возникновении ошибки выполнения скрипта, поэтому чтобы цикл не прерывался мы добавили вызов функции ajaxwithi(i + 1) с итерацией на единицу больше.

Всё довольно просто. Немного доработав и расширив скрипт, Вы сможете добиться больших результатов. Не забывайте, что помимо итерации Вы также можете передавать в функцию и другие параметры (например, значение, при котором необходимо остановить работу скрипта).

Полезность статьи

Оцените, на сколько полезной оказалась статья.
1 балл2 балла3 балла4 балла5 баллов
Пока оценок нет
Комментарии

Здесь еще никто не оставлял комментарии.

Добавить комментарий

* - поля обязательные для заполнения. E-mail не публикуется.