函数节流及防抖
2019-04-09 20:30
169 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39434651/article/details/89161038
鼠标移动事件onmousemove, 滚动滚动条事件onscroll等瞬间的操作都会导致这些事件会被高频触发。 如果事件的回调函数较为复杂,可能会导致响应跟不上触发,出现页面卡顿,假死现象
防抖: 当持续触发事件时,每一次都要清空定时器,重新开始。
eg:实时搜索
实现1:
var timer = null; function debounce (){ clearTimeout(timer); timer = setTimeout(function(){ console.log("函数防抖"); }, 300); };
实现2:
function debunce(handler,delay){ var timer = null; return function(){ var _self = this,args = arguments; clearTimeout(timer); timer = setTimeout(function(){ handler.apply(_self,args); },delay); }
节流:当持续触发事件时,保证一定时间段内只调用一次事件处理函数。
eg:窗口调整(调整大小),页面滚动(滚动),抢购时疯狂点击(鼠标按下)
实现1:
var timer = null; function throttle(){ if(!timer){ timer = setTimeout(function(){ console.log("函数节流"); timer = null; }, 300); } };
实现2:
function throttle(handler, delay) { var timer = null; return function() { var context = this; var args = arguments; if (!timer) { timer = setTimeout(function() { handler.apply(context, args); timer = null; }, delay); } } }
相关文章推荐
- 关于函数防抖和函数节流
- 函数防抖和函数节流
- 函数节流和防抖
- JavaScript优化之函数节流与函数防抖
- js中连续触发事件的稀释方法(函数节流、函数防抖、标识变量)
- 函数防抖和函数节流
- 节流或防抖:控制函数的执行
- 函数节流及函数防抖
- 页面优化之高性能函数防抖与节流
- 函数防抖与节流
- 两张图彻底理解 函数节流和函数防抖
- 利用函数防抖和函数节流提高小程序性能
- 函数防抖(debounce)函数节流(throttle)
- 【进阶 6-6 期】深入篇 | 阿里 P6 必会 Lodash 防抖节流函数实现原理
- JavaScript节流和防抖函数与及使用分时函数惰性函数优化性能
- [转载]函数节流与函数防抖
- 节流函数和防抖函数学习
- 函数节流和防抖
- 事件委托、函数节流及防抖
- 函数节流与函数防抖