JS里设定延时:

使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

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

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

clearTimeout(对象) 清除已设置的setTimeout对象 clearInterval(对象) 清除已设置的setInterval对象

使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval。其中前者可以使一段代码在指定时间后运行;而后者则可以使一段代码每过指定时间就运行一次。它们的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中,expression可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数。两个方法的第二个参数是milliseconds,表示延时或者重复执行的毫秒数。下面分别介绍两种方法。

1.window.setTimeout方法 该方法可以延时执行一个函数,例如:

<script language="JavaScript" type="text/javascript">

<!--

function hello(){ alert("hello"); } window.setTimeout(hello,5000);

//-->

</script>

这段代码将使得页面打开5秒钟后显示对话框“hello”。其中最后一句也可以写为: window.setTimeout("hello()",5000); 读者可以体会它们的差别,在window.setInterval方法中也有这样的性质。 如果在延时期限到达之前取消延执行,可以使用window.clearTimeout(timeoutId)方法,该方法接收一个id,表示一个定时器。这个id是由setTimeout方法返回的,例如:

<script language="JavaScript" type="text/javascript">

<!--

function hello(){

alert("hello");

}

var id=window.setTimeout(hello,5000);

document.onclick=function(){

window.clearTimeout(id);

}

//-->

</script>

这样,如果要取消显示,只需单击页面任何一部分,就执行了window.clearTimeout方法,使得超时操作被取消。

2.window.setInterval方法 该方法使得一个函数每隔固定时间被调用一次,是一个很常用的方法。如果想要取消定时执行,和clearTimeout方法类似,可以调用window.clearInterval方法。clearInterval方法同样接收一个setInterval方法返回的值作为参数。例如: //定义一个反复执行的调用 var id=window.setInterval("somefunction",10000); //取消定时执行 window.clearInterval(id); 上面的代码仅用于说明怎样取消一个定时执行。实际上在很多场合都需要用到setInterval方法,下面将设计一个秒表,来介绍setInterval函数的用途:该秒表将包括两个按钮和一个用于显示时间的文本框。当单击开始按钮时开始计时,最小单位为0.01秒,此时再次单击按钮则停止计时,文本框显示经过的时间。另外一个按钮用于将当前时间清零。其实现代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html>
<head>
<title> New Document </title>
</head>
<body>
<form action="somepage.asp">
<input type="text" value="0" name="txt1"/>
<input type="button" value="开始" name="btnStart"/>
<input type="button" value="重置" name="btnReset"/>
</form>
</body>
</html>

<script language="JavaScript" type="text/javascript">

<!--

//获取表单中的表单域

var txt=document.forms[0].elements["txt1"];

var btnStart=document.forms[0].elements["btnStart"];

var btnReset=document.forms[0].elements["btnReset"]

//定义定时器的id

var id;

//每10毫秒该值增加1

var seed=0;

btnStart.onclick=function(){

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

if(this.value=="开始"){

//使按钮文本变为停止

this.value="停止";

//使重置按钮不可用

btnReset.disabled=true;

//设置定时器,每0.01s跳一次

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

else{

//使按钮文本变为开始

this.value="开始";

//使重置按钮可用

btnReset.disabled=false;

//取消定时

window.clearInterval(id);

} }

//重置按钮

btnReset.onclick=function(){

seed=0;

}

//让秒表跳一格

function tip(){

seed++;

txt.value=seed/100;

}

//-->

</script>

给定时器调用传递参数 无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决。例如对于函数hello(_name),它用于针对用户名显示欢迎信息: var userName="jack";

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

function hello(_name){

alert("hello,"+_name);

}

这时,如果企图使用以下语句来使hello函数延迟3秒执行是不可行的:

window.setTimeout(hello(userName),3000);

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

window.setTimeout("hello(userName)",3000);

这里的字符串是一段JavaScript代码,其中的userName表示的是变量。但这种写法不够直观,而且有些场合必须使用函数名,下面用一个小技巧来实现带参数函数的调用:

<script language="JavaScript" type="text/javascript"> <!-- var userName="jack";

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

function hello(_name){

alert("hello,"+_name);

}

//创建一个函数,用于返回一个无参数函数

function _hello(_name){

return function(){

hello(_name);        } }

window.setTimeout(_hello(userName),3000);

//-->

</script>

这里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。在window.setTimeout函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。

window对象有两个主要的定时方法,分别是setTimeout 和 setInteval 他们的语法基本上相同,但是完成的功能取有区别。

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

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

  JS里设定延时:

使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

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

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

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

clearTimeout(对象) 清除已设置的setTimeout对象

clearInterval(对象) 清除已设置的setInterval对象

如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要根据使用的方法不同,调用不同的清除方法:

例如:tttt=setTimeout('northsnow()',1000);

clearTimeout(tttt);

或者:

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

clearInteval(tttt);

举一个例子:

<div id="liujincai">

</div>

<input type="button" name="start" value="start" onclick='startShow();'>

<input type="button" name="stop" value="stop" onclick="stop();">

<script language="javascript">

var intvalue=1;

var timer2=null;

function startShow()    {

liujincai.innerHTML=liujincai.innerHTML + " " + (intvalue ++).toString();

timer2=window.setTimeout("startShow()",2000);    }

function stop()    {

window.clearTimeout(timer2);

}

</script>

或者:

<div id="liujincai">

</div>

<input type="button" name="start" value="start" onclick='timer2=window.setInterval("startShow()",2000);//startShow();'>

<input type="button" name="stop" value="stop" onclick="stop();">

<script language="javascript">

var intvalue=1;

var timer2=null;

function startShow()    {

liujincai.innerHTML=liujincai.innerHTML + " " + (intvalue ++).toString();

}

function stop()    {

window.clearInterval(timer2);

}

</script>

setTimeout()和setInterval()的用法的更多相关文章

  1. js,setTimeout与setInterval的用法

    1.setTimeout与setInterval的区别 setTimeout: 1.直接使用的话,按照指定 的时间,只执行一次传入的函数参数. 2.函数的终止使用clearTimeout. setIn ...

  2. setTimeout()与setInterval()

    一.setTimeout与setInterval的用法(http://www.css88.com/archives/5804) setTimeout是超时调用,javascript是一个单线程的解析器 ...

  3. Javascript的setTimeOut()和setInterval()的定时器用法

    Javascript用来处理延时和定时任务的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请 ...

  4. setTimeout和setInterval的unref()和ref()用法

    var testFunction=function(){ console.log("guoyansi"); } var timer=setInterval(testFunction ...

  5. 深入理解定时器系列第一篇——理解setTimeout和setInterval

    × 目录 [1]setTimeout [2]setInterval [3]运行机制[4]作用[5]应用 前面的话 很长时间以来,定时器一直是javascript动画的核心技术.但是,关于定时器,人们通 ...

  6. setTimeout和setInterval的注意事项

    精准问题 setTimeout的问题在于它并不是精准的,例如使用setTimeout设定一个任务在10ms后执行,但是在9ms后,有一个任务占用了5ms的cpu时间片,再次轮到定时器执行时,时间已经过 ...

  7. setTimeout 和 setInterval

    设置定时器,在一段时间之后执行指定的代码,setTimeout与setInterval的区别在于setTimeout函数指定的代码仅执行一次 方法一: window.setTimeout(" ...

  8. 你真的了解setTimeout和setInterval吗?

    博客园的代码排版真难用,编辑时候是好的,一保存就是乱了——本文也同时发表在我另一独立博客上 你真的了解setTimeout和setInterval吗?,可以移步至这里吧 setTimeout和setI ...

  9. JavaScript的setTimeout和setInterval的深入理解

    发表过一片博客<跟着我用JavaScript写计时器>,比较基础.....有网友说应该写一下setTimeout的原理和机制,嗯,今天就来写一下吧: 直奔主题:setTimeout和set ...

随机推荐

  1. random 函数

    Random()在Delphi中,有一随机函数,是这样定义的:function Random [ ( Range: Integer) ]; 其中,参数Range为一整数,该函数返回值也为整数,其范围为 ...

  2. S3C2440的定时器详解

    还包含用于大电流驱动的死区发生器 位预分频器是可编程的,并且按存储在TCFG0和TCFG1寄存器中的加载值来分频PCLK 位递减计数器.当递减计数器到达零时,产生定时器中断请求通知CPU定时器操作已经 ...

  3. HDU1429 bfs

    胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  4. 用JAVASCRIPT获得当前页的来路地址URL的五种方法

    var rUrl;rUrl = document.referrer; //获得当前页的来路地址URL rUrl = window.parent.location; //获得父窗口的地址URL rUrl ...

  5. 弹出式菜单(下拉菜单)实现——PopupMenu

    PopupMenu代表弹出式菜单,它会在指定组件上弹出PopupMenu,默认情况下,PopupMenu会显示在该组件的下方或上方.PopupMenu可增加多个菜单项,并可为菜单项增加子菜单. 使用P ...

  6. 【Xilinx-Petalinux学习】-07-OpenCV的软硬件处理速度对比

    有空了设计一个hls的图像处理IP. 通过hls设计ip模块实现opencv的图像处理. 对比软件和硬件的图像处理速度.

  7. 史上最全的css hack(ie6-9,firefox,chrome,opera,safari)

    <!DOCTYPE html> <html> <head> <title>Css Hack</title> <style> #t ...

  8. PAT1013 数素数

    思路: 打印素数表 然后找出对应区间[m,n]中的素数 #include <iostream> #include <vector> #include <cmath> ...

  9. [QT]简单介绍一下 *.pro、*.pri、*.prf、*.prl等四种文件

    转自:http://blog.csdn.net/dbzhang800/article/details/6348432 简单介绍一下 *.pro.*.pri.*.prf.*.prl等四种文件:干嘛用的, ...

  10. C++写时钟表

    time函数的运用,输出是没输换行,在流中,就什么的输不出,可以用清流函数,fflush(stdout) 代码 #include<iostream>#include<cstdio&g ...