当前位置: 首页 > Web前端 > JavaScript

JavaScript定时器

时间:2023-03-27 10:07:55 JavaScript

简单介绍一下,JavaScript中有setInterval()和setTimeout()两种定时器,分别有取消定时器的方法。这些都是window对象,调用时可以省略window。这两个方法不在JavaScript规范中。与定时器方法相关的方法有四种。方法说明setInterval周期性地调用一个函数(function)或执行一段代码。clearInterval取消用setInterval设置的重复执行动作。setTimeout在指定的延迟时间后调用函数或执行代码片段。clearTimeout方法取消setTimeout()方法设置的超时。setTimeout()和setInterval()的区别在于它们执行的时间不同。??setTimeout()只执行一次,而setInterval()会以给定的时间间隔定期执行。setInterval说明setInterval()方法可以按照指定的周期重复调用一个函数或执行一段代码。周期单位为毫秒。如果setInterval()方法没有被clearInterval()方法关闭或者页面关闭,就会一直调用。setInterval有多个参数。首先,如果第一个参数是代码段,那么setInterval()方法可以是可选的。其次,如果第一个参数是一个函数,那么setInterval()方法可以有多个参数。lettimerId=setInterval(func|code,delay,arg1,arg2,...)参数参数必选/可选说明func\code必选调用delay函数后要执行的函数或代码串必选执行代码之前所需时间,单位毫秒,可以留空,默认值为0arg1,arg2...传递给执行函数的可选参数列表(或代码字符串)(IE9以下不支持)??参数func|code一般传入是功能。由于一些历史原因,支持传入代码字符串,但不推荐。返回值返回值timeoutID为正整数,表示定时器的编号。可以将该值传递给clearTimeout()以取消计时器。用法这是一个点击按钮并每秒增加一个数字的例子;

点我让数字每秒加一setTimeout说明setTimeout()返回一个整数,表示定时器的编号,可以用来稍后取消定时器。setTimeout()允许我们将函数的执行推迟到一段时间间隔之后。lettimerId=setTimeout(func|code,delay,arg1,arg2,...)parameterssetTimeout()的参数与setInterval()的参数相同。parameterrequired/optionaldescriptionfunc\coderequiredfunctiontobeexecutedaftercallingfunctionorcodestringdelayrequiredtimebeforeexecutingthecode所需时间,单位毫秒,可留空,默认值为0arg1,arg2...optional填写参数要传递给执行函数的列表(或代码字符串)(IE9以下不支持)??参数func|code一般作为函数传入。由于一些历史原因,支持传入代码字符串,但不推荐。用法:setTimeout()的用法与setInterval()相同,只是setTimeout()只执行一次,setInterval()是按照指定时间周期性执行的。

点击后等待一秒,数字加一canceltimerclearInterval()方法取消由setInterval()设置的定时器。clearTimeout()方法取消由setTimeout()设置的定时器。使用方法很简单,只有一个参数,参数timeoutID就是你要取消的定时器的标识。ID由对应的setTimeout()或clearTimeout()调用返回。clearInterval(intervalID);clearTimeout(timeoutID);??注意setTimeout()和setInterval()共用一个数字池。从技术上讲,clearTimeout()和clearInterval()是可以互换的。但是,为避免混淆,请勿混用未计时的函数。用法很简单functiontimer(){timerId=setTimeout(addNum,1000);}clearTimeout(timerId);//当代码运行到这一行时,timer设置的定时器会被取消。在控制台中使用定时器在浏览器控制台中,也可以使用定时器console.time(timerName)创建一个名为name的定时器并开始计时。??每个定时器必须有唯一的名字,页面最多可以同时运行10000个定时器。console.timeEnd(timerName)调用console.timeEnd(name)停止计时器并输出经过的时间(以毫秒为单位)。console.time(timerName);console.timeEnd(timerName);使用for循环99999次多少时间example.console.time(name);letnum;for(letindex=0;index<99999;index++){num++;}console.timeEnd(名称);