2010-07-13 8 views
14

yo era la salida de la fuente en una página HTML y encontré estehtml script tag no usa tipo javascript <script type = "text/html">?

<script id="searchItemTemplate" type="text/html"> 
    <# var rows = Math.floor((Model.RecordsPerPage - 1)/3 + 1); 
     for (var i = 0; i < rows; ++i){ 
     var startIdx = i * 3; 
     var endIdx = startIdx + 3; 
    #> 
//etc .... 
</script> 

nunca he visto esto antes. ¿Qué es el script type="text/html"? No sé si hace una diferencia, pero esto fue en una página .aspx.

¿Es esto una especie de marcador de posición para ser analizado y eval() más tarde?
¿Alguien sabe qué es esto?
¿Alguien que ha usado este método puede explicar los beneficios? elementos

Respuesta

17

de secuencias de comandos que tienen un tipo de contenido desconocido son simplemente ignorados, en este caso, el navegador no sabe cómo ejecutar un script text/html.

Es una técnica común utilizada por algunos motores de plantillas de JavaScript.

Consulte también:

+0

BTW, [Processing.js] (http://processingjs.org/) también utiliza esta técnica. – CMS

4

Es un truco que vi por primera vez en un blog John Resig. Se usa para cosas como sostener una plantilla para expandir luego. El navegador no intentará ejecutarlo.

¿Los "beneficios"? Bueno, es mucho mejor que mantener una cadena en su código Javascript directamente. Como no tiene cadenas de varias líneas en Javascript, es complicado definir una plantilla como esa.

editar — ha ha yes, CMS ha vinculado la publicación del blog en su respuesta!

Cuestiones relacionadas