Estrategia para restaurar el estado a través de URL en aplicaciones web

7

Esta es una pregunta sobre las aplicaciones web modernas, donde se carga una sola página, y toda la navegación subsiguiente se realiza mediante llamadas XHR y la modificación del DOM.

Podemos usar bibliotecas que manipulan el hash cadena, que nos permite navegar por URL y admitir los botones de avance / retroceso.

Pero para usar esas bibliotecas, necesitamos poder mover la interfaz de usuario de cualquier estado a otro. ¿Existe una buena estrategia para moverse entre los estados de la IU, que también les permite restaurarlos desde cero cuando carga una nueva URL?

En una aplicación compleja, es posible que tengas muchos estados diferentes. No desea volver a cargar la IU completa cada vez que cambie de estado. Pero tampoco desea requerir métodos separados para pasar de cada estado a cada estado.

Normalmente necesitamos:

  • Restaure un estado desde cero, cuando ingrese una nueva URL o presione Reload.
  • Muévase de un estado a otro, cuando use los botones Atrás / Adelante.
  • Muévase de un estado a otro, cuando realice una acción dentro de su aplicación (como hacer clic en un enlace).
  • Muévase a ciertos estados que no deben agregarse al historial, como los que aparecen después de las presentaciones del formulario.
  • Muévase a algunos estados que se basan en el estado anterior, como lista detallada .

Cuando realiza acciones dentro de su aplicación, hay una pregunta adicional que viene primero:

  • ¿Cambia la URL, escucha el cambio de la URL y cambia su estado en respuesta a ella?
  • ¿O cambia su estado, luego cambia la URL, pero no hace nada en respuesta?

¿Alguien tiene alguna experiencia para compartir sobre este tema?

    
pregunta JW01 24.03.2012 - 22:52

1 respuesta

2

Querrá cambiar la URL, escuchar los cambios en la URL y cambiar el estado de la página en respuesta a los cambios de URL. De esta manera, cuando el usuario vuelve a cargar, pulsa el botón de retroceso o realiza una acción en la página, el mismo código controlará los cambios de estado de la página.

El código que maneja los cambios de estado puede ver el estado actual de la página, compararlo con el nuevo estado solicitado de la página y realizar solo las acciones necesarias para las partes de la página que han cambiado.

    
respondido por el Bela 25.03.2012 - 03:23

Lea otras preguntas en las etiquetas