節流和防抖函數
阿新 • • 發佈:2018-12-27
date clear art rtt number 上下文 code pre 回調函數
/** * 節流函數 * @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); }
節流和防抖函數