防抖和节流的实现
防抖
对于这个高频的操作来说,我们只希望识别一次点击,可以人为是第一次或最后一次
1 | /** |
节流
对于高频操作,我们可以设置频率,让本来会执行很多次的事件触发,按照我们定义的频率减少触发的次数
- 假设当前在5s的时间点上执行了一次proxy,可以用这个时间减去上次执行的时间(0),此时就会有一个时间差
- 定义一个wait,比如定义wait为500
- wait - (now - previous) 定义的时间-(当前时间-上一次执行的时间)
- 如果计算结果大于0,当前的操作是一个高频操作触发,不要去执行handle.如果小于等于0,当前不是一个高频操作,可以执行handle
1 | function scrollFn () { |