,,JavaScript中SetInterval与setTimeout的用法详解

,,JavaScript中SetInterval与setTimeout的用法详解

编写H5游戏时,经常需要定期刷新页面以达到动画效果。setTimeout()和SetInterval()是常用的,但是你知道setInterval和setTimeout的用法吗?下面通过本文详细讲解js中SetInterval和setTimeout的用法,供大家参考。

setTimeout

形容

setTimeout(代码,毫秒)

SetTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。

注意:在调用过程中,可以使用clearTimeout(id_of_settimeout)终止。

参数

形容

密码

必要参数,在调用函数后执行的JavaScript代码字符串。

毫秒

必需,执行代码前等待的毫秒数。

setTimeinterval

setInterval(代码,毫秒[,' lang'])

参数

形容

密码

必需的,要调用的函数或要执行的代码串。

毫秒

必要参数,周期性执行或调用代码的时间间隔,以毫秒为单位。

setInterval()方法可以在指定的时间段(以毫秒为单位)调用函数或计算表达式。

JS里设定延时:

使用SetInterval类似于设置延迟函数setTimeout。SetTimeout用于将操作延迟一段时间。

SetTimeout('function ',time)设置超时对象setInterval('function ',time)设置超时对象。

SetInterval自动重复,setTimeout不会重复。

ClearTimeout (object)清除setTimeout对象clearInterval (object)清除set setInterval对象。

setInterval()方法可以在指定的时间段(以毫秒为单位)调用函数或计算表达式。

利用timer实现JavaScript window对象的延迟执行或重复执行提供了两种方法来实现Timer的效果,分别是window.setTimeout()和window.setInterval前者可以让一段代码在指定的时间后运行;后者可以让一段代码每隔指定时间运行一次。它们的原型如下:window.settimeout(表达式,百万);window.setInterval(表达式,毫秒);其中,expression可以是一段用引号括起来的代码,也可以是一个函数名,系统会在指定的时间自动调用该函数。函数名作为调用句柄时,不能有任何参数;当使用字符串时,您可以编写要在其中传递的参数。这两个方法的第二个参数是毫秒,它指示延迟或重复执行的毫秒数。

下面分别介绍两种方法。

1.window.settimeout方法该方法可以延迟函数的执行,例如:

脚本语言='JavaScript '类型='text/javascript '

!-

函数hello(){ alert(' hello ');} window.setTimeout(你好,5000);

//-

/脚本

此代码将导致在页面打开5秒钟后显示对话框“hello”。最后一句也可以写成:window.settimeout ('hello()',5000);读者可以体会他们的不同,这个属性也存在于window.setInterval方法中。如果延迟执行在延迟截止日期之前被取消,可以使用window.clearTimeout(timeoutId)方法,该方法接收一个指示计时器的Id。该id由setTimeout方法返回,例如:

脚本语言='JavaScript '类型='text/javascript '

!-

函数hello(){

alert(' hello ');

}

var id=window.setTimeout(你好,5000);

document.onclick=function(){

window . clear time out(id);

}

//-

/脚本

这样,如果要取消显示,只需点击页面的任意部分,window.clearTimeout方法被执行,从而取消超时操作。

2.窗户。SetInterval方法。这个方法每隔固定时间调用一次函数。这是一种非常常见的方法。如果要取消预定的执行,可以调用window.clearInterval方法,类似于clearTimeout方法。clearInterval方法还接收setInterval方法返回的值作为参数。比如://定义一个重复调用var ID=window.setInterval('某函数',10000);//取消window.clearInterval(id)的定时执行;上面的代码只是用来解释如何取消一个预定的执行。实际上,setInterval方法在很多情况下都是需要的。这里,将设计一个秒表来介绍setInterval函数的用途:秒表将包括两个按钮和一个用于显示时间的文本框。单击开始按钮时,最小单位为0.01秒。再次点击按钮时,时间将停止,文本框将显示经过的时间。另一个按钮用于重置当前时间。其实现代码如下:

!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN '

超文本标记语言

标题新文档/标题

/头

身体

表单操作='somepage.asp '

输入类型='text '值='0 '名称='txt1'/

type=' button ' value=' start ' name=' Bt nstart '/

type=' button ' value=' reset ' name=' BTN reset '/

/表单

/body

/html

脚本语言='JavaScript '类型='text/javascript '

!-

//获取表单中的表单字段

var txt=document.forms[0]。elements[' tx t1 '];

var btnStart=document.forms[0]。elements[' Bt nstart '];

var btnReset=document.forms[0]。元素['btnReset']

//定义计时器的id

var id

//该值每10毫秒增加1

var seed=0;

btnStart.onclick=function(){

//根据按钮文本判断当前操作

If(this.value==' start') {

//使按钮文本停止

This.value=' stop

//使重置按钮不可用

btnReset.disabled=true

//设置定时器每0.01秒跳一次

id=window.setInterval(tip,10);}

否则{

//使按钮文本开始

This.value=' start

//使重置按钮可用

btnReset.disabled=false

//取消计时

window . clear interval(id);

} }

//重置按钮

btnReset.onclick=function(){

种子=0;

}

//让秒表跳一格。

函数提示(){

种子;

txt . value=seed/100;

}

//-

/脚本

给定时器调用传递参数,无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,但很多情况下都要带参数,需要解决。比如对于函数hello(_name),用来显示用户名的欢迎信息:var userName=' jack

//根据用户名显示欢迎消息

函数hello(_name){

alert('hello,' _ name);

}

此时,使用以下语句将hello函数的执行延迟3秒是不可行的:

window.setTimeout(hello(用户名),3000);

这将使hello函数立即执行,并将返回值作为调用句柄传递给setTimeout函数。结果不是程序需要的。而使用字符串形式可以达到预期的效果:

window . settimeout(' hello(userName)',3000);

这里的字符串是一段JavaScript代码,其中userName代表一个变量。但是这种写法不够直观,在某些情况下必须使用函数名。下面介绍一个实现带参数函数调用的小技巧:

脚本语言='JavaScript '类型='text/javascript '!- var用户名=' jack

//根据用户名显示欢迎消息

函数hello(_name){

alert('hello,' _ name);

}

//创建一个函数来返回无参数函数

function _hello(_name){

返回函数(){

你好(_姓名);} }

window.setTimeout(_hello(用户名),3000);

//-

/脚本

这里定义了一个function _hello,用来接收一个参数,返回一个不带参数的函数。外部函数的参数在该函数内部使用,因此可以不带参数调用。在window.setTimeout函数中,使用_hello(userName)返回一个不带参数的函数句柄,从而实现参数传递的功能。

窗户对象有两个主要的定时方法,分别是设置超时和设定间隔他们的语法基本上相同,但是完成的功能取有区别。

设置超时方法是定时程序,也就是在什么时间以后干什么。干完了就拉倒。

设置间隔方法则是表示间隔一定时间反复执行某操作。

JS里设定延时:

使用设置间隔和设定延时函数设置超时很类似暂停.运用在延迟一段时间,再进行某项操作。

setTimeout('function ',time)设置一个超时对象

setInterval('function ',time)设置一个超时对象

设置间隔为自动重复,设置超时不会重复。

清除超时(对象)清除已设置的设置超时对象

间隙(对象)清除已设置的设置间隔对象

如果用设置超时实现塞特内瓦尔的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要根据使用的方法不同,调用不同的清除方法:

例如:

tttt=setTimeout('northsnow()',1000);

清除超时(tttt);

或者:

tttt=setInterval('northsnow()',1000);

清除间隔(tttt);

举一个例子:

div id='刘进财'

/div

input type=' button ' name=' start ' value=' start ' onclick=' start show();'

input type=' button ' name=' stop ' value=' stop ' onclick=' stop();'

脚本语言='javascript '

var int value=1;

var定时器2=空

函数startShow() {

蔡。蔡。innerhtml“”(整数值).toString();

定时器2=窗口。settimeout(' start show()',2000);}

函数stop() {

window.clearTimeout(定时器2);

}

/脚本

或者:

div id='刘进财'

/div

输入type=' button ' name=' start ' value=' start ' onclick=' timer 2=window。setinterval(' start show()',2000);//start show();'

input type=' button ' name=' stop ' value=' stop ' onclick=' stop();'

脚本语言='javascript '

var int value=1;

var定时器2=空

函数startShow() {

蔡。蔡。innerhtml“”(整数值).toString();

}

函数stop() {

window.clearInterval(定时器2);

}

/脚本

以上内容是小编给大家介绍的关于Java脚本语言中设置间隔与设置超时的用法详解,希望对大家学习设置间隔与设置超时的相关知识有所帮助。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: