Показать сообщение отдельно
  #2 (permalink)  
Старый 18.12.2017, 20:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,596

Если код именно такой, какой приведён здесь, то:
1. С запросами всё в порядке, память должна нормально со временем освобождаться.
2. xhrTimeout будет падать с ошибкой, ибо не видит никакого "xhr".

Можете попробовать переиспользовать один и тот же запрос, чтоб наверняка:
var infoRequest = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
infoRequest.onreadystatechange = function() {
  if (request.readyState !== 4) return;
  if (request.status === 200) {  
    handleSuccess(request.responseXML.getElementsByTagName('sport')[1].firstChild.nodeValue); //обрабатываем ответ
  }else{
    handleError(request.statusText); // вызвать обработчик ошибки с текстом ответа
  }
  infoRequest.abort(); // очищаем, если даже одна копия в памяти - много
  setTimeout(requestInfo, 3000); // ставим таймаут, только после того как получили ответ, чтоб запросы не наслаивались в случае лагов 
}

function handleSuccess(txt){
  console.log(txt);
}

function requestInfo() { 
    infoRequest.open('GET','/infoxml' + Math.random(), true);
    infoRequest.send();    
};

requestInfo();
__________________
29375, 35
Ответить с цитированием