说我想动态渲染一些html。哪个更好?(除了它为代码提供了良好的结构)
<script type="text/template" id="some">
//some html code here
</script>
_.template($("#someid").html());
或
$("#someid").html("inserting html here");
答案 0 :(得分:1)
在您提到的两种方法中,HTML标记都是作为HTML字符串生成的,然后添加到目标DOM元素中。所以,我认为它的方式没有使用一个优于另一个的性能优势。
话虽如此,在您的情况下使用模板(下划线)代码 只是变得比必须生成长HTML更易于管理 通过将各种值连接在一起的字符串。
此外,带有条件语句的已编译模板可以存储在变量中,并通过对模板进行一次调用(并将对象传递给它)来重用。然而,如果您需要填充HTML字符串,那么在这种情况下,您最终将在for
循环或其函数编程等效$.each
或_.each
内编写字符串连接语句以使其成为可能可重复使用的。
以下是2个小提琴,基本上使用2种方法做同样的事情:
比较代码并自行决定最适合您的要求。
答案 1 :(得分:0)
我会在div
代码中使用隐藏的script
而不是html代码,以便谷歌可以将其编入索引。
另外,我会使用.clone()
方法来克隆DOM结构,而不是检索纯文本html(.html()
)并基于此创建新元素。但是改变模板中的值会更加棘手 - 但它可能会更快;尚未测试过。