2010-07-13 19 views
14

stavo controllando la fonte in una pagina HTML e sono imbattuto in questotag di script html che non utilizza il 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> 

non ho mai visto prima. Cos'è lo script type="text/html". Non so se faccia la differenza, ma era su una pagina .aspx.

È una sorta di segnaposto da analizzare e eval() in seguito?
Qualcuno sa di cosa si tratta?
Qualcuno che ha utilizzato questo metodo può spiegare i vantaggi? Elementi

risposta

17

script che hanno un tipo di contenuto sconosciuto vengono semplicemente ignorati, in questo caso, il browser non sa come eseguire uno script text/html.

È una tecnica comune utilizzata da alcuni motori di template JavaScript.

Consulta anche:

+0

BTW, [Processing.js] (http://processingjs.org/) utilizza anche questa tecnica. – CMS

4

E 'un trucco che ho visto la prima volta in un post sul blog di John Resig. È usato per cose come tenere un modello da espandere in seguito. Il browser non farà alcun tentativo di eseguirlo.

I "vantaggi"? Bene, è molto più ordinato che tenere una stringa nel tuo codice Javascript direttamente. Poiché non hai stringhe multi-linea in Javascript, è complicato definire un modello del genere.

modificare — ah ah sì, CMS ha legato il post sul blog molto nella sua risposta!

Problemi correlati