¿Cuánto "único paginado" puede ser una aplicación compleja?

Estoy trabajando en una aplicación bastante grande con varios submodules. Cada uno de los submodules puede ser de funcionalidad compleja con muchos paneles y componentes de UI. Había hecho proyectos de menor escala anteriormente como una aplicación de una sola página, pero esta vez me preocupaba el hecho de que mi DOM no se actualizará por un largo time si el usuario sigue trabajando en muchos modules.

Cuando analizo cómo funciona Facebook, veo que funciona como una aplicación de una sola página la mayor parte del time. Pero de vez en cuando refresca todo el DOM con una acción del usuario (aparentemente es OR aleatorio en function del conteo de actividad del usuario).

¿Hay algún patrón o mejor práctica sobre cómo se pueden crear aplicaciones tan grandes como una sola página, sin comprometer el performance del DOM?

(NO estoy buscando técnicas de encoding para mantener la huella de memory baja … pero para un enfoque de layout para la aplicación total)

No hay pena en refrescar la página. Una aplicación no tiene que ser estrictamente de una sola página.

Si tiene controles en su página, sus acciones deben permanecer contenidas dentro de esa página. Pero si el usuario entra en una parte completamente diferente de la aplicación, no hay ninguna razón por la cual no deba simplemente navegar a esa página específica.

Destruir nodos DOM, o configurar innerHTML = '' para el panel, que tiene que ser cambiado, justo antes de que ocurra el cambio debería estar bien. Supongo que los elementos de la interfaz de usuario tienen una function de destroy o similar.

También considere desarmar todas las variables de javascript involucradas en la funcionalidad del panel, que deben borrarse.

Siempre es bueno tener un núcleo de aplicación que controle el ciclo de vida de sus modules. Y cada uno de sus modules tendrá una interfaz bien definida como launch (), destroy (), etc. o lo que sea que tenga sentido. Entonces, cuando se llama a la function destroy () vaciará también el html JavaScript object que almacena datos de la aplicación. Nicholas Zakas tiene una excelente presentación en una aplicación de Javascript a gran escala. Espero eso ayude.

Arquitectura escalable de aplicaciones Javascript de Nicholas Zakas

Intereting Posts