Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Как перезагрузить страницу по времени?
fandorin_official
@fandorin_official
Герой серии исторических детективов.

Как перезапустить XMLHTTPRequest запрос?

Есть кусочек скрипта, который делает XMLHTTPRequest запрос. Время от времени, сервер, обрабатывающий запрос "подвисает". И тогда скрипт зависает. Приходится ручками перезапускать.

Как можно усовершенствовать XMLHTTPRequest запрос, чтобы в случае чего (в случае отсутствия ответа от сервера) от перезапукался.

Изначально код вот такой:
var xhr = new XMLHttpRequest();
xhr.open('GET', diceLink);
xhr.onreadystatechange = function() {
            if (xhr.readyState == 4){
                r=xhr.responseText;      
            }
 
        };
        xhr.send()
  • Вопрос задан
  • 229 просмотров
Подписаться 1 Простой
Ответы на вопрос 3
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
var timeout;

function send() {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', diceLink);
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4){
      clearTimeout(timeout);
      r = xhr.responseText;      
    }
  };
  xhr.send();

  // ждем 10 сек... не лучшее решение, но как ещё — хз.
  timeout = setTimeout(function(){
    xhr.abort(); // Останавливаем
    send();      // Запрашиваем снова
  }, 10000);
}

send();
Ответ написан
bootd
@bootd
Гугли и ты откроешь врата знаний!
а ответ какой-то же должен всё равно придти, что сервер не отвечает!! Вот на него и ориентируйтесь. Если сервер не отвечает, то заново запускайте скрипт
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы