【发布时间】:2011-02-11 10:43:40
【问题描述】:
我们在浏览器 (IE) 中呈现了一个 html 页面,导致浏览器挂起。该页面是通过服务器端脚本生成的(ASP.NET 和视图状态被禁用)。加载页面需要很长时间(它不是黑白问题,因为我们可以在本地机器上重现它)并且有时会导致脚本无响应错误。在调试问题时,我们发现客户端的 html 大小为 4.73 MB。在文档准备好(jquery-document.ready)之后还有很多 DOM 遍历(使用 JQuery)。加载之后,页面也会在任何用户交互(滚动、鼠标悬停)等情况下挂起。在加载期间和任何用户交互时都会看到 CPU 使用率峰值(25-50% 使用率)
【问题讨论】:
-
不是大文件,而是 Javascript。你必须优化它,并理解它永远不会一样,但至少它会“发挥作用”
-
我不同意。两者肯定是相关的。文件越大,JS 处理 DOM 的时间就越长;仅仅是因为它有更多的节点要处理。
-
如果禁用 jquery 代码会怎样?
-
我可以理解在页面加载时 jquery dom 遍历可能会出现问题。但是即使页面完全加载并“准备好”,页面也会挂起。例如即使这些事件没有 dom 遍历,滚动甚至 document.click 也会导致页面挂起。
-
“完全加载并准备就绪”是什么意思。你的意思是页面在浏览器中是完全可见的吗?还是只是JS处理完成了?而且,为什么客户端的 HTML 数量如此之多?
标签: asp.net javascript jquery html internet-explorer