V
VikaR
Пытаюсь запустить такой код под 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 прикреплен
Спасибо.
<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 прикреплен
Спасибо.