1. 246978 - 10 Октября, 2013 - 14:45:25 - перейти к сообщению
У меня есть JS функция которая в себе выполняет AJAX? так вот эту функцию запускаю несколько раз подряд, как сделать что бы AJAX отработал по очереди и как только закончился первый выполнялся второй и т.д.
2. caballero - 10 Октября, 2013 - 14:47:50 - перейти к сообщению
КО считает что нужно вызывать следующую когда придет ответ от предыдущей
3. 246978 - 10 Октября, 2013 - 14:54:56 - перейти к сообщению
Да, но эту функцию вызываю из другой, где в свою очередь есть цикл который запускает функцию с аяксом, вот и получается что цикл выполняется моментально и сразу много раз запускает аякс, от чего и проб лемма, как в каждой итерации цикла запускать эту функции дождаться когда она отработает и выполнить следующую итерацию
(Добавление)
сейчас сделал, через рекурсию с задержкой времени, задержку ставлю вручную на 1500мс но аякс часто отрабатывает значительно быстрей, нужно так что функция запустилась тогда когда закончилось выполнения первой.
(Добавление)
сейчас сделал, через рекурсию с задержкой времени, задержку ставлю вручную на 1500мс но аякс часто отрабатывает значительно быстрей, нужно так что функция запустилась тогда когда закончилось выполнения первой.
4. nerv - 10 Октября, 2013 - 15:06:36 - перейти к сообщению
246978 пишет:
сделал, через рекурсию с задержкой времени, задержку ставлю вручную на 1500мс
отлично А я сделал без рекурсии и без задержки
5. IllusionMH - 10 Октября, 2013 - 15:06:41 - перейти к сообщению
246978, давайте определимся зачем нужна последовательность, а то это реально фигня получается.
Можно еще заюзать deffered и дождать выполения всех.
Можно в цикле еще формировать массив функций, которые делают запрос. и передавать его в колбэки всем функциям, за исключением текущей выполняющейся.
Вот так изощрение я придумал
Можно еще заюзать deffered и дождать выполения всех.
Можно в цикле еще формировать массив функций, которые делают запрос. и передавать его в колбэки всем функциям, за исключением текущей выполняющейся.
Вот так изощрение я придумал
6. 246978 - 10 Октября, 2013 - 15:21:58 - перейти к сообщению
у меня в урле пришел параметр, а именно количество страниц , которые должен отобразить, каждую страницу загружаю на одной странице в виде списка, так вот если мне пришло 6 т.е. 6 страниц должен подгрузить, но нужно загрузить их последовательно. а не все одновременно, так как результат аякса дополняет таблицу, и если какая-то функция отработает быстрей чем ранее запущенная то заполнит таблицу данными которые не в очереди. но я нашел выход, а именно
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- function more_obj(iteration)
- {
- if(next_list >= max_list)return;
- $('.big_load').show();
- ajax_coplited = 'no';
- next_list = next_list + 1;
- $.ajax({
- url: "/ajax/ajax_catalog.php",
- type: "POST",
- cache: false,
- data: {
- "country_id": $('#country_id').val(),
- },
- success: function(html){
- if(html.length < 10)
- return;
- $("#pages").append(' <a href="#list'+next_list+'" id="list'+next_list+'">'+next_list+'</a>');
- $(".estate__content__wrapper").append(html);
- ajax_coplited = 'yes';
- if(iteration != 0)
- {
- more_obj(iteration - 1);
- }
- else
- {
- get_list()
- return;
- }
- }
- });
- }