对于textarea中的大型内容,Firefox DOMContentLoaded和加载事件非常慢

时间:2011-03-27 18:00:47

标签: javascript firefox textarea

我正在尝试在textarea中加载一个大(几个megs)文档。

忽略网络加载时间(当我重新加载它时,它实际上是最小的,因为它获得304),在Firebug中它告诉我,DOMContentLoaded和加载事件需要将近20秒才能解决。

如果我将textarea更改为div,它会将时间减少到5秒,即使它必须实际呈现整个内容!

没有加载javascript库 - 卸载它们是我尝试的第一件事。我确实加载了很多CSS文件。

关于什么使它变得如此缓慢,甚至更好,如何加快速度的想法?一次加载内容一块?有点难看,但至少它给用户一些东西,而不是一个锁定的浏览器和潜在的“这个脚本需要太长时间”的警告。

这是Ubuntu上的Firefox 3.6.15。

1 个答案:

答案 0 :(得分:5)

大卫,在Firefox 3.6和更早的textareas内容很长,因为编辑器代码重新格式化textarea中的DOM:它每行创建一个textnode和一个<br>。这比仅渲染<div>的单个textnode子项要多得多。

你应该试试Firefox 4,它直接编辑textnode(或者更确切地说是它的克隆);我怀疑你的页面会更快。

至于为用户加快速度......不幸的是,旧的Firefox版本唯一真正的选择是在textarea中没有这么多文本。