Привет всем!
У меня есть проблемма, которой пока не вижу решения:
Мне нужно подгружать данные с сервера без перезагрузки страницы, при чём нужно делать одновременно несколько полётов на сервер.
Приблизительный код у меня такой:
var request = [];
function getContent(url, divID){
var request[url] = [null,divID];
var needsendnull = false;
if (window.XMLHttpRequest) {
request[0] = new XMLHttpRequest();
needsendnull = true;
} else if (window.ActiveXObject) {
request[0] = new ActiveXObject("Microsoft.XMLHTTP");
}
if(request[0]){
request[0].open('GET', url, true);
request[0].onreadystatechange = eval('new Function("doIt(\''+url+'\')")');
if(needsendnull)
request[0].send(null);
else
request[0].send();
}
}
function doIt(url){
var r = request[url];
if(r && r[0] && r[0].readyState == 4){
var div = document.getElementById(r[1]);
if(div){
div.innerHTML = r[0].responseText;
}
delete(r[0]);
delete(request[ur]);
//request[url][0] = null;request[url] = null;
}
}
При этом коде, когда происходит много запросов на разные URLы браузер начинает поедать память всё больше и больше.
При этом в памяти создаются непонятные документы (это я посмотрел с помощью MSScriptDebugger под IE) и не пропадают при обнулении XMLHTTP объектов.
Что в коде не так?
Как избавиться от поедания памяти?