throttling(쓰로틀링)
- 함수, 메서드 등 일정 시간 전에 호출 시 호출이 안되고, 해당 시간이 지나야 처리가 되는 기능- ajax와 같이 자주 호출 되는 함수들에 사용
- 반복되서 사용되는 api 특히 비용이 들어갈 경우 더욱 쓰로틀링이 필요해 보인다.
Code
-------------------------------------------------------------------------------------------------<a id="throttling" href="#aa" >throttling</a>
<script>
document.querySelector("#throttling").onclick = throttling(function(e){
console.log("throttling");
},1000);
function throttling(fn, delay){
let isRunning = false, timeoutFn, nextTime = 0;
return (...args)=>{
isRunning = (Date.now() - nextTime > delay);
if(isRunning){
let _this = this;
timeoutFn = setTimeout(function(){
fn.call(_this, ...args);
},delay);
nextTime = Date.now();
}
}
}
</script>
댓글 없음:
댓글 쓰기