【发布时间】:2014-01-07 10:23:46
【问题描述】:
我正在努力优化我的网络应用中的滚动性能,并在最新的 Chrome (v31) 上遇到了有趣的行为,这也在 Chrome Canary (v34) 上重现。
在这个简化的例子中,我有一个简单的可滚动 div:
<style>
.container {
width: 200px;
height: 200px;
overflow: auto;
background: #ccc;
}
.container div {
height: 80px;
width: 80px;
background: #555;
border-radius: 10px;
}
</style>
<div class="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
我启用了以下 Chrome 开发设置来调查滚动性能:
- “显示绘制矩形”(由红色矩形轮廓表示)
- “显示潜在的滚动瓶颈”
当我在非视网膜显示器上加载网页时,它会在每次滚动时重新绘制整个容器 div,Chrome 甚至会这样表示:
但是当我将窗口移动到我的视网膜显示器并刷新页面时,滚动性能会提高!它只会重绘滚动条本身(有时还会重绘之前不在滚动视口中的内容):
高 DPI 行为似乎更可取,并且滚动速度更快。无论 DPI 如何,有什么方法可以在 Chrome 中实现这种性能?
【问题讨论】:
标签: html css google-chrome dom scroll