1.使用setTimeout實現
var input=document.querySelector("input");
input.addEventListener("input",inputHandler);
var ids;
function inputHandler(e){
if(ids) return;
ids=setTimeout(function(){
clearTimeout(ids);
ids=0;
doTextValue(input.value)
},500);
}
function doTextValue(txt){
console.log(txt);
}
2.使用時間戳實現
export const throttle = (function () {
var currentTime = 0;
var timer = null;
return function (callback, timeout) {
timeout = timeout || 300;
clearTimeout(timer);
var lastTime = new Date().getTime();
if (lastTime - currentTime > timeout) {
callback();
currentTime = lastTime;
} else {
timer = setTimeout(() => {
callback();
}, timeout)
}
}
})()