javascript - script - Lenguaje de plantillas tanto para el cliente como para el servidor.
jade script (3)
Optaría por XSLT ( http://www.w3schools.com/xsl/xsl_client.asp )
Estoy investigando plantillas de JavaScript como una forma de representar nuestras vistas. El objetivo es poder representar el lado del cliente para los usuarios que tienen JavaScript habilitado para representar las mismas plantillas / servidor de datos para aquellos usuarios (y rastreadores) que no lo hacen.
Requerimientos
- Representación del lado del cliente.
- Procesamiento del lado del servidor (JVM soporta un bonito-para-tener).
- Soporte razonable para bucles, condicionales, manipulación de texto, parciales, macros y extensiones / complementos.
- Comunidad de usuarios razonablemente grande / activa.
Soluciones insatisfactorias encontradas hasta ahora
- Mustache : admite la representación del lado del servidor y del cliente, comunidad grande / activa, pero las plantillas "sin lógica" parecen muy restrictivas y dolorosas.
- Node.js más el underscore : las plantillas JS como el guión bajo proporcionan toda la flexibilidad de plantilla que necesito, pero hacerlas en el lado del servidor con Node.js es MUY frágil. node.js es nuevo y bastante inestable y su gestión de paquetes (exportaciones ...) requiere muchos trucos para que las cosas funcionen correctamente.
- Plantillas de cierre de Google : se compilan en JS y Java y tienen muchas de las características que deseo. Desafortunadamente, al navegar en los grupos de Google, parece que faltan muchas características básicas (como la capacidad de hacer un bucle en arreglos asociativos ) y la documentación para crear sus propios complementos es muy escasa y de aspecto doloroso. Además, no puedo decir quién lo está utilizando en la comunidad en línea, Google no está aceptando contribuciones de código abierto y no tienen el ancho de banda para lanzar nuevas funciones.
- isotope : escriba plantillas en JS y use Johnson , una envoltura de Ruby para el tiempo de ejecución de Mozilla SpiderMonkey JS, para procesar esas plantillas del lado del servidor. Parece prometedor, pero el proyecto no ha tenido compromisos en más de 6 meses.
- Liquid con Liquid.js : el lenguaje Liquid Liquid.js ve excelente, pero el proyecto de liquid.js parece no estar probado (¡no hay pruebas en IE!), No tiene documentación, no está claro si alguien lo usa y no se ha actualizado en un momento.
Terminamos recogiendo dust.js Echa un vistazo a Dejando las JSP en el polvo y la eliminación de plantillas del lado del cliente para obtener más información.
Utilice EJS . Es prácticamente tiene todas las características que pides.
Se puede usar con express.js fuera de la caja y funciona bien en el cliente.
Como beneficio adicional, usaría backbone.js para hacer MVC en el cliente y el servidor.
Por supuesto, esto se basa en node.js. Siento que usar Express, now & backbone te permite un gran control estable con node.js. Sin mencionar que SSJS es simplemente increíble y que la reutilización del código es fantástica.