settimeout重复执行用法
前言
js实现轮播图最简代码 Javascript 是一门极其灵活的编程语言,它不仅可以实现与用户交互的动态效果,还可以通过 DOM 操作和 AJAX 技术实现与服务器的交互,功能十分强大。其中,定时任务是 Javascript 开发中最常用的功能之一。针对定时执行任务这一问题,Javascript 提供了多种方法,其中 setTimeout() 函数就是实现定时循环的最简单方式。
在本文中,我们将会探讨使用 setTimeout() 函数执行循环操作的方法、技巧和注意事项。我们将从以下几个方面进行展开:
1. 定时执行任务的背景
2. setTimeout() 函数基础知识
5. 总结
在 Web 应用程序中,我们经常需要编写一些需要定时执行的任务,例如轮播图、实时数据
更新、定时保存数据等。此时,我们需要使用一些特定的方法来实现这些任务。Javascript 中,常用的定时器有 setInterval() 和 setTimeout()。
setInterval() 函数表示每隔一段时间执行一次指定的脚本代码。但是,使用 setInterval() 函数容易出现问题,例如遗漏一些任务、定时器偏移等。因此,使用 setTimeout() 函数可以避免这些问题。
setTimeout() 函数是浏览器内置的一个函数,用于在指定的时间间隔后执行指定的任务。在以下内容中,我们将进一步探讨 setTimeout() 函数的使用方法。
setTimeout() 函数属于 Window 对象的一部分,在使用前不需要先创建对象。
语法:
setTimeout(function, milliseconds, param1, param2, ...);
参数说明:
function:必选参数,将要执行的函数或一段 JS 代码语句。可以是函数名或一个匿名函数
表达式,并且可以包含一个或多个参数。
milliseconds:必选参数,执行方法之前需要等待的时间,单位是毫秒(1秒等于1000毫秒)。
param1, param2, ...:可选参数,将传递到 function 中的参数,多个参数用逗号分隔。
返回值:
定时器ID,该值可以用于调用 clearTimeout() 函数来取消定时操作。
setTimeout() 函数最常见的用法是通过多次调用该函数来模拟循环操作。它的实现方法如下:
// 定义一个循环函数
function loop() {
// Do Something;
setTimeout(loop, 1500); // 循环执行,每 1.5 秒执行一次
}
// 执行循环操作
setTimeout(loop, 1500);
以上代码定义了一个循环函数 loop(),函数中的代码填充了具体的操作内容。setTimeout(loop, 1500) 将循环函数以及设置的时间间隔作为参数传递给 setTimeout() 函数,这样就可以实现定时循环操作了。
1、递归调用
通过递归调用延迟函数的方式可以实现循环执行多个操作的效果。setTimeout() 函数执行完一段代码后会通过返回值的方式返回一个定时器 ID,后续可以通过该 ID 取消该定时器。
递归执行可以使用下面的方法实现:
以上代码定义了一个递归函数 recursiveFn(),在函数中执行操作后通过 setTimeout() 函数递归执行,可以获得一个 3 秒的时间间隔并重复执行该函数。
2、定时器延迟
setTimeout() 函数的时间参数不是一个绝对的时间值,而是一个指定时间后执行任务的一个时间差。这个时间差不保证准确无误,因为时间差会受到浏览器中其他任务的影响。因此,定时器的运行时间会因为浏览器的负载而受到影响。
为了避免这种影响,可以在定时器执行代码之前将当前时间存储在变量中,紧接着计算出定时器的执行时间,最后确定代码执行时间。
3、清除定时器
定时任务完成后,为避免无用任务浪费资源,最好使用 clearTimeout() 函数清除我们创建的定时器。在使用 setTimeout() 函数时,函数会返回一个定时器 ID,我们可以使用这个 ID 来取消定时器。例如:
clearTimeout(timer);
4、定时器执行过程中的动态变化
在执行定时器方法时,可以动态更改循环时间。
例如:
// 定义动态变化的定时器,初始时间是 1000
let dynamic_timer = setTimeout(function(){
console.log("1");
console.log("2");
console.log("3");
setTimeout(dynamic_timer, 1000 * 5); // 运行中动态更改时间为 5000
}, 1000);
在上例中,使用了 setTimeout() 函数以及定时器 ID 动态更改了定时器的时间。首先设置定时器的开始时间为 1000 毫秒,然后在任务执行过程中修改了定时器的时间为 5000 毫秒。
五、总结
setTimeout() 函数是 Javascript 开发中经常使用的一个定时器方法,该方法可用于模拟循环操作,执行递归调用,定时器延迟和清除定时器操作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论