是否有人在生产代码中实施了John Resig's micro-templating?特别是我想知道用<script type="text/html">
嵌入模板是否会导致任何问题。
更多信息:这是我担心的事情:
答案 0 :(得分:1)
虽然我没有使用@ jeresig的微模板,但我确实使用了<script type="text/html">
。我已经在几个(虽然是基本的)生产网站中使用它而没有任何问题。 HTML5 spec本身指的是类似的东西(接近我链接的部分的末尾)。 AFAIK块仅在MIME类型是可识别的脚本类型时执行,否则块只是文档的一部分。
答案 1 :(得分:1)
我放弃了通过scripttags内联模板,因为我的视图层会创建冗余的重复脚本模板。相反,我将模板放回到JavaScript中作为字符串:
var tpl = ''.concat(
'<div class="person">',
'<span class="name">${name}</span>',
'<span class="lastname">${lastName}</span>',
'</div>'
);
我使用字符串concat技巧,所以我可以使模板字符串可读。这种技巧有变化,如数组连接或简单的附加连接。在任何情况下,内联脚本模板都可以正常工作,但是在php / jsp / asp视图层中,你可能会创建冗余的重复脚本模板,除非你做更多的工作来避免它。
此外,这些模板变得相当复杂,你需要添加的逻辑越多,所以我进一步观察并找到了mustache.j的imo。远远优于并保持JavaScript范围内的逻辑(条件和动态变量定义)。
另一种选择是通过ajax检索模板字符串,在这种情况下,您可以将每个模板放在其自己的文件中,并简单地授予它一个.tpl扩展名。你唯一需要担心的是http请求往返,这对于小的.tpl文件来说不应该花太长时间,而且是imo。太微不足道了。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您正在使用jQuery,我可以推荐jQuery模板:
http://github.com/nje/jquery-tmpl
我认为它应该是jQuery 1.5中的introduced officially
顺便说一句。我认为Resigs脚本和jQuery模板都依赖于使用innerHTML
,所以只要它在您的浏览器中有效就可以了。