Пауза для for или пауза между запросами Ajax jQuery

SPavel_74100

Новичок
Версия jQuery 1.7.1

PHP:
function ReadingResult_table(r_tnote)
{
  //var r = 0;
  var numberOfRecords = $("#result_table").getGridParam("records");

  for(i=1;i<=numberOfRecords;i++)
  {
  var rowId = $("#result_table").getRowData(i);
  var tnote = rowId['tnote'];
      if(tnote == r_tnote)
      {
           ajax_Add(rowId['turl']);
      }
  }
}

function ajax_Add(turl)
{
          var onlotstreams = FunLotStreams();  
          var serverAdress = 'main/AddTo.php';
          turl_ = encodeURIComponent(turl);
          pushPOST = 'turl=' + turl_;
          $.ajax({
	type: "POST",
	url: serverAdress,
             cache: false,
	data: pushPOST,
                    dataType: "xml",
                    timeout: 10000,
                    async: onlotstreams,

                    success: function(xml_doc){},
                    	error:  function(xhr, str){}
		  });
}
PHP:
           setTimeout(function() {
           ajax_Add(rowId['turl']);
           }, 15000);
не помогает
 

Adelf

Administrator
Команда форума
Надо посылать все одним скопом.
А уже в 'main/AddTo.php' надо это разруливать.
Т.е. сделать лишь один аякс запрос.

Если я правильно понял конечно проблему. Телепатничаю.
 

SPavel_74100

Новичок
Нужно сделать паузу между запросами либо паузу для вызова фун ajax_Add

PHP:
 setTimeout(function() {
           ajax_Add(rowId['turl']);
           }, 15000);
результата не приносит
 

SPavel_74100

Новичок
Надо посылать все одним скопом.
А уже в 'main/AddTo.php' надо это разруливать.
Т.е. сделать лишь один аякс запрос.

Если я правильно понял конечно проблему. Телепатничаю.
Одним скриптом не устраивает. строка по post получится очень длинная. обрежет
 

Adelf

Administrator
Команда форума
насколько длинная?
Люди огромные файлы грузят постом

SPavel_74100
и да. я знаю как сделать то что ты хочешь. куча аяксов с паузами. Но это неправильный путь.
 

Adelf

Administrator
Команда форума
обработай все в одном серверном скрипте. Сразу же. даже если долго - разрулить и разделить на разные задачи ты должен на сервере, а не на клиенте.
 

SPavel_74100

Новичок
Получится примерно так 1000 строк, сейчас всё работает 1 стока = 2 сек ответа. Математика следующая 1000 * 2 = 2000 / 60 = 33 мин.
То есть предлагаете клиенту 33 мин подождать. даже если на сервере использовать много поточный curl (парсятся данные) и то получится 15 мин ответа.
 

Adelf

Administrator
Команда форума
SPavel_74100
Клиенту надо сказать что процесс пошел. Подождите пожалуйста. И отображать статус процесса.
Что случится если у клиента ненадолго упадет инет?
 

SPavel_74100

Новичок
SPavel_74100
Клиенту надо сказать что процесс пошел. Подождите пожалуйста. И отображать статус процесса.
Что случится если у клиента ненадолго упадет инет?
Немного отойдем от темы, скажите пожалуйста а как отображать статус процесса для каждой строки rowId['turl'] в реальном времени, даже простой счетчик как организовать. Если все в куче?

re Что случится если у клиента ненадолго упадет инет?
Если все в куче то непонятно будет. Что выполнилось а что нет.
 

Adelf

Administrator
Команда форума
Если все в куче то непонятно будет что выполнилось а что нет.
Все выполнится. Оно на сервере будет крутиться и неважно как там клиент.

Мне кажется не хватает вам базовых знаний.
 

SPavel_74100

Новичок
Вы запустите 1000 запросов много поточно на сервере и уведите как там крутится будет
 

Adelf

Administrator
Команда форума
Кто сказал что многопоточно?
Как хотите так и рулите на сервере как выполнять данную задачу. Только клиента к ней не привлекайте.
 

SPavel_74100

Новичок
Я считаю что Ваша и моя точка зрения просто не совпадает.
Решение задачи зависит от потребностей. Ваша точка зрения в полне существует. И я об этом знаю.
Если мне нужно было так сделать, я бы сделал и не беспокоил людей.

Нужно вернутся к теме вопроса.
 

zerkms

TDD infected
Команда форума
SPavel_74100
Ок, к вопросу:

что такое
результата не приносит
?

Ты ставишь в цикле все запросы на один и тот же интервал, "через 15 секунд" и потом удивляешься.

Сам же просил, чтобы запросы разнести на разное время - ну так и укажи разное время для setTimeout()
 

zerkms

TDD infected
Команда форума
Понятно. То есть setTimeout() работает как планировщик а не как sleep в php
Омг, если бы он работал как sleep - тогда у тебя браузер бы залип на неопределённое время и почти наверняка был бы прибит ОСью
 

SPavel_74100

Новичок
Омг, если бы он работал как sleep - тогда у тебя браузер бы залип на неопределённое время и почти наверняка был бы прибит ОСью
СПАСИБО
PHP:
  var frt = 1000; 
  for(i=1;i<=numberOfRecords;i++)
  {
  var rowId = $("#result_table").getRowData(i);
  var tnote = rowId['tnote'];
      if(tnote == r_tnote)
      {
           setTimeout(function() {
           ajax_AddYandex(rowId['turl']);
           }, frt);
           frt = frt + 1000;
      }
  }
 
Сверху