Elegir ámbito Seam

Uno de los problemas más frecuentes a la hora de gestionar los recursos cargados en memoria en nuestras aplicaciones es decidir cuánto tiempo han de estar accesibles por el resto de componentes. El caso de que un componente esté menos tiempo del que deba y al intentar ser accedido no se encuentre es fácilmente detectable puesto que o bien la aplicación falla o bien los valores obtenidos no son los esperados. No obstante el caso contrario es más difícil de detectar puesto que la aplicación funcionará correctamente, aunque poco a poco la memoria se irá llenando con datos que ya no nos son necesarios.

Por este motivo es importante plantearse en el desarrollo de nuestra aplicación el rango que necesitamos para determinados componentes, siendo los ámbitos más recomendados: Conversation y Page puesto que nos permiten mantener controlada la cantidad de memoria utilizada en cada momento.

¿Cuándo es recomendable usar cada uno?

  • Page: Este ámbito es recomendado cuando queremos realizar ciertas tareas dentro de un formulario web y que después no necesitaremos de manera inmediata. En ese caso lo correcto es, tras la finalización del formulario liberar todos los recursos destinados a la gestión, control y persistencia. Un ejemplo de esto podría ser un formulario de alta de un usuario, una vez creado el usuario no necesitamos todos los recursos asignados para su creación, y si posteriormente queremos acceder a él lo recargaremos en el formulario destinado a tal fin.
  • Conversation: Este ámbito nos permite establecer un contexto entre un conjunto de páginas donde hay cierta relación y/o dependencia de datos entre ellas. Para no tener que recargar información entre páginas, establecemos el ámbito conversación para conservar los datos hasta que terminemos el flujo de acciones. Un ejemplo de esto es la creación y edición de un maestro-detalle, cuando nos posicionemos en el formulario destinado a la gestión de los detalles es recomendable tener cargado en memoria su maestro y los componentes que gestionen la lógica del mismo para que, en caso de ser necesario, poder actuar directamente sobre él sin tener que recargarlo.

Por último, si queremos que un determinado conjunto de datos sea persistente durante todo el trascurso del usuario por la aplicación, deberemos asociarlo a la sesión abierta, es decir al ámbito Session. En lo referente al ámbito Event sólo debemos usarlo cuando queramos tener una gestión sin estado de los formularios.

  • fdw2.0/fundeweb2.0/gt/elegir_el_ambito_correcto.txt
  • Última modificación: 07/11/2017 10:46
  • (editor externo)