【发布时间】:2011-03-27 18:00:47
【问题描述】:
我正在尝试在 textarea 中加载一个大(几兆)文档。
忽略网络加载时间(当我重新加载它时它实际上是最小的,因为它得到 304),在 Firebug 中它告诉我 DOMContentLoaded 和加载事件需要将近 20 秒才能触发。
如果我将 textarea 更改为 div,它会将时间减少到 5 秒,即使它必须实际渲染整个内容!
没有加载任何 javascript 库——卸载它们是我尝试的第一件事。我确实加载了许多 CSS 文件。
关于是什么让它如此缓慢,或者更好的是,如何加快速度的任何想法?一次加载一个块的内容?有点难看,但至少它为用户提供了一些可以查看的内容,而不是锁定的浏览器和潜在的“此脚本执行时间过长”警告。
这是 Ubuntu 上的 Firefox 3.6.15。
【问题讨论】:
-
在其他浏览器中测试过?以及什么样的文件?可能是慢 IO?
-
在 Chrome 中速度更快。我不指望奇迹——毕竟这是一个大文件——但奇怪的是我不认为它是 IO:当我得到 304 时它同样慢,如果我使用 div 会显着加速(它必须将整个内容呈现为 HTML!)而不是 textarea。
-
在过去的几年里,HTML 渲染器在任何浏览器中都受到了很多人的喜爱。关于为什么文本字段较慢,我唯一能想到的是因为转义`\`解析?我认为这可能没有看到任何优化。表单元素通常也是浏览器重用的操作系统组件,也可能超出 HTML 渲染的范围。无论如何,有趣的发现。
标签: javascript firefox textarea