如何将多个jQuery事件压缩/整理为一个延时事件?
我想将多个事件压缩为一个时间延迟上的单个事件。我不需要为鼠标移动和页面滚动等非常常见的事情重复调用绑定函数。如果有排队事件要触发,最多每半秒一次就足够了 为了更具体的例子: 假设我绑定到jQuery(…).scroll(),使用一个稍微昂贵的函数。当用户滚动页面时,这将被调用数百次,甚至数千次。我想将所有这些事件压缩成每.5秒一次的事件调用,在.5秒过去后将最近的事件发送给处理程序,并忽略以前可能触发的事件 视觉上:如何将多个jQuery事件压缩/整理为一个延时事件?,jquery,events,Jquery,Events,我想将多个事件压缩为一个时间延迟上的单个事件。我不需要为鼠标移动和页面滚动等非常常见的事情重复调用绑定函数。如果有排队事件要触发,最多每半秒一次就足够了 为了更具体的例子: 假设我绑定到jQuery(…).scroll(),使用一个稍微昂贵的函数。当用户滚动页面时,这将被调用数百次,甚至数千次。我想将所有这些事件压缩成每.5秒一次的事件调用,在.5秒过去后将最近的事件发送给处理程序,并忽略以前可能触发的事件 视觉上: 15:20:35.000-用户滚动事件。计时器启动。已存储新事件 15:20
- 15:20:35.000-用户滚动事件。计时器启动。已存储新事件
- 15:20:35.020-用户滚动事件。替换存储的事件
- 15:20:35.100-用户滚动事件。替换存储的事件
- 15:20:35.371-用户滚动事件。替换存储的事件
- 15:20:35.500-计时器过期。15:20:35.371的事件被发送到注册的处理程序/回调。未发送任何早期事件
scrollstart
和scrollend
事件。您可以通过修改latency
参数来更改函数内部的时间延迟。我正在当前的一个项目中使用它,它非常有效