javascript定时器setTimeout和setInterval

  在网页的特效制作中,经常要用到定时器,比如:间隔一定时间后页面自动跳转,或者间隔一定时间出现某种效果,像网页上的飞雪连天,或者背景颜色的定时改变等等。

  若要页面定时跳转,简单的可以在head头部的meta标记中设定重定向就可以了。但我要说的是javascript中的定时器,它的功能是十分强大和有用的。

定时器的类别

  在javascript中有两个关于定时器的函数,它们是:

倒计定时器:

  timename=setTimeout("function();",delaytime);

循环定时器:

  timename=setInterval("function();",delaytime);

  其中倒计定时器顾名思义,是设定一段时间后执行function()函数,而循环定时器则是每隔一段时间都执行function()函数一次。
   倒计定时器一般用在一段时间后的触发的事件,比如页面的定时跳转,有一些站点就是在注册完成后自动跳转到登录页面,或者用于确定是“老客”还是“新 客”,是老客则会点击确定的某个地方(由站长设定)而快速进入站点,如果是“新客”,就不知道特定的点击处,所以可以设定5秒或者10秒转入新客页面。
  循环定时器则用于页面上的持续效果,比如背景用飞雪。

定时器参数

  function()函数,可以是一个函数,也可以是几个函数,中间用;连接,还可以接入javawcript的语句。
       delaytime参数:则是设定间隔的时间,以毫秒为单位。

定时器的取消

  有时候,我们想把一个定时器去掉,像循环定时器就是一直不停的运动的。
  clearTimeout(timename)来清除setTimeout()定时器,参数timename为setTimeout()函数的返回值;
  clearInterval(timename)来清除setInterval()定时器,参数timename为setInterval()函数的返回值。

====================================================

实例讲解

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


window.setTimeout方法

该方法可以延时执行一个函数,例如:
<script language="JavaScript" type="text/javascript">
<!--
  function hello(){
    alert("hello");
  }
  window.setTimeout(hello,5000);
//-->
</script>
这段代码将使得页面打开5秒钟后显示对话框“hello”。其中最后一句也可以写为:
window.setTimeout("hello()",5000);
window.setTimeout(hello,5000);和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方法,使得超时操作被取消。

window.setInterval方法

其实window.setInterval方法的使用和window.clearTimeout方法大同小异,代码如下:

<script language="JavaScript" type="text/javascript"> 
<!-- 
function hello(){ 
  alert("hello"); 

var id=window.setInterval(hello,5000); 
document.onclick=function(){ 
  window.clearInterval(id); 

//--> 
</script> 


  好了,现在你就可以用定时器来为你的主页增光添彩了。

 

出处:http://www.cnblogs.com/phyllis/archive/2011/05/25/2056323.html

出处:http://www.cnblogs.com/phyllis/archive/2011/05/25/2056324.html

====================================================

个人使用

再写一个我自己的使用示例吧

//使用setInterval方法
// 创建一个定时器,每秒执行一次任务,如果任务完成或超过尝试次数时,停止执行
var taskCount=0;
var intervalId = setInterval(function() {
    // 执行任务
    var taskIsFinished = hello();// 在这里执行你的任务,并返回执行结果
    taskCount++;
    // 如果任务完成或尝试指定次数时,停止定时器
    if (taskIsFinished || taskCount > 10) {
        clearInterval(intervalId);
    }
}, 1000);00);


//使用setTimeout方法,大同小异,自行参考上面的修改
setTimeout(hello,1000);

 

posted on 2013-11-07 11:32  jack_Meng  阅读(734)  评论(0编辑  收藏  举报

导航