Az oldal betöltésekor lefutó JavaScript kód DOM manipulációval létrehoz 50 darab DIV HTML elemet,
aminek "click" eseményéhez egy anonim eseménykezelő függvényt rendel. A DIV elemeket sorra beszúrja az oldalba a BODY elem gyermekeként.
Az anonim eseménykezelő függvény a "CreateDivs" függvényen belül van definiálva, ezért az eseménykezelő függvényből elérhetővé válik
a külső függvény (CreateDivs) összes változója és argumentumlistája is.
Körkörös hivatkozás jön létre COM objektum és JavaScript objektum között, amivel az Internet Explorer nem tud mit kezdeni.
A DOM elem és az eseménykezelő függvény által lefoglalt memória nem lesz felszabadítva, vagyis memóriaszivárgás jön létre.
A körkörös hivatkozás megértésében segíthet a következő prezentáció.
Ezt az oldalat az Internet Explorer 6-os verziójával teszteltem. Az oldalat egymás után rövid időközönként újratöltöttem.
A képen a böngésző memóriafoglalásának alakulása látható (a memóriafoglalást az ingyenes Process Explorer for Windows-al monitoroztattam).
A memóriaszivárgás elkerülése nem jár sok többlet kódolással.
Több kerülo megoldás is létezik a memóriaszivárgás elkerülésére.
Ezek közül mutatok be néhányat ezen oldal JavaScript kódjára alkalmazva.
Megjegyzés:
A memóriaszivárgás problémája elsősorban az Internet Explorer 6-os és korábbi verzióit érinti.
Elofordulhat, hogy ez az oldal nem okoz memóriaszivárgást más böngészőkben.
Körkörös hivatkozás jön létre COM objektum és JavaScript objektum között, amivel az Internet Explorer nem tud mit kezdeni. A DOM elem és az eseménykezelő függvény által lefoglalt memória nem lesz felszabadítva, vagyis memóriaszivárgás jön létre. A körkörös hivatkozás megértésében segíthet a következő prezentáció.
A memóriaszivárgás elkerülése nem jár sok többlet kódolással. Több kerülo megoldás is létezik a memóriaszivárgás elkerülésére. Ezek közül mutatok be néhányat ezen oldal JavaScript kódjára alkalmazva.
Megjegyzés: A memóriaszivárgás problémája elsősorban az Internet Explorer 6-os és korábbi verzióit érinti. Elofordulhat, hogy ez az oldal nem okoz memóriaszivárgást más böngészőkben.