可乐

Results 4 comments of 可乐

哈哈哈

### 背景 事件的触发权很多时候都属于用户,有些情况下会产生问题: * 向后台发送数据,用户频繁触发,对服务器造成压力 * 一些浏览器事件:window.onresize、window.mousemove等,触发的频率非常高,会造成浏览器性能问题如果你碰到这些问题,那就需要用到函数节流和防抖了。 ### 函数节流 (throttle) * 一个函数执行一次后,只有大于设定的执行周期后才会执行第二次。 有个需要频繁触发函数,出于优化性能角度,在规定时间内,只让函数触发的第一次生效,后面不生效。 ### 应用场景 需要间隔一定时间触发回调来控制函数调用频率: * DOM 元素的拖拽功能实现(mousemove) * 搜索联想(keyup) * 计算鼠标移动的距离(mousemove) * Canvas 模拟画板功能(mousemove) * 射击游戏的 mousedown/keydown 事件(单位时间只能发射一颗子弹)...