防抖(debounce)

防抖(debounce)

// npm 節流去抖工具包 throttle-debounce
防抖(debounce):指的是某個函數在某個時間段內,無論觸發多少次,都只執行最後一次。

代碼如下:

function debounce(fn, wait=100) {
	// 設定定時器
	let timer = null;

	return function(...args) {
		if(timer) {
			clearTimeout(timer);
		}

		timer = setTimeout(() => {
			fn.apply(this, args)
		}, wait);
	}
}

// 定義一個實例接收
const bus = debounce(() => {
	const node = document.createElement("span");
	const textNode = document.createTextNode("?");
	node.appendChild(textNode);
	document.getElementById("debounceImg").appendChild(node);
	console.log("有人上車了, 請再等一等!");
}, 1000);

document.getElementById("debounce").addEventListener("scroll", bus);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章