javascript:将文本附加到textarea性能

时间:2015-03-20 12:58:20

标签: javascript performance textarea

我目前正在实施一个从浏览器远程运行构建过程的系统。其中一项任务是显示部分由ajax下载的构建控制台输出。在这里我遇到了问题:我试图将此日志输出到textarea控件并且日志非常繁重(可能达到12Mb甚至更多,具体取决于正在构建的目标数量)。我关注的是textarea与我的要求的兼容性。我开始怀疑这不是显示如此大量信息的最佳方式,因为我一直尝试不同的方法将数据附加到textarea:

<textarea id='log'></textarea>

//using jQuery
$("#log").append(data["log"]); <- data["log"] is ajax result
//or classic JS
document.getElementById("log").value += data["log"]

结果始终相同:较大的textarea内容因为较长的UI滞后(它可能会完全冻结一两秒)。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:5)

http://jsfiddle.net/93bexk59/
嘿,

基本上 - 不要使用textarea并尽量减少dom操作量。 你可以做什么? 1使用documentFragment API构建DOM的部分内容 2缓存从ajax传递的数据,并将其放在第N个项目的页面上 3使用异步调用渲染事物,而不是立即渲染。

setTimeout(function(){
  //some render here
}, 0)

我附上了一个例子(jsfiddle)。

希望我理解正确,并且使用这种方法(列表而不是textarea,你有更多的自定义选项)。