2012-08-22 11 views
7

Estoy empezando a trabajar con Sencha Touch 2 y me preguntaba cómo maneja (si es que se hace) las limpiezas de recursos.¿Cómo funcionan los recursos de limpieza de Sencha Touch 2?

En particular:

  • imaginemos que tenemos un montón de controladores que se desencadena por URL redirecciona. ¿Se almacenarán en memoria caché esas instancias del Controlador o Sencha creará nuevas instancias cada vez que necesite invocar un método en un controlador?

  • Lo mismo para las vistas. Hace sencha cache views o los volverá a crear cada vez que necesite renderizarlos nuevamente. ¿Cuándo se destruyen exactamente las vistas (si lo son)?

  • ¿puedo obtener control sobre cómo maneja eso?

Respuesta

11

para responder a sus preguntas,

  1. sólo una instancia de cada controlador es creado por Sencha. Entonces, realmente creo que no necesita preocuparse por las instancias del controlador. Deje que Sencha se encargue de eso.

  2. La limpieza en realidad se debe hacer con las Vistas porque el número de vistas y la complejidad de las mismas están estrechamente relacionadas con el rendimiento.

Sencha no lo hace la limpieza de sus recursos específicamente - el promotor debe hacerse cargo de la limpieza DOM de forma explícita (aparte del propio mecanismo de recolección de basura de JavaScript). Por lo tanto, el desarrollador debe decidir cuándo crear una vista, si mantenerla en el DOM para uso futuro o destruirla tan pronto como esté oculta. Les daré algunos ejemplos:

A.

Supongamos que al hacer clic en un botón, el usuario abre una ventana emergente que muestra INFO alguna información acerca de la página. Una vez que el usuario lea la información, él cierra la ventana emergente. Ahora, desde la perspectiva de un usuario, puede haber muy pocas oportunidades de que el usuario vuelva a abrir la ventana emergente . Entonces, lo mejor será si la ventana emergente se elimina del DOM tan pronto como el usuario la cierre. De todos modos, si el usuario desea volver a abrirlo, vuelva a crear la ventana emergente y muestre .

B.

usuario mismo modo supongamos que se encuentra en la página de inicio de sesión y sesión en la aplicación . Los usuarios apenas vuelven a la página de inicio de sesión mientras están dentro de la aplicación . Por lo tanto, destruya la instancia de Vista de inicio de sesión una vez que esté oculta.

Por lo tanto, estos son algunos escenarios donde las Vistas pueden eliminarse explícitamente cuando sea necesario.A continuación se presentan algunas referencias que da buena idea acerca de la optimización de la memoria con Sencha:

a) Sencha Touch: Optimizing Memory Usage

b) http://www.slideshare.net/senchainc/optimizing-performance

+0

Gran respuesta. Todavía no puedo creer que primero tuve que comenzar una recompensa para vencer a alguien en una respuesta :-) Noté que hay una extensión llamada http://deftjs.org que maneja esas cosas un poco diferente ya que parece – Christoph

+0

:) Me alegra sabe que eso ayudó. ¡Lo habría respondido antes si lo hubiera visto! – Swar