Tengo esta función JS simple que se usa para cargar (y mostrar) imágenes de matrices de bytes
function setElementSrc(element, mimeType, buffer) { var blob = new Blob([buffer], { type: mimeType }); var objectUrl = URL.createObjectURL(blob); element.src = objectUrl; element.onload = function () { URL.revokeObjectURL(objectUrl); }; }
Dado que la URL del objeto se revoca al cargar, esperaría que no haya más referencias al blob. Sin embargo, cuando miro el depurador de Chrome o Chrome://blob-internals/, permanecen allí para siempre, con una referencia. Incluso cuando el img en sí se ha ido.
La URL.revokeObjectURL(objectUrl)
funciona, ya que después de su llamada, ya no se puede acceder a la URL del objeto.
¿Entiendo algo mal? ¿Qué me estoy perdiendo? ¿Hay alguna manera de ver lo que todavía hace referencia al blob?