Pregunta

Tengo una duda: - ¿Existe alguna norma / convención que indique cuándo debo usar "Smarty templating"? ¿Y cuándo debo usar las llamadas Javascript Ajax para producir el contenido? Puedo usar llamadas Ajax / Javascript para producir el contenido dinámicamente.

Mi aplicación usa Ajax y Smarty , pero quiero establecer una regla para los desarrolladores

¿Fue útil?

Solución

Debería usar solo llamadas AJAX para cargar datos dinámicos que no se conocen en el momento en que se carga la página . Por ejemplo, cuando hace clic en " comentarios " enlace para una pregunta / respuesta dada en Stack Overflow, se realiza una llamada AJAX para cargar dinámicamente los datos. Este es el resultado de que el usuario haga clic en el enlace de comentarios, no del resultado de la carga de la página. No sabe que debe mostrar esos comentarios en el momento en que se carga la página, por lo que es apropiado hacer una llamada AJAX en este caso.

Debes utilizar plantillas para mostrar cualquier dato que se conozca en el momento en que se carga la página . Hace que sea más fácil tratar con personas que tienen Javascript deshabilitado (lo sé, no mucho), y proporciona una clara separación de la lógica de la presentación. Otro beneficio importante de usar plantillas es el hecho de que puede disminuir significativamente la cantidad de solicitudes HTTP realizadas desde el navegador del cliente.

Esto es especialmente importante en el mundo de la navegación móvil, donde la latencia, no el ancho de banda, es su mayor obstáculo. En Mobile Safari, por ejemplo, una única solicitud HTTP a una página con plantilla de Smarty se cargará significativamente más rápido que una solicitud para cargar una página con plantilla de Javascript que realiza cinco o seis solicitudes HTTP adicionales. Esto es especialmente cierto cuando se utilizan EDGE, 3G y otros servicios de datos móviles que no son wifi. De hecho, esto es tan importante que es la primera directriz en Mejores prácticas para acelerar su sitio web .

Idealmente, también deberías degradar con gracia la funcionalidad cuando Javascript está deshabilitado . Un buen ejemplo es un cuadro de búsqueda de autocompletar. Es realmente bueno que los términos de búsqueda sugeridos aparezcan mágicamente a medida que escribes, pero si desactivas Javascript, aún tienes un cuadro de búsqueda funcional. Ese es un ejemplo clásico de una buena degradación en el servicio. El desbordamiento de pila generalmente hace un gran trabajo al proporcionar una experiencia sólida sin Javascript. Un lugar que se queda corto es en los comentarios. Cuando Javascript está deshabilitado, solo se muestran los comentarios más populares, y la publicación de nuevos comentarios está deshabilitada.

A menos que sea absolutamente necesario, debe pensar en Javascript como una característica adicional que podría no estar habilitada, no como algo que se debería usar para construir piezas críticas de su sitio web . Obviamente hay excepciones (algunas cosas simplemente no se pueden hacer sin Javascript). Notarás, por ejemplo, que Stack Overflow es muy útil con Javascript desactivado. No recibirá las actualizaciones en tiempo real cuando se publiquen nuevas respuestas, o las vistas previas de Markdown en tiempo real, pero la funcionalidad principal aún está allí. Todo el '' levantamiento pesado '' Se realiza con HTML y CSS. Javascript es solo la formación de hielo (ciertamente muy buena formación de hielo) en el pastel. Esto es una especie de nota al margen, pero es lo suficientemente importante como para mencionarlo.

Otros consejos

Probablemente depende del tipo de trabajo que esté haciendo en sus plantillas. Personalmente, odio hacer mucho estilo pesado / diseño estrictamente en Javascript. Si puede cargar la mayor parte de su diseño a través de. Inteligente y simplemente cambie bits de datos específicos (solo los datos , no el marcado / estilo, si es posible) que podría ser un buen lugar para comenzar a estandarizar dentro de su propio equipo de desarrolladores.

Use plantillas para la generación del lado del servidor y DHTML / AJAX para cualquier cosa después de la carga de la página original (sin usar una actualización). Incluso entonces, la respuesta del servidor para la llamada AJAX en sí misma se puede ensamblar con una plantilla, que puede funcionar mejor para cualquier contenido no trivial.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top