编写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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。