Esto es realmente una pregunta realmente interesante, ya que expone algunas decisiones de diseño interesantes.
Prefiero la representación de plantillas parciales porque les da a mis aplicaciones la capacidad de cambiar con el tiempo. Si necesito cambiar de <table>
a <div>
con un gráfico, es fácil de encapsular en una plantilla. Con esto en mente, veo casi todas las páginas como un agregado de muchas plantillas pequeñas, que podrían cambiar. El andamiaje predeterminado de Grails 2.0 se ha movido hacia este tipo de enfoque, y es una buena idea.
La cuestión de si deberían ser plantillas del lado del cliente o del lado del servidor es el quid de la cuestión.
Las plantillas del lado del servidor mantienen su limpiador de marcas en la carga de la página inicial.Incluso si utiliza algo como Mustache de ICanHazJS, debe tener un elemento vacío en la página (algo con su plantilla), modelarlo adecuadamente y trabajar con él en Javascript para actualizar su información.
Inconvenientes
- aplicaciones "hablador"
- sobres más grandes a través del cable (respuestas incluyen HTML, que puede considerarse estática) Tiempo de
- más lenta respuesta de la interfaz de usuario
Beneficios
- Good fo r personas con mucha experiencia en el idioma del lado del servidor
- Tal vez más fácil de manipular o modificar en un entorno del lado del servidor (p. devolver una página intercalada con varias plantillas, que se cargan mediante programación e incluidos)
- mantiene la mayor parte de las cosas de la aplicación "en un solo lugar"
plantillas del lado del cliente puede realmente reducir la carga del servidor, sin embargo. Hacen que una aplicación sea "menos explícita", ya que potencialmente podría minimizar el número de llamadas al servidor enviando colecciones más grandes de JSON (en la misma cantidad de bytes, o menos, que tomaría HTML en un esquema de plantilla del lado del servidor). También hacen que la experiencia de interfaz de usuario sea muy rápida para los usuarios, ya que al hacer clic en un enlace de "actualización" no es necesario realizar un viaje de ida y vuelta de AJAX. Algunos han dicho:
Anthony Eden @aeden 10 Dic Responder favorito Retweeteado · Abrir el futuro de las aplicaciones web: peticiones son manejadas por funciones, la lógica siempre es asíncrona, y HTML no se genera en el servidor.
Inconvenientes
- No es muy bueno para el SEO (elementos de la interfaz extraña ONU-semántica de carga de la página inicial)
- requiere un poco de foo Javascript (para manipular elementos)
Beneficios - Responsivo - Sobres más pequeños
Tendencia s parecen estar avanzando hacia las plantillas del lado del cliente, especialmente con la potencia expuesta por las adiciones HTML5 (como <canvas>
) ... pero si aprovecharlas requiere que confíe en tecnologías con las que no está muy familiarizado, y se siente más cómodo con Grails parciales, puede valer la pena comenzar con esos e investigar la refactorización hacia las plantillas del lado del cliente en función del rendimiento y otras inquietudes posteriores.
Sospecho que ya estás renderizando contenido similar en el primer contacto del usuario con la página, como piensas hacer con el "cargar más enlace". ¿No tendría sentido cargar lo que está cargando después de hacer clic en "cargar más" de la misma manera y reutilizar el código que ya ha escrito para eso? Su pregunta es interesante y me gustaría ver cuáles son sus pensamientos y los de los demás sobre el tema – jcage
Sí, en la primera interacción reutilizo la misma plantilla (en el punto 2) para representar la página completa (con el otro secciones estáticas de la página). Ambas opciones funcionan para mí, y las he usado ambas en forma dispersa. Me interesaría ver los pensamientos de los demás sobre esto también. – omarello