[Javascript] Iframe src switchen = memory leak

Pagina: 1
Acties:

  • dafz0r
  • Registratie: April 2003
  • Laatst online: 12-02 12:50
Dit is zo ongeveer mijn functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function fadeIn(newpage) {
     document.getElementById("rotator").style.filter="blendTrans(duration=0.5)";
     //Make sure the filter is not playing.
     if (document.getElementById("rotator").filters.blendTrans.status != 2) 
     {
            document.getElementById("rotator").setAttribute('src', newpage);
            document.getElementById("rotator").filters.blendTrans.apply();
            document.getElementById("rotator").style.visibility="visible";
            document.getElementById("rotator").filters.blendTrans.play();
     }
            
}
       
function rotate()
{
    nextIframe();   
}
function nextIframe()
{
    setTimeout("fadeIn(\"start.htm\")", 2000);
    setTimeout("fadeIn(\"images/pub001fr.jpg\")", 5000);
        setTimeout("fadeIn(\"start.htm\")", 10000); 
        setTimeout("fadeIn(\"images/pub001ge.jpg\")", 15000);
        setTimeout("fadeIn(\"start.htm\")", 20000);
        setTimeout("fadeIn(\"images/pub001nl.jpg\")", 25000);
        setTimeout("nextIframe()", 30000);     
 }
       
window.onload = function()
{
rotate();
}


Deze gaat dus een iframe met id "rotator" op de pagina doen loopen tussen de startpagina en een jpg in 3 talen.
Dit liep wel goed tot ik dit scherm een nachtje liet opstaan... 9uur later had ik 1.2 gig memory in use. Na wat rondkijken bleek ik bij elke switch naar een jpg te zitten met een lek ter grootte van de jpg en dit natuurlijk cumulatief :)
Het ziet er dus naar uit dat de oude src nog ergens in het geheugen blijft steken en ik heb geen idee hoe die er terug uit te krijgen.
Ik heb al wat geprutst met de undocumented function collectgarbage() te gebruiken voor iedere fade en dat beperkt de schade enigzins maar genereert toch nog een lek van ongeveer 100mbyte / uur. Aangezien ik verre van de javascript koning ben en ik hier niet meteen iets gelijkaardigs terugvond vroeg ik mij af of hier enige (known) workarounds zijn. Het mag zelfs zijn dat er enige vorm van lek is, zolang ik de grootte ervan maar onde controlekan houden.

edit: woops, foutje in titel, ff aanpassen door een mod?

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:42

MBV

vaag. Gebeurt hetzelfde als je getElementById('blaat').src=newpage doet? Mag niks uitmaken, maar er zijn soms implementatieverschillen :)

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 18-01 18:46

XangadiX

trepanatie is zóó kinderachtig

hopza :)

Stoer; Marduq


  • dafz0r
  • Registratie: April 2003
  • Laatst online: 12-02 12:50
MBV schreef op maandag 28 augustus 2006 @ 22:39:
vaag. Gebeurt hetzelfde als je getElementById('blaat').src=newpage doet? Mag niks uitmaken, maar er zijn soms implementatieverschillen :)
yep, al lijkt het wel trager te zijn