我正在优化一个瓶颈,毫不奇怪,这是一个循环中数万个追加的结果。
我熟悉将新元素作为字符串累积的模式,然后将它们连接并插入到单个附加中。但是,如果这些元素具有需要转义的文本内容,即通常使用.text()
进行设置会怎样?
我目前正在将它们创建为单独的元素,将它们附加到DOM外部的容器中,然后插入该容器。有更快的方法吗?
答案 0 :(得分:1)
使用accumulation-as-string方法。如果您需要模拟text()
方法,请使用显示的escapeText
方法,如下所示:
var escapeText = function(s)
{
return s.split('&').join('&').split('<').join('<').split('>').join('>').split('"').join('"');
};
var someArray = ....
var toInsert = '';
for (var i=0; i<someArray.length; i++)
{
toInsert += '<p>' + escapeText(someArray[i]) + '</p>';
}
$('#foo').append(toInsert);