Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda