思维的乐趣

Enjoy it
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JS 中 setTimeOut 与 setInterval 的异同

Posted on 2010-06-21 12:07  szh114  阅读(689)  评论(0编辑  收藏  举报

这个问题的答案太普遍了,随便抄了一份在下面,感谢这位博主。

小村农家 javascript setTimeout 和 setInterval 区别

 

唯一需要特别注意的就是JS是大小写敏感的,千万不要把函数名写错了。

 

[setTimeout]
setTimeout(表达式,延时时间)
在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次

 

用setTimeout实现的自动变化显示随机数的效果:

<html>
  <head>
    <script>
      window.onload=sett;
      function sett()
      {
        document.body.innerHTML=Math.random();
        setTimeout("sett()",500);
      }
    </script>
  </head>
  <body>
  </body>
</html>


[setInterval]
setInterval(表达式,交互时间)
则不一样,它从载入后,每隔指定的时间就执行一次表达式

用setInterval实现的自动变化显示随机数的效果:

<html>
  <head>
    <script>
      function sett()
      {
        document.body.innerHTML=Math.random();
      }
      setInterval("sett();", 500);
    </script>
  </head>
  <body>
  </body>
</html>

 

这两种定时工具的使用各有各的优势,使用setInterval,需要手动的停止tick触发。而使用方法中嵌套setTimeout,可以根据方法内部本身的逻辑不再调用setTimeout就等于停止了触发。

 

其实两个东西完全可以相互模拟,具体使用那个,看当时的需要而定了。就像for可以模拟所有的循环包括分支,而还提供了do、while一样。