浏览器肯定会“掉线”一些 mousemove 事件,主要是因为它不能只为光标通过的每个像素执行一次函数。执行频率取决于浏览器本身:
mousemove
的 移动指针设备时的事件频率是实现,设备和平台特定的 强> ,但连续多次 mousemove 应该针对持续的指针设备移动触发事件,而不是针对每个鼠标移动实例的单个事件。 的 鼓励实施确定最佳频率以平衡响应性和性能。 强> <子> 资源: http://www.w3.org/TR/DOM-Level-3-Events/#event-type-mousemove 子>
的 移动指针设备时的事件频率是实现,设备和平台特定的 强> ,但连续多次 mousemove 应该针对持续的指针设备移动触发事件,而不是针对每个鼠标移动实例的单个事件。 的 鼓励实施确定最佳频率以平衡响应性和性能。 强>
<子> 资源: http://www.w3.org/TR/DOM-Level-3-Events/#event-type-mousemove 子>
Firefox可能会解雇另一个 mousemove 事件只有在最后一个完成时才会发生,因为JavaScript是单线程的,并且它不想填满堆栈。你可以说Firefox正在“阻止”这个事件,但我要说的是Firefox不太频繁地解雇这个事件。
众所周知 - javascript本质上是单线程的。
这意味着当js代码被执行时 - 浏览器会冻结。这意味着在那个时刻你在浏览器中“做”的任何事情都不会由它处理,因为浏览器应用程序没有响应交互。
这意味着它不是事件被丢弃,但它发出的事件更少,因为现在浏览器花费更多的时间来执行JS而不是处理你的输入。