【问题标题】:FastDOM - Read / write every 17ms?FastDOM - 每 17 毫秒读/写一次?
【发布时间】:2015-06-16 02:15:40
【问题描述】:

FastDOM - 一个将 DOM 读取和写入批处理到 raf (requestAnimationFrames) 的小型库。

https://github.com/wilsonpage/fastdom

我已经阅读了代码,但是,我很难理解它是如何工作的。以下是我们的一些假设: - 浏览器一般设置为 60fps - 所以总的来说,一秒钟内最多可以有 60raf

也就是说,每个 FastDOM 读/写批处理将在 17ms (1000 ms / 60 fps) 之后运行。这会不会很慢,因为一个函数可能一个接一个地进行读/写调用?

显然上述情况并非如此,但我很困惑,希望能得到澄清。

谢谢,

【问题讨论】:

  • 如果您非常快速地添加多个读/写(在 17 毫秒内 - 例如在一个循环内),它们不会在间隔 17 毫秒的连续批次中执行,它们都在“下一个”批次运行中执行,这可能是在 1 毫秒内,也可能在 17 毫秒内。

标签: javascript dom optimization asynchronous requestanimationframe


【解决方案1】:

两种类型的 DOM 操作(读/写)都有自己的作业队列。每requestAnimationFrame

都会刷新每个队列(例如,其中的所有 个作业都会运行/执行)

例如,如果您在 5 毫秒内添加 100 次读取操作(例如在循环期间),那么所有这些读取操作将(很可能)在下次刷新 read 队列时发生(可能是 1 毫秒)添加最后一个作业后,或添加最后一个作业后 16.66667ms)。

阅读源代码,它写得很好,评论也很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多