浅谈JavaScript的计时器对象

1、JavaScript计时器,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。

计时器类型:

1)一次性计时器:仅在指定的延迟时间之后触发一次。

2)间隔性触发计时器:每隔一定的时间间隔就触发一次。

计时器方法:

1)setInterval() :在执行时,从载入页面后每隔指定的时间执行代码。

//语法
setInterval(代码,交互时间);

//参数说明:1. 代码:要调用的函数或要执行的代码串。2. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。

//返回值:一个可以传递给 clearInterval() 从而取消对"代码"的周期性执行的值。

//调用函数格式:(假设有一个clock()函数):
setInterval("clock()",1000)
//或
setInterval(clock,1000)

//例子
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
 var int=setInterval(clock, 1000)//调用计时器
 function clock(){
  var time=new Date();
  document.getElementById("clock").value = time;
 }
</script>
</head>
<body>
 <form>
  <input type="text" id="clock" size="50" />
 </form>
</body>
</html>

2)取消计时器clearInterval():clearInterval() 方法可取消由 setInterval() 设置的交互时间。

//语法
clearInterval(id_of_setInterval)

//参数说明:id_of_setInterval:由 setInterval() 返回的 ID 值。

//例子
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
  function clock(){
   var time=new Date();
   document.getElementById("clock").value = time;
  }
// 每隔100毫秒调用clock函数,并将返回值赋值给i
   var i=setInterval("clock()",100);
</script>
</head>
<body>
 <form>
  <input type="text" id="clock" size="50" />
  <input type="button" value="Stop" onclick="clearInterval(i)" />
 </form>
</body>
</html>
//每隔 100 毫秒调用 clock() 函数,并显示时间。当点击按钮时,停止时间

3) setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。

//语法
setTimeout(代码,延迟时间);

//参数说明:1. 要调用的函数或要执行的代码串。2. 延时时间:在执行代码前需等待的时间,以毫秒为单位(1s=1000ms)。

//例子1
//打开网页3秒后,在弹出一个提示框
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
 setTimeout("alert('Hello!')", 3000 );
</script>
</head>
<body>
</body>
</html>

//例子2
//当按钮start被点击时,setTimeout()调用函数,在5秒后弹出一个提示框
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function tinfo(){
 var t=setTimeout("alert('Hello!')",5000);
 }
</script>
</head>
<body>
<form>
 <input type="button" value="start" onClick="tinfo()">
</form>
</body>
</html>

//例子3
//创建一个运行于无穷循环中的计数器,需要编写一个函数来调用其自身。在下面的代码,当按钮被点击后,输入域便从0开始计数
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var num=0;
function numCount(){
 document.getElementById('txt').value=num;
 num=num+1;
 setTimeout("numCount()",1000);
 }
</script>
</head>
<body>
<form>
<input type="text" id="txt" />
<input type="button" value="Start" onClick="numCount()" />
</form>
</body>
</html>

4) 取消计时器clearTimeout(), setTimeout()和clearTimeout()一起使用,停止计时器。

//语法
clearTimeout(id_of_setTimeout)

//参数说明:id_of_setTimeout:由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。

//例子:添加了一个 "Stop" 按钮来停止这个计数器
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
 var num=0,i;
 function timedCount(){
  document.getElementById('txt').value=num;
  num=num+1;
  i=setTimeout(timedCount,1000);
 }
  setTimeout(timedCount,1000);
 function stopCount(){
  clearTimeout(i);
 }
</script>
</head>
<body>
 <form>
  <input type="text" id="txt">
  <input type="button" value="Stop" onClick="stopCount()">//停止按钮
 </form>
</body>
</html>

setinterval与settimeout区别:

1)因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次;而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式 所以,完全是不一样的

2)很多人习惯于将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的;这样,函数外的setTimeout在执行函数时再次触发setTimeout从而形成周而复始的定时效果。

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

//setTimeout例子
showTime();
function showTime(){
  var day = new Date();
  alert("时间是: " + day.toString());
  setTimeout("showTime()", 1000);
}

//setInterval例子
setInterval("showTime()", 1000);
function showTime(){
  var day = new Date();
  alert("时间是: " + day.toString());
}

这两种方法可能看起来非常像,而且显示的结果也会很相似,不过两者的最大区别就是,setTimeout方法不会每隔1秒钟就执行一次showTime函数,它是在每次调用setTimeout后过1秒钟再去执行showTime函数。这意味着如果showTime函数的主体部分需要2秒钟执行完,那么整个函数则要每3秒钟才执行一次。而setInterval却没有被自己所调用的函数所束缚,它只是简单地每隔一定时间就重复执行一次那个函数。

如果要求在每隔一个固定的时间间隔后就精确地执行某动作,那么最好使用setInterval,而如果不想由于连续调用产生互相干扰的问题,尤其是每次函数的调用需要繁重的计算以及很长的处理时间,那么最好使用setTimeout。

如果对计时函数不加以处理,那么setInterval将会持续执行相同的代码,一直到浏览器窗口关闭,或者用户转到了另外一个页面为止。不过还是有办法可以终止setTimeout和setInterval函数的执行。

以上就是小编为大家带来的浅谈JavaScript的计时器对象全部内容了,希望大家多多支持我们~

(0)

相关推荐

  • javascript计时器事件使用详解

    在 JavaScritp 中使用计时事件是很容易的,两个关键方法是: setTimeout()未来的某时执行代码 clearTimeout()取消setTimeout()setTimeout()语法 复制代码 代码如下: var t=setTimeout("javascript语句",毫秒) setTimeout() 方法会返回某个值.在上面的语句中,值被储存在名为 t 的变量中.假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它.setTimeout() 的第

  • javascript实现的简单计时器

    最近写了很多微信端的互动小游戏,比如下雪花 限时点击 赢取奖品,限时拼图,限时答题等,都是些限时'游戏'(其实算不上游戏,顶多算是具有一点娱乐性的小互动而已) 上面出现了4个限时,对,没错,这里记录的就是最近写的 '计时器' ... 恩 , 计时器 就一个setInterval 或 setTimeout 即可实现 ,代码不会超过十行! 但是不防抱着没事找事的心态,来写个能复用的计时器 1.能倒计时 也能顺计时 2.复位.暂停.停止,启动功能 //计时器 window.timer = (funct

  • JS 页面计时器示例代码

    复制代码 代码如下: <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <head> <script type="text/javascript"> var c=0 var t function timedCount() { document.getElementById('txt').value

  • JavaScript分秒倒计时器实现方法

    本文实例讲述了JavaScript分秒倒计时器实现方法.分享给大家供大家参考.具体分析如下: 一.基本目标 在JavaScript设计一个分秒倒计时器,一旦时间完成使按钮变成不可点击状态 具体效果如下图,为了说明问题,调成每50毫秒也就是每0.05跳一次表, 真正使用的时候,把window.onload=function(){...}中的setInterval("clock.move()",50);从50调成1000即可. 在时间用完之前,按钮还是可以点击的. 时间用完之后,按钮就不能

  • Node.js中使用计时器定时执行函数详解

    如果你熟悉客户端JavaScript编程,你可能使用过setTimeout和setInterval函数,这两个函数允许延时一段时间再运行函数.比如下面的代码, 一旦被加载到Web页面,1秒后会在页面文档后追加"Hello there": 复制代码 代码如下: var oneSecond = 1000 * 1; // one second = 1000 x 1 ms setTimeout(function() { document.write('<p>Hello there.

  • JavaScript计时器用法分析【setTimeout和clearTimeout】

    本文实例分析了JavaScript计时器用法.分享给大家供大家参考,具体如下: JavaScript中使用setTimeout和clearTimeout函数进行计时/停止计时的操作. 1.指定时间后执行一个动作,如3s后弹出一个对话框: setTimeout('alert("3s")',5000); 并且,该函数可以叠加起来是用,如: function delay_times(){ setTimeout('document.getElementById("time_text&

  • javascript计时器编写过程与实现方法

    JavaScript是一门非常容易上手的脚本语言,而且工具繁多,功能强大,因为一直做后端的关系,笔者目前也只是略学一点皮毛. 接下来进入正题--计时器.先谈下计时器的功能: 1.计时器要能够在页面上显示时间 2.每秒钟计时器刷新,秒每满60进分钟1,分钟每满60进小时1 3.计时器需要能够重置,也就是重新计时 4.计时结束时,需要能够有获取计时时间的方法 以上功能很简单,计时还应该有暂停.继续计时等功能,没关系,我们一个一个来. 第一步: 我们做一个简单的页面,要有一个现实时间的标签,要有开始.

  • javascript计时器详解

    计时器 基本格式: 复制代码 代码如下: setInterval(function(){代码},1000): /* 说明:1.setInterval 会返回一个计时器ID值 可以这样接收.var setId = setInterval(....); 2.接收setId的目的是为了清空计时器. clearTimeout(setId); */ 例如 一次性的计时器 格式: 复制代码 代码如下: setTimeout(function(){代码},1000) 案例: 复制代码 代码如下: var se

  • js仿苹果iwatch外观的计时器代码分享

    本文实例讲述了JS+CSS3实现的类似于苹果iwatch计时器特效.分享给大家供大家参考.具体如下: JS+CSS3实现的类似于苹果iwatch计时器特效是一段实现了类似于最近最火爆的苹果iwatch计时器效果的代码,带有开始和重置按钮,支持计次显示. 运行效果图:                                -------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的JS

  • JavaScript计时器示例分析

    1.什么是JavaScript计时器? 在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行. 2.计时器类型 一次性计时器:仅在指定的延迟时间之后触发一次. 间隔性触发计时器:每隔一定的时间间隔就触发一次 3.计时器方法 1):一次性计时器 A):setTimeout(): 指定的延迟时间之后来执行代码,进执行一次 语法:setTimeout(代码,延迟时间); 参数说明: 1. 要调用的函数或要执行的代码串. 2. 延时时间:在执行代码前需等待的时间

  • javascript实现计时器的简单方法

    计时器, 在生活当中也是用得频繁的功能, 比如锻炼身体, 跑步比赛等等相关的活动. 我们用Javascript来完成一个计时器. 计时器, 主要就是对时间的一个逻辑处理, 比如60秒等于1分钟, 60分钟等于一个小时, 我们这里只做到小时的处理. 就这么一个简单的逻辑, 然后动态的显示在一个Input里面. 那现在我们来完成这个界面 <label>计时:</label> <input type="text" name="" id=&qu

  • javascript设计简单的秒表计时器

    本文实例讲述了javascript设计简单的秒表计时器的实现代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: <html> <head> <title> New Document </title> </head> <body> <form action="somepage.asp"> <input type="text" value="0&q

  • VB倒计时器和JS当前时间

    VBscript做计时器,遇到一个问题,怎么在页面上不断的调用一个VB函数呢.... 例如倒计时,如何让秒数在不刷新的情况下走动... 想了好久,查了好多地方都是用JavaScript做的... 最后才发现了一个,是VBscript帮助上都没有说的..SetTimeOut属性..真晕哦.. 倒计时如下. 倒计时 sec=2 min=1 hou=0 SetTimeOut "SpareTime()",1000 sub SpareTime() if sec=0 and min=0 and h

随机推荐