setInterval делает асин c ajax функцию перестать работать - PullRequest
1 голос
/ 21 февраля 2020

Проблема в том, что работает только моя первая updateProgress функция, пока syncDNS ожидает. Все остальные вызовы, сделанные через setInterval, продолжают ждать, пока syncDNS не будет завершен. Почему это?

$("#syncDNS").click(function() {
  $('#status').html("");
  $('#status').addClass('loading');

  function updateProgress() {
    $.ajax({
      type: 'POST',
      url: 'index.php?action=checkProgress',
      datatype: 'text',
      async: 'true',
      success: function(data) {
        $('#status').html(data);
      }
    });
  }

  $.ajax({
    url: 'index.php?action=sync',
    async: 'true',
    success: function(response) {
      clearInterval(loop);
      $('#status').removeClass('loading');
      if (response) {
        $('#status').addClass('alert alert-warning').html("<h4>Aviso</h4>" + response);
      } else {
        $('#status').addClass('alert alert-success').html("<h4>Sucesso</h4>" + "DNS sincronizado com sucesso!");
      }
    }
  });

  updateProgress();

  var loop = setInterval(function() {
    updateProgress();
  }, 1000);
});

1 Ответ

0 голосов
/ 21 февраля 2020

Удалить clearInterval (l oop); тогда он будет работать снова и снова.

  $.ajax({
  url: 'index.php?action=sync',
  async: 'true',
  success: function(response) {
    //clearInterval(loop);
    $('#status').removeClass('loading');
    if (response) {
     $('#status').addClass('alert alert-warning').html("<h4>Aviso</h4>" + response);
    } else {
    $('#status').addClass('alert alert-success').html("<h4>Sucesso</h4>" + "DNS 
      sincronizado com sucesso!");
    }
   }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...