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 定时器

目录
相关文章
|
2月前
|
数据采集 Web App开发 JavaScript
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
随着互联网的发展,网页数据抓取已成为数据分析和市场调研的关键手段。Puppeteer是一款由Google开发的无头浏览器工具,可在Node.js环境中模拟用户行为,高效抓取网页数据。本文将介绍如何利用Puppeteer的高级功能,通过设置代理IP、User-Agent和Cookies等技术,实现复杂的Web Scraping任务,并提供示例代码,展示如何使用亿牛云的爬虫代理来提高爬虫的成功率。通过合理配置这些参数,开发者可以有效规避目标网站的反爬机制,提升数据抓取效率。
168 4
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
|
21天前
|
JavaScript 前端开发
JS try catch用法:异常处理
【10月更文挑战第12天】try/catch` 是 JavaScript 中非常重要的一个特性,它可以帮助我们更好地处理程序中的异常情况,提高程序的可靠性和稳定性。
13 1
|
26天前
|
JavaScript 前端开发
js的math.max的用法
js的math.max的用法
21 6
|
26天前
|
JavaScript
JS中的splice的三种用法(删除,替换,插入)
JS中的splice的三种用法(删除,替换,插入)
129 4
|
25天前
|
JavaScript 前端开发
js之一次性定时器
js之一次性定时器
10 1
|
25天前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
11 1
|
2月前
|
数据采集 存储 JavaScript
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
在现代Web开发中,数据采集尤为重要,尤其在财经领域。本文以“东财股吧”为例,介绍如何使用Puppeteer结合代理IP技术进行高效的数据抓取。Puppeteer是一个强大的Node.js库,支持无头浏览器操作,适用于复杂的数据采集任务。通过设置代理IP、User-Agent及Cookies,可显著提升抓取成功率与效率,并以示例代码展示具体实现过程,为数据分析提供有力支持。
Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping
|
2月前
|
JavaScript 前端开发
JavaScript用法
JavaScript用法
|
25天前
|
前端开发 JavaScript 开发者
深入理解JavaScript中的Promise:用法与最佳实践
【10月更文挑战第8天】深入理解JavaScript中的Promise:用法与最佳实践
46 0
|
2月前
|
JavaScript 前端开发 索引
JavaScript 数组中splice()的用法
本文介绍了JavaScript数组方法splice()的三种用法:删除元素、插入元素和替换元素,通过具体代码示例展示了如何使用splice()方法进行数组的修改操作。