广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    javascript中SetInterval与setTimeout的定时器用法

    2018-04-13 09:16:27 次阅读 稿源:互联网
    零七广告

    示例一:查看演示 下载源码

    setTimeOut用法

    var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]); var timeoutID = window.setTimeout(code, [delay]); 

    func:延迟的时间,单位毫秒。如果没有指定,默认为0。

    function timeout(){  document.getElementById('res').innerHTML=Math.floor(Math.random()*100 + 1); } setTimeout("timeout()",5000); 

    应用示例:

    var tt = 10; function timego(){  tt--;  document.getElementById("tt").innerHTML = tt;  if(tt==0){   window.location.href='/';   return false;  } } var timer = window.setInterval("timego()",1000); 
    window.clearInterval(timer); 

    示例二:

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

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

    它们的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中,expression可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数。

    <script language="JavaScript" type="text/javascript"><!-- function hello(){ alert("hello"); } window.setTimeout(hello,5000);//--> </script>
    <script language="JavaScript" type="text/javascript"><!--function hello(){  alert("hello");}var id=window.setTimeout(hello,5000);document.onclick=function(){  window.clearTimeout(id); }//--></script>

    2.window.setInterval方法 该方法使得一个函数每隔固定时间被调用一次,是一个很常用的方法。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"] //定义定时器的idvar id;//每10毫秒该值增加1var 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>
    //根据用户名显示欢迎信息function hello(_name){   alert("hello,"+_name); }
     window.setTimeout(hello(userName),3000);
    window.setTimeout("hello(userName)",3000);

    <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>

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

      JS里设定延时:

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

    如果用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>虽然SetInterval与setTimeout都是用作定时器的,但它们的应用是有区别的。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告