Estoy pensando en cómo puedo diseñar la respuesta a la parte frontal del sitio web.
Quiero saber qué solución y por qué es mejor.
Para el back-end, uso PHP con el motor de plantillas TWIG. Para el lado frontal, uso jQuery. Para el front-end no uso ningún motor de plantillas.
No usaré el motor de plantillas para el back-end y el front-end, porque tendré que duplicar template . Me parece una mala solución. ¿O tal vez debería hacerlo de esta manera? ¿Tal vez exista un motor de plantilla que pueda usarlo en ambos casos?
Por favor, ¿alguien podría aconsejarme?
El inglés no es mi idioma nativo, lo siento si es difícil de entender. Creo que alguien sabrá a lo que me refiero :)
JSON será "mejor" en la gran mayoría de los casos.
La información transferida desde el servidor será más pequeña. Considere: ["john","clara","paul"] vs <ul><li>john</li><li>clara</li><li>paul</li></ul>
Su back-end será más flexible en la forma en que se puede usar, podrá actualizar el marcado de su front-end independientemente del back-end. JSON también es más fácil de manipular con JavaScript que con HTML.
La única excepción a esto es si desea ocultar al público la lógica utilizada para generar el html, pero incluso en ese caso preferiría enviar JSON por la ventaja de la flexibilidad.
No hay mejor solución. Yo mismo prefiero que todas mis llamadas ajax devuelvan JSON porque puedo dejar que el front-end determine qué hacer con él. De esta manera estoy manteniendo la separación de preocupaciones. Pero como dije, es una preferencia personal. La salida de HTML no se considera una mala práctica por decir.
Sin embargo, no estoy seguro de lo que quiere decir con plantillas de back-end y plantillas de front-end.