Einstellung von img.src zu dataUrl Leaks Memory

8

Im Folgenden habe ich einen einfachen Testfall erstellt, der zeigt, dass wenn der src eines Img-Tags auf verschiedene dataUrls gesetzt ist, Speicher verloren geht. Es sieht so aus, als ob die Bilddaten nie gelöscht werden, nachdem der Quellcode in etwas anderes geändert wurde.

%Vor%

Wenn Sie diese HTML-Seite laden, baut sich die Arbeitsspeicherbelegung im Laufe der Zeit auf und wird nie bereinigt. Dieses Problem sieht sehr ähnlich aus: Bild mit Daten-URI schnell aktualisieren verursacht Caching, Speicherverlust . Gibt es etwas, was ich tun kann, um dieses Speicherleck zu verhindern?

    
Paul Milham 10.10.2013, 14:21
quelle

2 Antworten

8

Ich habe am Ende eine Arbeit für das Problem gemacht. Der Memory Bloat tritt nur auf, wenn die image.src geändert wird, also habe ich das Image-Objekt komplett umgangen. Ich tat dies, indem ich das dataUrl nahm, es in binäres ( Ссылка ) umwandelte und es dann mit jpg.js ( Ссылка ). Mit jpg.js kann ich dann das Bild zurück in meine Arbeitsfläche kopieren, so dass das Image-Element vollständig bybased ist und somit das src-Attribut nicht gesetzt werden muss.

    
Paul Milham 11.10.2013, 14:48
quelle
1

Ich habe auch dieses Problem und glaube, dass es ein Browser-Bug ist. Ich sehe das auch in FF und Chrome. Zumindest hatte Chrome einmal einen ähnlichen Fehler, der behoben wurde. Ich denke, es ist nicht weg oder nicht komplett weg. Ich sehe einen konstanten Speicheranstieg, wenn ich img.src wiederholt auf eindeutige Bilder setze. Ich habe einen Fehler mit Chrom eingereicht, wenn Sie etwas Gewicht in :) Ссылка (Das Fehlerauslösungsbeispiel erzeugt nicht jedes Mal ein neues eindeutiges Bild, aber zumindest mit einer hohen Wahrscheinlichkeit)

    
distributed 21.10.2013 12:06
quelle