2020-06-08 04:31:32
JavaScript中延迟执行函数主要通过setTimeout、setInterval和requestAnimationFrame实现,具体方法如下:
setTimeout:单次延迟执行最常用的方法,允许设置延迟时间(毫秒)后执行指定函数。
基本语法:setTimeout(function, delay, [arg1, arg2, ...]);
function:要执行的函数。
delay:延迟时间(毫秒),如2000表示2秒后执行。
可选参数:可传递额外参数给目标函数。
示例:function greet(name) { console.log("你好, " + name + "!");}setTimeout(greet, 1500, "张三"); // 1.5秒后输出"你好, 张三!"
setInterval:重复延迟执行按固定时间间隔重复执行函数,需配合clearInterval停止。
基本语法:let intervalId = setInterval(function, interval, [arg1, arg2, ...]);
interval:每次执行的间隔时间(毫秒)。
停止执行:clearInterval(intervalId); // 传入setInterval返回的ID
示例:let counter = 0;let intervalId = setInterval(function() { console.log("计数器: " + counter); counter++; if (counter > 5) clearInterval(intervalId); // 执行5次后停止}, 1000); // 每隔1秒执行一次
requestAnimationFrame:动画场景延迟执行在浏览器下一次重绘前执行函数,适合动画优化,性能优于setTimeout。
基本语法:requestAnimationFrame(function);
函数会在浏览器刷新频率(通常60Hz)下同步执行。
示例:function delayedFunction() { console.log("requestAnimationFrame 执行了!");}requestAnimationFrame(function() { setTimeout(delayedFunction, 1000); // 结合setTimeout实现1秒后执行});
取消延迟执行的方法
延迟执行的实际用途
setTimeout的0延迟特性
总结