我正在制作一个日历页面,允许用户点击一天,并使用弹出的表单输入当天的条目。
我对使用jQuery的DOM操作并不陌生,但这是我以前做过的事情,我开始怀疑是否有更有效的方法来做到这一点?
在JavaScript中手动构建HTML是性能最有效的方式(我认为这是真的,过度使用appendTo()等函数)或者在DOM中创建一个隐藏的构造然后克隆它会更好吗?
理想情况下,我想知道这样做的最佳方法,以便在代码整洁和性能之间取得平衡。
谢谢,
威尔
答案 0 :(得分:15)
在JavaScript中处理大量的HTML字符串会很快变得非常难看。因此,考虑使用JavaScript“模板引擎”可能是值得的。它们不需要复杂 - 请参阅Resig this one 。
如果你不满意,那么你可能会继续保持原状。请记住,与字符串操作相比,DOM操作通常非常慢。
这种性能差距的一个例子:
// DOM manipulation... slow
var items = ['list item 1', 'list item 2', 'list item 3'];
var UL = $('<ul/>');
$.each(items, function(){
UL.append('<li>' + this + '</li>');
});
// String manipulation...fast
var items = ['list item 1', 'list item 2', 'list item 3'];
var UL = $('<ul/>').append( '<li>' + items.join('</li><li>') + '</li>' );
答案 1 :(得分:3)
Here你可以找到解释。
答案 2 :(得分:0)
也许不是最流行的方法。
在后端生成html代码。该对话框将位于css隐藏的div中。当你想要它“弹出”时,只需应用不同的CSS样式并更改隐藏的输入值(我猜对话框与该特定日期交互)。