JavaScript中的事件优先级是什么?
在JavaScript中处理事件的优先顺序是什么?JavaScript中的事件优先级是什么?
下面是按字母顺序排列的事件......
- onabort - 图像的加载 中断
- 的onblur - 一个元素失去焦点
- 平变化 - 用户改变 内容一个字段
- onclick - 鼠标单击一个对象
- ondblclick - 鼠标双击一个 对象
- 的onerror - 元素获得焦点。
- 的onkeydown - - 键盘按键是 按下
- onkeypress事件 - 甲键盘键是 按下或向下保持时 加载文档或图像
- 的onfocus时发生的错误
- 的onkeyup - 键盘按键是 发布
- onload事件 - 一个页面或图像 装完
- onmousedown事件 - 甲鼠标按钮被 按压
- 的OnMouseMove - 鼠标移动
- 的onmouseout - 鼠标被移动离开 元件
- 的onmouseover - A - 鼠标在一个元件
- onmouseup移动 鼠标按钮被释放
- onreset - 复位按钮点击
- 在onResize - 窗口或框架是 调整大小
- ONSELECT - 文本被选中。
- 的onsubmit - 提交按钮被点击
- onunload的 - 用户退出页面
他们在外面事件队列的处理顺序是什么?
优先顺序不是先进先出(FIFO),所以我相信。
就我所知,这并不是过去明确定义的。不同的浏览器可以自由地实现事件顺序,但他们认为合适。虽然大多数已经足够接近所有的实际用途,但在浏览器有所不同的情况下(并且当然,还有更多的情况下,某些浏览器无法发送特定事件,所有的)都存在并继续存在。
这就是说,HTML 5 draft recommendation确实让企图以指定事件将如何排列和调度 - the event loop:
协调事件,用户 互动,脚本,渲染, 网络,等等,用户代理 必须使用本节中的 中所述的事件循环。
必须有至少一个事件循环 每用户代理,和每相关 类似来源的浏览上下文单元至多一个事件 循环。
事件循环有一个或多个任务 队列。任务队列是有序的 任务列表 当用户代理要排队任务时,它必须将给定任务添加到相关事件 循环的任务队列之一 之一。来自一个 特定任务源的所有任务必须始终将 添加到同一个任务队列中,但来自不同任务源的 任务可能会被放置在不同的任务队列中。 [...]
[...]用户代理可能对鼠标和键盘事件(用户 交互任务源),以及另一 其他一切一个任务队列 。用户代理 然后可以给键盘和鼠标 事件优先于其他任务 三个季度的时间,保持 响应接口,但不 使其它任务队列,从不 处理的事件从任何一个任务 源出故障。 [...]
请注意,最后一点:由浏览器实施决定哪些事件将按照顺序组合在一起并进行处理,以及给予任何特定类型事件的优先级。因此,没有理由期望所有浏览器现在或将来以固定顺序分派所有事件。
对于任何想知道序列相关事件的人来说,请参见下文。到目前为止,我只在Chrome中进行过测试。
- 鼠标悬停
- 鼠标移动
- 鼠标移开
- 鼠标按下
- 变化(上聚焦的输入)
- 模糊(聚焦元件上)
- 重点
- 鼠标松开
- 点击
- DBLCLICK
- 的keydown
- 按键
- KEYUP