Ie9 утечки памяти

  • Автор темы VikaR
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

VikaR

#1
Пытаюсь запустить такой код под IE9 (это принципиально, потому что под IE8 все делает)
<body>
<div id="puthere" style="font-size:15px;"></div>
<script>
var z = 0;
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var x;
var readok;
var Grid = new Array();

function main() {
xmlDoc.async = "false";
readok = xmlDoc.load("E:\\!Backup\\client_state.xml");
for (var i=0;i<3;i++)
{
Grid = xmlDoc.getElementsByTagName("active_task").getElementsByTagName("fraction_done")[0].childNodes[0].nodeValue; //(*)
}
document.all.puthere.innerHTML=z;
z++;
}

function mainprocedure() {
main();
timervar = setTimeout("mainprocedure();", 1000);
}

mainprocedure();
</script>

Получаю огромные утечки памяти (где-то по 4 кб за такт. Думаю, величина как-то связана с величиной ХМЛ файла). Утечки дает строка обозначеная (*). Если её убрать, то утечек не будет.

Но как только я добавляю строку
var t = xmlDoc.xml;
где-нибудь после readok = xmlDoc.load("client_state.xml");
то утечки волшебным образом пропадают. Причем можна добавлять, например, такое alert(xmlDoc.xml) или даже просто xmlDoc.xml и утечек не будет. Что я не понимаю? Подскажите, потому что уже мозги плавятся и дебагер отказывается дебажить, говорит: я только 100000 раз один код дебажу. XML прикреплен

Спасибо.
 

Вложения

vital

Больной Компом Детектед
29.01.2006
2 432
33
#2
Я думаю, что бы понять, что мы не понимаем,надо дизассемблировать код ие и или вашего актив-икса и поизучать) А потом дать по голове тому кто писал)
Ну.. или.. что бы их избежать, может не стоит использовать активкс, который еще хранит совместимость с IE4(мсхмл вер2) и подключить более новую?

version 3:

var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0"); // msxml ver 3



Version 4:

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); // msxml ver 4

Version 5:

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.5.0 "); // msxml ver 5

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");//ver 6 <- последняя. Мб тут не будет утечек?
 
V

VikaR

#3
Подключила эту
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");//ver 6 <- последняя. Мб тут не будет утечек?

Ситуация не изменилась
 
Статус
Закрыто для дальнейших ответов.