2012-02-21 9 views

Respuesta

15

EDITAR

Con una API change introduced in version 0.8.0, el método compile() se ha integrado en parse(). La compilación manual de las plantillas ya no es necesaria.


Mustache.parse()

sintácticamente análisis sintáctico de la plantilla y crea un cuerpo de la función JavaScript (una cadena) de la misma. Durante ese proceso, notifica cualquier error de sintaxis encontrado en la plantilla.

Mustache.compile()

Utiliza el cuerpo de la función de regresar de una exitosa parse() para crear una función de JavaScript original. La función creada se coloca en un caché para su reutilización.

Mustache.render()

toma la función apropiada para una plantilla dada (la que fue creada por compile()) y lo aplica a los datos reales. Esto crea el resultado que se quiere mostrar en la pantalla.

+0

Gracias Tomalak! Puedo ver cómo la compilación antes de la representación podría tener sentido a veces para el rendimiento, pero no puedo pensar en una situación en la que tendría sentido usar el análisis sintáctico. ¿Podría dar un ejemplo de dónde sería? – alnafie

+0

@alnafie El análisis es siempre el primer paso para transformar una cadena arbitraria (una que cumple con la sintaxis de Moustache) en algo en lo que una computadora puede actuar. Es exactamente lo que sucede con los archivos de código fuente de JavaScript cuando el navegador los lee. Sin analizar la entrada que le das, ninguna computadora puede hacer nada. moustache.js compila la plantilla en una función JavaScript adaptada para hacer exactamente lo que dice la plantilla, y nada más. Al final, esto funcionará mucho más rápido que interpretar la plantilla cada vez que la llame ("renderizar"). – Tomalak

+0

La exposición de una etapa de análisis también da algo que tiene sentido pegar en un Memcache y usarlo en la parte delantera. –

1

Solo un consejo Mustache.parse(template) es opcional y acelera los usos futuros de la plantilla. Esto es útil cuando quiere reutilizar su plantilla con un conjunto de datos (grandes). Si este no es el caso, una llamada al Mustache.render(), que genera el resultado final, es suficiente.

Cuestiones relacionadas