【问题标题】:Do long-running main-thread scripts block scroll painting?长时间运行的主线程脚本会阻止滚动绘画吗?
【发布时间】:2015-09-21 17:52:09
【问题描述】:

例如,在下面的时间线中,我在 3 秒标记和 7 秒标记之间上下滚动。滚动似乎并不顺畅。特写是第一个也是最大的脚本块(200 毫秒)。我的理解是浏览器不能同时做主线程JS和绘画。那是对的吗?如果是,那么如果去掉那块脚本,那么后面的绿色绘制部分可以更快地执行,从而使滚动更流畅?

特写:

【问题讨论】:

  • 是的,JS 阻塞了 UI。您是否尝试删除该代码块以查看它是否有所改进?
  • 您要问的问题完全取决于实现,甚至可能取决于主机 CPU 配置(多少个内核)。它没有在任何 HTML 或 ECMAScript 规范中指定绘制发生时的确切时间。您将需要在相关平台上进行测试,以查看最有效的方法。 JS可以阻塞重绘,但在某些情况下也可以触发同步重绘。

标签: javascript performance browser google-chrome-devtools


【解决方案1】:

是的,是的。将长时间运行的 JS 移至 worker。

【讨论】:

    猜你喜欢
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    相关资源
    最近更新 更多