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

130
Vistas
La instancia de Three.JS no se puede volver a crear

Estoy tratando de destruir (o destruir o desechar) una 'instancia' de Three.JS usando esto:

Ejemplo completo: https://jsfiddle.net/v7oLzs4m/58/

 function kill() { const rendererDomWas = renderer.domElement; renderer.dispose(); controls.dispose(); renderer = scene = camera = controls = null; document.body.removeChild( rendererDomWas ); shouldRender = false; } function animate() { if(!shouldRender) {return} // no more requesting animation frames if 'shouldRender' is false frameID = window.requestAnimationFrame( animate ); renderer.render( scene, camera ); }

(es decir, desechar, establecer referencias en nulo y evitar que el bucle de dibujo touching el renderizador mientras shouldRender es false )

Parece que funciona al principio (el contenido del renderizador deja de mostrarse), pero cuando vuelvo a crear la instancia, nunca vuelve.

Es como si algo todavía estuviera... aferrándose al GLContext que evita que se invoque nuevamente.

¿Por qué no puedo volver a crear una nueva instancia de Three.JS?

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

0

No estoy seguro de por qué esto funciona (ya que ya estaba haciendo esto en mi Fiddle...)

Pero resulta que el ingrediente secreto (para mí) para permitir que Three.JS se GC'd/se elimine es este:

 window.cancelAnimationFrame(frameID);

Supongo que esto evita que la función de representación se almacene en el bucle de dibujo a nivel de hardware, que contiene referencias a GLContext (y la cadena)

El GC nunca puede suceder a menos que el 'bucle esté roto'

(Corríjanme si me equivoco por favor)

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