我在 https://www.w3.org/TR/uievents 发现了一个有趣的事件表。但是,我对同步/异步类别不熟悉。
活动类型 | 同步/异步 | 冒泡阶段 | 值得信赖的活动 | 目标类型 DOM 接口 | 可取消 | 默认操作 |
---|---|---|---|---|---|---|
点击 | 同步 | 是的 | 元素 | 指针事件 | 是的 | Varies:对于具有关联激活行为的目标,执行激活行为;对于可聚焦目标,给予元素焦点。 |
错误 | 异步 | 没有 | 窗口、元素 | 活动 | 没有 | 无 |
输入 | 同步 | 是的 | 元素 | 输入事件 | 没有 | 无 |
加载 | 异步 | 没有 | 窗口、文档、元素 | 活动 | 没有 | 无 |
鼠标悬停 | 同步 | 是的 | 元素 | 鼠标事件 | 是的 | 无 |
鼠标松开 | 同步 | 是的 | 元素 | 鼠标事件 | 是的 | 无 |
选择 | 同步 | 是的 | 元素 | 活动 | 没有 | 无 |
卸载 | 同步 | 没有 | 窗口、文档、元素 | 活动 | 没有 | 无 |
轮子 | 异步 | 是的 | 元素 | 轮盘事件 | 是的 | 滚动(或缩放)文档 |
有人可以解释一下这个类别的含义吗?
例如:
Sync
点击事件和Async
滚轮事件有什么区别?
曾经有一个章节对此进行了解释,您仍然可以在同一文档的上一版本中看到它。
上面写着
事件可以同步或异步调度。
同步事件(“同步事件”)被视为如同它们 位于先进先出模型中的虚拟队列中,顺序为 相对于其他事件的时间发生顺序, DOM 的变化以及用户交互。本期的每一个活动 虚拟队列被延迟,直到前一个事件完成为止 传播行为,或者被取消。一些同步事件是由 特定的设备或进程,例如鼠标按钮事件。这些 事件由 事件控制 订购 为该组事件定义的算法,并且用户代理将 按定义的顺序调度这些事件。
异步事件(“异步事件”)可以分派为 动作的结果已完成,与其他无关 事件、DOM 中的其他更改以及用户交互。
[示例3] 在加载文档期间,将解析并执行内联脚本元素。这 load 事件是 排队等待在脚本元素处异步触发。然而, 因为它是一个异步事件,所以它的顺序与其他事件相关 文档加载期间触发的同步事件(例如 DOMContentLoaded 事件来自 [HTML5]) 不保证。
它已作为 https://github.com/w3c/uievents/issues/372 的一部分与其父部分一起删除,这表明父部分已经主要由 DOM 规范涵盖。然而,确实,关于同步/异步的特定位也不存在,因此这个概念不再受到任何支持。
您可能想在问题中让他们知道(该问题仍悬而未决)。