как заставить php ждать секунд между остальными вызовами API - PullRequest
0 голосов
/ 07 декабря 2018

В настоящее время я звоню в API, который возвращает XML!Api, для которого я использую ajax, требует 250 миллисекунд между вызовами, насколько я понимаю, ajax выполняет асинхронные вызовы, поэтому все вызовы отправляются одновременно, как принудительно заставить мой php-скрипт поступить, чтобы ждать 250 миллисекунд вмежду перед отправкой вызова.Я пытался использовать setTimeout в js, который не работал HTML

<div class='grid-item' data-grid='13435'></div>
<div class='grid-item' data-grid='15339'></div>
<div class='grid-item' data-grid='14656'></div>
<div class='grid-item' data-grid='13447'></div>
<div class='grid-item' data-grid='12243'></div>

JS

$(".grid-item").each(function(i) {
  var items = [];
  var prod_id = $(this).attr('data-grid');

  $.ajax({
    type: 'POST',
    url: 'test.php',
    dataType: 'xml',
    data: {
      grid: 'set',
      prod_id: prod_id
    },
    success: function(data) {
      $(data).find('a\\:Inventory').each(function(index, value) {
        var name = $(this).find('Name').html();
        var age = $(this).find('Age').html();

        var display = `
          <div>
            <div class='col-xs-12 text-center no-padding'>
            <div class='col-xs-3 no-padding grid-data-box'>${name} </div>
            <div class='col-xs-3 no-padding grid-data-box'>${age}</div>
          </div>
        `;

        items.push({
          name: name,
          age: age,
        });

        $('[data-grid="'+prod_id+'"]').append(display)  ;
      });

      console.log(items);
    }
  });
});

PHP

if(isset($_POST['grid'])){

echo file_get_contents(file_path) ; 
}

1 Ответ

0 голосов
/ 07 декабря 2018

Поскольку ajax является асинхронным, вы можете разбить запросы ajax, умножив время ожидания на индекс .each().В приведенном ниже примере первая итерация каждого цикла будет иметь время ожидания 500 мс, второе 1000 мс и т. Д.

$(".grid-item").each(function(i) {
    setTimeout(function(){
        // add you ajax code here
    },500 * i);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...