我正在开发一个 Web 应用程序,该应用程序在 Google Chrome 中突然变得非常无响应。在任何其他浏览器中似乎没有相同的问题(我用 Firefox 和 Safari 进行了测试)。例如,当单击输入文本框时,单击和元素获得焦点之间需要 3 到 5 秒的时间。单击复选框时也会发生相同的行为。需要注意的几件事:此页面有一个下拉菜单,其中包含大约 150 个选项,以及一个包含 10 行的表格。除此之外,没有其他异常。

我打开 Chrome 代码检查器并使用“时间轴”选项卡查看发生了什么。事实证明,大部分延迟来自大约 2 秒的“重新计算样式”事件。此事件发生在 mousedown 事件之前。在网上对这一步进行简短搜索并没有发现太多信息。有没有人知道这个特定的渲染步骤以及可以做些什么来提高其性能?

最佳答案

原来我忽略的页面上有一个隐藏的对话框,里面有大约 2,000 个 li 元素。我猜 Firefox 和 Safari 比 Chrome 处理大量元素更好。

关于javascript - 在 Chrome 中重新计算样式事件大约需要 2 秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8566026/

10-12 00:59