js中SetInterval与setTimeout延时方法

JS手册»setTimeout() : 用于在指定的毫秒数后调用函数或计算表达式;
英文释义»timeout() : 超时;暂时休息;工间休息;
JS手册»setInterval() : 按照指定的周期(以毫秒计)来调用函数或计算表达式. 会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭;
英文释义»interval() : 间隔;间距;幕间休息;
不难看出, 只要我们仔细体会JS手册及命名释义, 就能很容易的区分开两者的区别. 简单的说, 两才的区别在于, setTimeout()方法是在等待指定时间后执行函数, 且只执行一次传入的句柄函数. setInterval()方法是每指定间隔时间后执行一次传入的句柄函数,循环执行直至关闭窗口或clearInterval().

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

时间: 2024-10-10 21:05:49

js中SetInterval与setTimeout延时方法的相关文章

js 传递函数: JS中setInterval、setTimeout不能传递带参数的函数的解决办法

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.一.采用字符串形式:--(缺陷)参数不能被周期性改变setInterval("foo(id)",1000);二.匿名函数包装 (推荐)window.setInterval(function()    {foo (id);    }, 1000);   这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去:三.定义返回无参函数的

JS中setInterval、setTimeout不能传递带参数的函数的解决方案_javascript技巧

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数, 这就需要想方法解决. 一.采用字符串形式:--(缺陷)参数不能被周期性改变 setInterval("foo(id)",1000); 二.匿名函数包装 (推荐) 复制代码 代码如下: window.setInterval(function() { foo (id); }, 1000); 这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去: 三

js中setInterval与SetTimeOut实现团购倒计时效果

简单示例 看个简单的例子,简单页面在加载完两秒后,写下Delayed alert!  代码如下 复制代码 setTimeout('document.write("Delayed alert!");', 2000); 我们先来看一个setInterval版计时跳转效果 代码如下  代码如下 复制代码 $(function () { setInterval(function () { var time = $("#time").text(); time = parseI

js中setInterval 和 setTimeout 事件停止的用法

setInterval() 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来执行函数或表达式.该方法会不停地循环调用函数,直到使用 clearInterval() 明确停止该函数或窗口被关闭.clearInterval() 函数的参数即 setInterval() 返回的 ID 值. 语法 setInterval(code,millisec[,"lang"]) code 必需.要调用的函数或要执行的代码串. millisec 必须.周期性执行或调用 code

JavaScript中SetInterval与setTimeout的用法详解_javascript技巧

setTimeout 描述 setTimeout(code,millisec) setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止 参数 描述 code 必需,要调用的函数后要执行的 JavaScript 代码串. millisec 必需,在执行代码前需等待的毫秒数. setTimeinterval setInterval(code,millisec[,"lang"]) 参数

javascript-急!!!!求大神!js中如何把setTimeout的时间写活?

问题描述 急!!!!求大神!js中如何把setTimeout的时间写活? 我这里有一个算法,但是每次调用后会根据不同的需要所耗费的时间不同, 然后我要写一个绑定事件来反复调用这个函数,如果把时间写死,有的算法很快会浪费时间,但是也有的算法会执行不完,如何才能根据不同的需要把算法正好执行完后再执行之后的内容... 解决方案 算法有返回值没有,有的话判断一下,如果执行完成,则再次调用函数. 解决方案二: 虽然不太清楚,你的需求是什么.但是你所说的改变setTimeout的时间来处理你现在所遇到的问题

js中取绝对值的2种方法

本篇文章是对js中取绝对值的2种方法进行了介绍说明,需要的朋友可以参考下   1.abs()   var aaa=-20;    var bbb=Math.abs(aaa); 2.加减法   var aaa=-20;    var bbb=-aaa

js中小数转换整数的方法

 js中小数转换整数的方法有很多,有下退.上进.四舍五入等等,需要的朋友可以了解下本文 JS小数转为整数 floor:下退 Math.floor(12.9999) = 12 ceil:上进 Math.ceil(12.1) = 13; round: 四舍五入 Math.round(12.5) = 13 Math.round(12.4) = 12   

javascrpit-php如何翻写js中的new Date().getTime();方法

问题描述 php如何翻写js中的new Date().getTime();方法 如题 如题,js好像是到毫秒级, 求解答 求解答啊!!!!!! 解决方案 round(microtime(1)*1000) 解决方案二: 使用microtime 解决方案三: 直接ctime(); 解决方案四: 写错了,直接是time();函数就可以了. 解决方案五: getTime得到就是时间戳,php有time方法. php获取当前时间戳方法 解决方案六: 使用microtime可以满足你的需求吗? 上面的答案有