2012-06-08 16 views
5

Al mirar a través de los tutoriales de Microsoft, parece que han utilizado SPA en escenarios bastante simples, es decir, para filtrar o actualizar una sola lista.MVC4 Aplicación de una sola página: varias pantallas

Digamos que tengo una interfaz un poco más compleja en la que puedo tener varias listas, varias pantallas de adición y algunos asistentes, etc. que guían al usuario a través de ciertos procesos.

¿Sería el enfoque preferido para una aplicación de una sola página tener múltiples controladores y vistas para cada área del sistema? Si tuviera un área de administración de usuarios, podría ser un Controlador/Vista, manteniendo un perfil de usuario podría ser otro Controlador /Ver.

Por lo tanto, la experiencia de los usuarios sería la navegación entre las páginas, pero en una página donde quieren realizar ciertas operaciones es todo AJAX?

Si una aplicación tal era verdaderamente SPA Creo que iba a terminar con toneladas de divs en una página que reflejan una interfaz de usuario por área en mi sistema - La huella de esta página podrían ser enormes?

supongo que podría comparar lo que estoy tratando de lograr comparándolo con FaceBook? Sin embargo, supongo que están descargando las vistas a través de AJAX sobre la marcha para que la huella sea relativamente pequeña.

Respuesta

1

Un verdadero SPA generaría/destruiría la IU en "tiempo real", generalmente en respuesta a algún tipo de llamada JSON. Aquí es donde una palabra clave como knockout.js realmente ayuda [eliminar un gran número de códigos de enlace bidireccionales].

Por supuesto, en el código "detrás de escena", puede estructurarlo de la manera que prefiera. El nuevo ASP.NET Web API se presta muy bien a esto. Configure su IU inicial, codifique las acciones (generalmente puntos finales RESTful) como una API JSON; luego deje que javascript realice las llamadas JSON y cree una IU adicional sobre la marcha.

Es probable que no necesite muchas vistas completas, pero algunas vistas parciales como plantillas para los elementos de la IU creadora de javascript pueden ser útiles.

Cuestiones relacionadas