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
Форумы портала PHP.SU :: Версия для печати :: AJAX очередь загрузки
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » AJAX очередь загрузки

Страниц (1): [1]
 

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мс но аякс часто отрабатывает значительно быстрей, нужно так что функция запустилась тогда когда закончилось выполнения первой.
4. nerv - 10 Октября, 2013 - 15:06:36 - перейти к сообщению
246978 пишет:
сделал, через рекурсию с задержкой времени, задержку ставлю вручную на 1500мс

отлично Браво А я сделал без рекурсии и без задержки Закатив глазки
5. IllusionMH - 10 Октября, 2013 - 15:06:41 - перейти к сообщению
246978, давайте определимся зачем нужна последовательность, а то это реально фигня получается.
Можно еще заюзать deffered и дождать выполения всех.
Можно в цикле еще формировать массив функций, которые делают запрос. и передавать его в колбэки всем функциям, за исключением текущей выполняющейся.

Вот так изощрение я придумал Ниндзя
6. 246978 - 10 Октября, 2013 - 15:21:58 - перейти к сообщению
у меня в урле пришел параметр, а именно количество страниц , которые должен отобразить, каждую страницу загружаю на одной странице в виде списка, так вот если мне пришло 6 т.е. 6 страниц должен подгрузить, но нужно загрузить их последовательно. а не все одновременно, так как результат аякса дополняет таблицу, и если какая-то функция отработает быстрей чем ранее запущенная то заполнит таблицу данными которые не в очереди. но я нашел выход, а именно
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function more_obj(iteration)
  3. {
  4.    if(next_list >= max_list)return;
  5.    
  6.    $('.big_load').show();
  7.    
  8.     ajax_coplited = 'no';
  9.     next_list = next_list + 1;
  10.    
  11.     $.ajax({
  12.     url: "/ajax/ajax_catalog.php",
  13.     type: "POST",
  14.     cache: false,
  15.     data: {
  16.         "country_id": $('#country_id').val(),
  17.     },
  18.     success: function(html){
  19.             if(html.length < 10)
  20.                 return;
  21.             $("#pages").append(' <a href="#list'+next_list+'" id="list'+next_list+'">'+next_list+'</a>');
  22.             $(".estate__content__wrapper").append(html);
  23.             ajax_coplited = 'yes';
  24.             if(iteration != 0)
  25.             {
  26.                 more_obj(iteration - 1);
  27.             }
  28.             else
  29.             {
  30.                 get_list()
  31.                 return;
  32.             }
  33.         }
  34.     });
  35. }
  36.  
7. caballero - 10 Октября, 2013 - 15:34:11 - перейти к сообщению
а зачем одновременно грузить 6 страниц? показывается то одна в каждый момент врмни
8. 246978 - 10 Октября, 2013 - 15:40:10 - перейти к сообщению
это не пеженация, а динамический погрузка, и если я подгрузил 6 страниц и хочу передать ссылку, с указанием на страницу 5, то у пользователя который получил эту ссылку должно подгрузиться 6 страниц, после чего скрол опустим на нужную страницу ,а именно на 5
9. caballero - 10 Октября, 2013 - 15:42:31 - перейти к сообщению
ну так собери это все на сервере и передай целиком.

удивляюсь некоторым - использовать аякс только для того чтобы найти себе проблемы на заднее место.
10. nerv - 10 Октября, 2013 - 19:41:47 - перейти к сообщению
caballero пишет:
ну так собери это все на сервере и передай целиком.

удивляюсь некоторым - использовать аякс только для того чтобы найти себе проблемы на заднее место

надо обязательно делать запросы на сервер. Чем больше - тем лучше )

246978 пишет:
это не пеженация, а динамический погрузка, и если я подгрузил 6 страниц и хочу передать ссылку, с указанием на страницу 5, то у пользователя который получил эту ссылку должно подгрузиться 6 страниц, после чего скрол опустим на нужную страницу ,а именно на 5

а если 100, то 100 Улыбка

 

Powered by ExBB FM 1.0 RC1