/ / ¿Evitar las pérdidas de memoria en el dojo? - javascript, dojo

Evitar fugas de memoria en dojo? - javascript, dojo

Para aplicaciones de larga ejecución en el navegador.Al usar un kit de herramientas como el dojo, escucho el punto una y otra vez que las referencias colgantes deben evitarse. Pero cada lenguaje / marco tiene su propia idiosincrasia cuando se trata de la gestión de la memoria.

¿Cómo puedo evitar las referencias colgantes al crear una aplicación en dojo? Estoy pensando en reglas a lo largo de las líneas de "asignar" en iOS: cómo usarlas y cómo limpiarlas cuando termines.

Respuestas

2 para la respuesta № 1

Creo que lo más importante que viene al dojo es que debes recordar desconectar cualquier evento que conectes.

Hay un patrón simple para esto, por ejemplo en un dijit personalizado:

//connecting some events
this._events = [
dojo.connect(...),
dojo.connect(...)
];

Ahora, es muy sencillo desconectar:

dojo.forEach(this._events, dojo.disconnect, dojo);

El mismo patrón se aplica cuando se usa this.connect en un dijit.


1 para la respuesta № 2

También debe tenerse en cuenta que incluso si sigue la buena práctica de desconectar los controladores de eventos mencionados en esta respuesta, usted podría terminar en problemas. Puede haber referencias cíclicas que el recolector de basura no puede detectar, o referencias que Dojo no publica correctamente. A veces es necesario llamar explícitamente "eliminar" en ellos. Ver esta como ejemplo.