Привет всем. Я в интернете много почитал библиотеки и немного не понимаю некоторых моментов.
У меня есть скрипт который ображается к URL (моему) и получаю файл в виде XML формата и проблема такая что грузится память хотя я все вродебы чищу или нет не пойму. Подскажите как правильно мне его составить , вот 2 образца что я нашел они оба работают но память забивается.
Я обращаюсь к скрипту с переодичностью 3 сикунды, но хотелось бы быстрее.
Пример 1
setInterval(lin, 3000);
function lin() {
var request;
if(window.XMLHttpRequest){request = new XMLHttpRequest();}else{request = new ActiveXObject("Microsoft.XMLHTTP");}
request.open('GET','/infoxml', true);
//request.open('GET', '/infoxml' + Math.random(), true);
request.onreadystatechange = function() {
if (request.readyState != 4) return;
clearTimeout(xhrTimeout); // очистить таймаут при наступлении readyState 4
if (request.status==200) {
//console.log(this.responseText);
console.log(request.responseXML.getElementsByTagName('sport')[1].firstChild.nodeValue);
}else{
handleError(request.statusText) // вызвать обработчик ошибки с текстом ответа
}
}
request.send();
//request.abort();
request = null;
}
Пример 2
setInterval(lin, 3000);
function lin() {
var xhr;
if(window.XMLHttpRequest){xhr = new XMLHttpRequest();}else{xhr = new ActiveXObject("Microsoft.XMLHTTP");}
xhr.open("POST", "/infoxml", true);
xhr.onreadystatechange=function(){
if (xhr.readyState != 4) return
clearTimeout(xhrTimeout) // очистить таймаут при наступлении readyState 4
if (xhr.status == 200) {
console.log(xhr.responseXML.getElementsByTagName('sport')[1].firstChild.nodeValue);
}else{
handleError(xhr.statusText) // вызвать обработчик ошибки с текстом ответа
}
}
xhr.send();
}
var xhrTimeout = setTimeout( function(){ xhr.abort(); handleError("Timeout") }, 7000);// Таймаут 3 секунд
function handleError(message) {
// обработчик ошибки
alert("Ошибка: "+message)
}
Эти оба примера перегружают память и не могу понять почему подскажите как правильно обращаться.