我正在构建新闻Feed类型功能,该功能需要客户端呈现Feed项。有不同类型的Feed项,这意味着每种类型都需要不同的模板。我目前正在使用 UnderscoreJS 模板,但我愿意接受新的想法。
我使用的方法大致如下:
template : {
f : "<li> <%= item.user.name %> uploaded a file </li>", // file upload
m : "<li> <%= item.user.name %> just joined </li>", // just joined
p : "<li> <%= item.user.name %> - <%= item.data.txt %> </li>" // comment
}
var html="";
for(i in feeditems){
var item = feeditems[i];
html+= _.template(template[item.type], { item: item });
}
$('#container').html(html);
这是解决此问题的最佳方法吗?
答案 0 :(得分:1)
From Underscore.js documentation
<强>模板强>
将JavaScript模板编译为可以评估渲染的函数。用于从JSON数据源渲染复杂的HTML。
根据我的阅读,它应该非常有效。
效率最高吗?
很难说,最有效的方法就是硬编码字符串不是吗?但是,根本没有查找,有时为了获得更易读的代码而牺牲效率会更好。
你有任何性能问题吗?如果你不这样做,我不担心。如果你这样做,而不是考虑这是否是最有效的模板,我会分析应用程序,因为很可能瓶颈在其他地方。