js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()

简介: 写在前面:在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数。这里面涉及到了三个函数方法:setInterval()、setTimeout()、clearInterval(),本文将围绕这三种函数的用法,来实现定时器的功能,需要的朋友可以过来参考下,喜欢的可以点波赞,或者关注一下本人,希望对大家有所帮助。定时器的应用需求:1.设定一个时间,当时间到达的时候执行函数————比如:倒计时跳转页面等等。2.每隔一段时间重复执行某段函数————比如抢票软件,比如设定500毫秒就重复刷新一次页面等等。倒计时跳转实现demo:

写在前面:

在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数。这里面涉及到了三个函数方法:setInterval()、setTimeout()、clearInterval(),本文将围绕这三种函数的用法,来实现定时器的功能,需要的朋友可以过来参考下,喜欢的可以点波赞,或者关注一下本人,希望对大家有所帮助。


定时器的应用需求:

1.设定一个时间,当时间到达的时候执行函数————比如:倒计时跳转页面等等。

2.每隔一段时间重复执行某段函数————比如抢票软件,比如设定500毫秒就重复刷新一次页面等等。

倒计时跳转实现demo:

image.pngimage.png


里面也有实时显示时间的方法。

js定时器:

菜鸟教程中是这么说的——js 定时器有以下两个方法:

setTimeout() :在指定的毫秒数后调用函数或计算表达式。

setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

使用语法:

setTimeout():setTimeout(code,millisec)

setInterval():setInterval(code,millisec[,"lang"])

参数:code————要进行调用的函数或者要执行的代码串。millisec————时间(默认毫秒来计算),lang————可选。 JScript | VBScript | JavaScript()

以上来自W3C:setTimeout() ,setInterval()

然而setTimeout()、setInterval()的区别在于

setTimeout():当方法执行完成定时器就立即停止(但是定时器还在,只不过没用了);

setInterval():当方法执行完成,定时器并没有停止,以后每隔[interval]这么长的时间都会重新的执行对应的方法[function],直到我们手动清除定时器为止;

意思就是:

setTimeout()时间到了只会执行一次,setInterval()不会停止,会不间断的执行对应的函数,直到我们手动暂停或窗口被关闭。

文章下面有demo讲解:


那么如何暂停setTimeout()、setInterval():

clearTimeout()取消由setTimeout() 方法设置的 timeout。

image.png

clearInterval() ,这个函数只有一个作用,就是暂停setInterval()调用函数。

image.png

参数id_of_settimeout的意思是:

clearTimeout是:使用clearTimeout()的函数名字,或者clearTimeout()调用的函数的名字。

setInterval是:使用setInterval()的函数名字,或者setInterval()调用的函数的名字。

提示:setTimeout、setInterval在设置定时器的时候有区别,然而他们在清除定时器的时候没有区别。

W3C资料:clearTimeout()clearInterval()


倒计时跳转demo讲解:

//html相关部分:
    <div class="time">请等待<span id="dd">5</span>秒</div>
    //这里的5是初始5秒跳转。
//js部分:
function run(){
            var s = document.getElementById("dd");//获取dd的dom
            if(s.innerHTML == 0){// 当dd==0的时候,跳转链接并且暂停函数
                window.location.href = "https://juejin.cn/user/78820536236951";
                clearInterval(run());//取消由 setInterval() 设置的 timeout,,这里数字暂停在0这里,否则时间会继续往下减会出现负数。
                //setInterval调用了run(),所以setInterval的返回ID值是run()
            }
            s.innerHTML = s.innerHTML -1;//从5秒开始,隔一秒跑一次run()然后减1
        }
        window.setInterval("run();", 1000); //这段代码的效果是一秒调用一次run(), 
        //“run()”是要执行的代码块,1000是时间,默认单位是毫秒

上面这段代码主要是一个倒计时的效果,setInterval每隔一秒调用一次代码块run(),当时间被减到0的时候,暂停继续调用run(),否则会出现-1、-2的情况,然后跳转链接。具体的不懂的可以看代码注释,写的很详细。

如果还不知道的话,可以自己做个demo试试效果就知道了。

demo链接:

倒计时跳转

菜鸟教程也有一个demo:

image.png

这也是一篇文章,写的听不错的,推荐一波!

链接地址:js 定时器

目录
相关文章
|
3天前
|
JavaScript 前端开发 开发者
JavaScript中setInterval与setTimeout的异同及使用
【4月更文挑战第22天】JavaScript的`setInterval`和`setTimeout`都用于定时执行任务,但有区别。`setInterval`会按指定间隔反复执行,直到被`clearInterval`停止,可能导致函数堆积;`setTimeout`只执行一次,延迟后执行,适合递归调用来模拟间隔。选择使用时要考虑任务的重复性、执行依赖及可能的性能影响。
|
1月前
|
JavaScript 前端开发
javascript中的switch用法
javascript中的switch用法
|
3月前
|
JavaScript
JS定时器
JS定时器
23 0
|
3月前
|
JavaScript 前端开发 数据安全/隐私保护
JS实现定时器
JS实现定时器
44 0
|
2天前
|
JavaScript 前端开发
js开发:请解释this关键字在JavaScript中的用法。
【4月更文挑战第23天】JavaScript的this关键字根据执行环境指向不同对象:全局中指向全局对象(如window),普通函数中默认指向全局对象,作为方法调用时指向调用对象;构造函数中指向新实例,箭头函数继承所在上下文的this。可通过call、apply、bind方法显式改变this指向。
7 1
|
7天前
|
JavaScript 前端开发
JavaScript 定时器
JavaScript 定时器
|
22天前
|
JavaScript 前端开发
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
10 0
|
1月前
|
JavaScript 前端开发
JS定时器与延时器
JS定时器与延时器
|
2月前
|
机器学习/深度学习 JavaScript Python
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
68 0
|
2月前
|
前端开发 JavaScript BI
JavaScript的过滤大师:深度解析Filter用法
JavaScript的过滤大师:深度解析Filter用法
68 0