Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
La generación de Javascript Gif acumula blobs en la memoria del navegador

Estoy usando esta biblioteca para generar gifs ( https://github.com/jnordberg/gif.js ). Cuando genera un archivo gif en blob, lo hace en la memoria del navegador y no lo limpia después, acumulando archivos de modo que en el uso continuo sin actualizar, la página simplemente falla.

Puede replicarlo accediendo a su propia demostración aquí: ( http://jnordberg.github.io/gif.js/ ). Cuando abra la pestaña de red o fuentes, verá algunos blobs cargados allí, una vez que vaya a la página y regenere cualquier imagen de ejemplo cambiando sus propiedades (como calidad, etc.), generará nuevos blobs sin borrar el anterior unos.

Para mí es un gran problema porque estoy generando cientos de gifs animados pesados y la página falla, así que necesito encontrar una forma de eliminar estos blobs de la memoria. Idealmente, quiero poder hacer esto sin cambiar la biblioteca gif.js, ¿tal vez si puedo acceder a estos blobs por referencia de alguna manera?

¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El ejemplo es olvidar liberar la URL del blob que se creó una vez que ya no la necesita.

Tenga en cuenta que lib no crea la URL del blob, por lo que la persona que llama a lib es responsable de crear y liberar el blob llamando a URL.createObjectURL() y URL.revokeObjectUrl()

 let lastBlobUrl; var gif = new GIF({ workers: 2, quality: 10 }); // add a image element gif.addFrame(imageElement); // or a canvas element gif.addFrame(canvasElement, {delay: 200}); // or copy the pixels from a canvas context gif.addFrame(ctx, {copy: true}); gif.on('finished', function(blob) { // You have to call this when you no longer need that URL. if (lastBlobUrl) { URL.revokeObjectURL(lastBlobUrl) } lastBlobUrl = window.open(URL.createObjectURL(blob)); }); gif.render();
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda