Speicher-Leck in der javascript-bei der Verwendung von new Image()

Habe ich anscheinend ein Speicher-Leck, verursacht durch die Verwendung des 'new Image () in einem javascript-Skript. Wenn ich mir die verwendete physikalische Speicher in der windows-Ressourcen-monitor, bekomme ich die erwartete Anstieg der in-memory verwendet, wenn ich die Seite geladen werden, weil es lädt einige ziemlich große Bilder mit wie folgt:

var imgObjs = [];

//in for loop i = 0, 1, 2...
imgObjs[i] = new Image();
imgObjs[i].onload = function(event) {
    //image loaded
}
imgObjs[this.img_src].src = this.img_src;

Hätte ich, dass, wenn die Seite navigiert Weg von dieser würde zerstört automatisch die Referenzen und freien Speicher, aber dies scheint nicht der Fall zu sein. Stattdessen habe ich navigieren Weg und dann gehen Sie zurück zu der Seite, nur die finden den Speicher aufstocken, noch mehr als es lädt die Bilder wieder, ohne jemals zu befreien, der zuvor reservierten Speicher. Ich habe versucht, manuell entfernen von verweisen, indem Sie code in das unload-Ereignis, um dies zu tun, aber es scheint nicht zu keinen Unterschied machen. Die Variablen wurden alle erklärt zunächst mit 'var':

//allow garbage collection by removing references
$(window).unload(function() {
    for(var i in imgObjs) {
    imgObjs[i] = null;
    delete imgObjs[i];
}
delete imgObjs

//delete other variables that reference the images
});

hat jemand irgendwelche Hinweise, wie und wo ich bin läuft hier falsch? Ich dachte, das problem könnte sein, zu tun, mit Zirkelbezügen als ich gebaut habe, eine Liste der Klasse, wo jedes Element enthält einen Verweis auf das Vorherige und nächste Bild, aber ich habe deeted diese wie folgt:

delete galleries[i].pictures.Items[j].prev;
delete galleries[i].pictures.Items[j].next;
InformationsquelleAutor Grub | 2011-09-25
Schreibe einen Kommentar