概述:"一個處理函數會在延遲n秒後觸發,如果在n秒內再次觸發那麼回重新計時; 優點:防止用戶由於過快的操作而發起的無用的請求; 使用場景: 1、淘寶的導航列表; 2、搜索框搜索輸入。只需用戶最後一次輸入完成,在發送請求; 3、瀏覽器的視窗大小改變後,只需視窗調整完成後,在執行 裡面是代碼,防止重新渲 ...
概述:"一個處理函數會在延遲n秒後觸發,如果在n秒內再次觸發那麼回重新計時;
<script>
var throttle = function(func, delay) {
// 存儲定時器id;
var timer = null
return function() {
// 判斷定時器是否在執行中;
if (timer) {
// 在每次開始之前清除以前的定時器;
clearTimeout(timer)
}
timer = setTimeout(function() {
func()
}, delay)
}
}
// 要進行處理的函數;
function handle() {
console.log(Math.random())
}
window.addEventListener('mousemove', throttle(handle, 1000))
</script>
優點:防止用戶由於過快的操作而發起的無用的請求;
使用場景:
1、淘寶的導航列表;
2、搜索框搜索輸入。只需用戶最後一次輸入完成,在發送請求;
3、瀏覽器的視窗大小改變後,只需視窗調整完成後,在執行
resize
裡面是代碼,防止重新渲染;