Пауза в setInterval во время выполнения

143
06 ноября 2018, 02:00

Возникла такая проблема, функция каждую секунду делает проверку, но если возникает исключение в PHP-коде, мне надо приостановить setInterval на 60 секунд, а после этого восстановить его проверку каждую секунду. Как такое можно реализовать?

function show() { 
  $.ajax({ 
    url: "test.php", 
    cache: false, 
    success: function(data) { 
      $("#content").html(data); 
    } 
  }); 
} 
 
$(document).ready(function() { 
  setInterval('show()', 1000); 
});

Answer 1

Например, возвращать с сервера JSON, в котором, если выброшено исключение isException = true. Пример клиента:

var interval; 
 
function show() { 
  $.ajax({ 
    url: "test.php", 
    cache: false, 
    success: function(data) { 
      let object = JSON.parse(data); 
 
      if (object.isException) { 
        restartInterval() 
      } 
 
      $("#content").html(data.html); 
    }, 
    error: function() { // если выброшена 500, например, ошибка, будет вызван этот метод. 
      restartInterval() 
    } 
  }); 
} 
 
function restartInterval() { 
  clearInterval(interval); 
  setTimeout(() => interval = setInterval(show, 1000), 60000); 
} 
 
$(document).ready(function() { 
  interval = setInterval(show, 1000); 
});

READ ALSO
Как узнать, на чем написан сайт

Как узнать, на чем написан сайт

Как понять, на каком языке написан Web-сайт/Web-страница? Есть специальные ПО или расширения для браузере, что-бы понять, на каком языке написан...

169
Как сделать правильно запрос к базе Laravel?

Как сделать правильно запрос к базе Laravel?

Я хочу сделать правильно фильтр по цене, но выдаёт ошибку

161
Cooldown php json

Cooldown php json

Как через json можно сделать cooldown? Например у меня есть бот ВКонтакте, и команда "бонус", мне нужно сделать так, чтобы при второй отправке команды...

185
База данных для доски объявлений

База данных для доски объявлений

Я хотел-бы посоветоватьсяЕсть сайт - доска объявлений, на котором я проектирую базу данных

179