节流和防抖函数
Posted jerrypig
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了节流和防抖函数相关的知识,希望对你有一定的参考价值。
/**
* 节流函数
* @param {Funtion} method 回调函数
* @param {Object} context 上下文地址
* @param {number} delay 延迟时间ms
*/
function throttle(method, context, delay) {
delay = delay || 500;
var currentDate = new Date();
method.startTime = method.startTime || 0;
if (currentDate - method.startTime > delay) {
method.call(context);
method.startTime = new Date();
}
else {
clearTimeout(method.timer);
method.timer = setTimeout(function () {
throttle(method, context, delay);
}, 50);
}
}
/**
* 防抖函数
* @param {Funtion} method 回调函数
* @param {Object} context 上下文地址
* @param {number} delay 延迟时间ms
*/
function debound(method, context, delay) {
delay = delay || 200;
clearTimeout(context.deboundId);
context.deboundId = setTimeout(function () {
method.call(context);
}, delay);
}
以上是关于节流和防抖函数的主要内容,如果未能解决你的问题,请参考以下文章