js中的分时函数

文章类型:Javascript

发布者:hp

发布时间:2023-05-30

一:定义

1:是一种控制函数执行频率的技术(数组分块技术),是一种使用定时器分割循环的技术

2:可以用于限制函数在一定时间内被调用的次数,避免过多的函数调用导致性能问题

3:说白了就是按照一定的时间拆分成一个个的小任务,避免一次性造成页面卡顿或假死,提升用户体验

二:代码

function throttle(fn, delay) {
  let lastCallTime = 0;  // 上一次函数调用的时间戳

  return function(...args) {
    const now = Date.now();
    if (now - lastCallTime >= delay) {
      // 如果距离上一次调用超过了设定的延迟时间,就执行函数
      fn.apply(this, args);
      lastCallTime = now;
    }
  };
}

三:总结

1:分时函数是限制事件处理函数的触发频率

2:将庞大的数据进行分阶段加载,避免了一次性加载卡顿现象


四:完整示例

<script>
	//一次性加载
	// for(let i=0; i<80;i++){
	// 	let p= document.createElement("p")
	// 	p.innerHTML=i
	// 	document.getElementById("box").appendChild(p)
	// }
	//定义函数每个200ms加载,加载十次
	function timeChunk(total,count,time){
		let num=total/8
		let startNum=0
		let t= setInterval(()=>{
			if(startNum<num){
				for(let i=0; i<count;i++){
					let p= document.createElement("p")
					p.innerHTML=i+startNum*8
					document.getElementById("box").appendChild(p)
				}
				startNum++
				
			}else{
				clearInterval(t)
			}
		
		},time)
	} 
	timeChunk(80,8,200)
</script>