【发布时间】:2016-08-16 19:50:40
【问题描述】:
所以我正在创建一个按钮,将一个新的<div> 添加到一组<div> 标记中。这是一个相当复杂的<div>,有很多配置选项,最终大约需要 30-40 行代码。
我的问题基本上是我应该将股票 <div> 的 HTML 存储为 Javascript 变量还是将其隐藏在 DOM 中并通过 jQuery 引用 <div> 并将内容设置为变量。我的页面中会有很多这样的代码,所以我担心用 Javascript 生成大量的 HTML
var item_html =
'<div>'+
.... 30-40 lines of code .....
'</div>';
$('new_item').on('click',function(){
$('#Container').append(item_html);
});
或
$('new_item').on('click',function(){
$('#Container').append($('#new_item_html').html());
});
【问题讨论】:
-
您可能需要考虑使用类型为
text/template的脚本块,这样HTML 就不会是一堆难以维护的串联字符串。如果内容是基于其他变量自定义的,您可以使用现有的模板引擎或滚动自己的模板stackoverflow.com/questions/4912586/… -
您可以使用模板引擎 HTML5 native 或诸如 handlebars.js 之类的库,而不是存储大量表示 HTML 节点的文本,框架将其用作 Ember。优点包括可维护性、清晰的代码/易读性、解耦和可重用性。
-
我现在并不想引入一个新的 JS 库,但对于新项目的推进来说,这是件好事。我很高兴知道这存在。
text/template的想法很有趣。这和<template>的方案一样吗?
标签: javascript jquery html performance