1.JavaScript timer,我们可以在设定的时间间隔后执行代码,而不是在函数被调用后立即执行代码。
计时器类型:
1)一次性计时器:在指定的延迟时间后仅触发一次。
2)间隔触发定时器:每隔一定时间间隔触发一次。
计时器方法:
1)执行1)setInterval() :时,加载页面后每隔指定时间执行一次代码。
//语法setInterval(代码,交互时间);//参数说明:1。代码:要调用的函数或要执行的代码字符串。2.交互时间:周期性执行或调用表达式之间的时间间隔,单位为毫秒(1s=1000ms毫秒)。//返回值:可以传递给clearInterval()取消‘代码’的周期性执行。//调用函数格式:(假设有一个clock()函数): setinterval ('clock()',1000)//或者setInterval(clock,1000)//示例!DOCTYPE HTMl HTMl heartheta http-equiv=' Content-TYPe ' Content=' text/html;charset=utf-8 ' title timer/title script type=' text/JavaScript ' var int=set interval(clock,1000)//调用timer函数clock(){ var time=new date();document.getElementById('clock ')。值=时间;}/script/head body表单输入类型=' text ' id=' clock ' size=' 50 '/form/body/html 2)取消clearInterval():clearInterval():clearInterval()方法可以取消setInterval()设置的交互时间。
//语法clear interval(ID _ of _ setInterval)//参数说明: ID _ of _ setInterval:set interval()返回的ID值。//示例!DOCTYPE HTMl HTMl heartheta http-equiv=' Content-TYPe ' Content=' text/html;charset=utf-8 ' title timer/title script type=' text/JavaScript ' function clock(){ var time=new date();document.getElementById('clock ')。值=时间;}//每100ms调用一次clock函数,将返回值赋给ivar I=setinterval ('clock()',100);/script/head body表单输入类型=' text ' id=' clock ' size=' 50 '/输入类型=' button ' value=' stop ' onclick=' clear interval(I)'//表单/body/html//每隔100ms调用clock()函数并显示时间。单击按钮时,停止时间3) setTimeout()计时器,加载后,延迟指定时间执行表达式一次,只执行一次。
//语法setTimeout(代码,延迟时间);//参数说明:1。要调用的函数或要执行的代码字符串。2.延迟时间:执行代码前等待的时间,单位为毫秒(1s=1000ms毫秒)。//示例1//打开网页3秒后,弹出提示框!DOCTYPE html html headscript type=' text/JavaScript ' setTimeout(' alert(' Hello!')', 3000 );/script/headbody/body/html//示例2//点击start按钮,setTimeout()调用函数,5秒后弹出提示框!DOCTYPE HTMLhtmlheadscript type=' text/JavaScript ' function tinfo(){ var t=setTimeout(' alert(' Hello!')',5000);}/script/head dyform input type=' button ' value=' start ' onclick=' tinfo()'/form/body/html//example 3//要创建一个在无限循环中运行的计数器,需要编写一个函数来调用自身。在下面的代码中,当单击按钮时,输入字段从0开始计数!DOCTYPE HTMlHTMlHeadscript TYPe=' text/JavaScript ' var num=0;函数numCount(){ document . getelementbyid(' txt ')。值=numnum=num 1;setTimeout('numCount()',1000);}/script/headsdyforminputtype=' text ' id=' txt '/input type=' button ' value=' start ' onclick=' numcount()'//form/body/html 4)取消计时器clearTimeout(),setTimeout()和clearTimeout()一起用于停止计时器
//语法clear time out(ID _ of _ setTimeout)//参数说明: ID _ of _ setTimeout:setTimeout()返回的ID值。该值标识要取消的延迟执行代码块。//示例:添加一个‘停止’按钮,停止这个计数器!DOCTYPE HTMLhtmlheadscript type=' text/JavaScript ' var num=0,I;函数timed count(){ document . getelementbyid(' txt ')。值=numnum=num 1;i=setTimeout(timedCount,1000);} setTimeout(timedCount,1000);函数stop count(){ clear time out(I);}/script/head body表单输入类型=' text' id=' txt '输入类型=' button '值=' stop ' onclick=' stop count()'//stop button/form/body/html set interval和settimeout之间的差异:
1)因为setTimeout (expression,delay time)在加载后指定的时间被延迟后执行一次,记住次数是一次;SetInterval(表达式,交互时间)不同。它在加载后每隔指定时间执行一次表达式,所以完全不同
2)很多人习惯在执行的函数中包含setTimeout,然后在函数外再次使用setTimeout,达到定时执行的目的;这样,函数外的setTimeout在执行函数时再次触发setTimeout,从而形成一个计时效果的循环。
3)使用时各有所长。使用setInterval时,需要手动停止滴答触发。在方法中使用嵌套的setTimeout时,根据方法本身内部的逻辑,如果停止调用setTimeout,就会停止触发。
//setTimeout示例show time();函数show time(){ var day=new Date();Alert ('time为: ' day . ToString());setTimeout('showTime()',1000);}//setInterval示例setInterval('showTime()',1000);函数show time(){ var day=new Date();Alert ('time为: ' day . ToString());}这两个方法看起来可能非常相似,显示的结果也很相似,但它们之间最大的区别是setTimeout方法不是每1秒执行一次showTime函数,而是在每次调用setTimeout后1秒执行showTime函数。这意味着如果showTime函数的主要部分需要2秒钟才能执行,那么整个函数每3秒钟只会执行一次。另一方面,SetInterval不受它调用的函数的约束。它只是定期重复该功能。
如果要求在每个固定的时间间隔后准确执行一个动作,最好使用setInterval,如果不想因为连续调用而互相干扰,尤其是函数的每次调用都需要很重的计算和很长的处理时间,最好使用setTimeout。
如果计时器功能未被处理,setInterval将继续执行相同的代码,直到浏览器窗口关闭或用户转到另一个页面。但是,有一些方法可以终止setTimeout和setInterval函数的执行。
以上就是边肖带来的JavaScript定时器对象的全部内容。希望大家多多支持我们~