javascript计时器事件使用详解

 更新时间:2014年01月07日 15:26:43   作者:  
通过使用JavaScript,能在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件,下面对javascript计时器事件做了详细解释

在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:

setTimeout()
未来的某时执行代码

clearTimeout()
取消setTimeout()
setTimeout()
语法

复制代码 代码如下:

var t=setTimeout("javascript语句",毫秒)


setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。

第二个参数指示从当前起多少毫秒后执行第一个参数。

提示:1000 毫秒等于一秒。

当下面这个例子中的按钮被点击时,一个提示框会在5秒中后弹出。

复制代码 代码如下:

<html>
<head>
<script type="text/javascript">
function timedMsg()
 {
 var t=setTimeout("alert('5 seconds!')",5000)
 }
</script>
</head>

<body>
<form>
<input type="button" value="Display timed alertbox!" onClick="timedMsg()">
</form>
</body>
</html>

实例 - 无穷循环

要创建一个运行于无穷循环中的计时器,我们需要编写一个函数来调用其自身。在下面的例子中,当按钮被点击后,输入域便从 0 开始计数。

复制代码 代码如下:

<html>

<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
 {
 document.getElementById('txt').value=c
 c=c+1
 t=setTimeout("timedCount()",1000)
 }
</script>
</head>

<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
</body>

</html>



clearTimeout()

语法

复制代码 代码如下:

clearTimeout(setTimeout_variable)
 

实例

下面的例子和上面的无穷循环的例子相似。唯一的不同是,现在我们添加了一个 "Stop Count!" 按钮来停止这个计数器:

复制代码 代码如下:

<html>

<head>
<script type="text/javascript">
var c=0
var t

function timedCount()
 {
 document.getElementById('txt').value=c
 c=c+1
 t=setTimeout("timedCount()",1000)
 }

function stopCount()
 {
 clearTimeout(t)
 }
</script>
</head>

<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
</body>
</html>



另外两个重要的方法:
复制代码 代码如下:

setInterval()
setInterval() - executes a function, over and over again, at specified time intervals

作用是:循环执行一个方法,在规定的间隔时间内

语法:

复制代码 代码如下:

window.setInterval("javascript function",milliseconds);

说明:第一个参数必须是一个函数,第二个参数是执行函数的间隔时间.

实例:

复制代码 代码如下:

<html>
<script type="text/javascript">
setInterval(function() {alert("hello")},500);
</script>
</html>

说明:上面例子,执行效果是说每隔500ms就alert("hello");

再来一个时钟:

复制代码 代码如下:

<html>
<body>
<p id="demo" ></p>
<script type="text/javascript">
setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
</script>
</body>
</html>    

如何停止,setInterval()方法??

复制代码 代码如下:

window.clearInterval()

语法:
复制代码 代码如下:

window.clearInterval(intervalVariable)


复制代码 代码如下:

The window.clearInterval() method can be written without the window prefix.

To be able to use the clearInterval() method, you must use a global variable when creating the interval method:

myVar=setInterval("javascript function",milliseconds);
Then you will be able to stop the execution by calling the clearInterval() method.

实例:

复制代码 代码如下:

<html>
<body>
<p id="demo" ></p>
<p id="demo2" onclick="stop()">stop</p>
<script type="text/javascript">
var temp=setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
function stop(){
   <html>
<body>
<p id="demo" ></p>
<p id="demo2" onclick="stop()">stop</p>
<script type="text/javascript">
var temp=setInterval(function(){ myTimer()},1000);
        function  myTimer(){
                var d = new Date();
                var t=d.toLocaleTimeString();
                document.getElementById('demo').innerHTML=t;
        }
function stop(){
        clearInterval(temp);
}
</script>
</body>
</html>

}
</script>
</body>
</html>

相关文章

  • javascript getElementsByName()的用法说明

    javascript getElementsByName()的用法说明

    当页面上的控件同名且多个的时候,你首先做的是什么?判断长度?的确,从程序的严密角度出发,我们是需要判断长度,而且有长度和没长度是两种引用方法.
    2009-07-07
  • JavaScript预编译和执行过程详解

    JavaScript预编译和执行过程详解

    本文详细讲解了JavaScript预编译和执行过程,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • JavaScript 学习笔记 Black.Caffeine 09.11.28

    JavaScript 学习笔记 Black.Caffeine 09.11.28

    这两天终于写出了一个个人认为真正意义上的作业了,不过,最大感受就是。。。IE太垃圾了。。。so,这个作业实际上也没有完成的很完美,因为,在IE上还是有兼容性的问题存在,不错,就此先自我总结一下吧~免得以后又忘了~
    2009-11-11
  • javascript获取元素CSS样式代码示例

    javascript获取元素CSS样式代码示例

    如果想用javascript获取一个元素的样式信息,首先想到的应该是元素的style属性,下面我们看看javascript如何获取元素CSS样式
    2013-11-11
  • 基于javascript 闭包基础分享

    基于javascript 闭包基础分享

    闭包向来给包括JavaScript程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识
    2013-07-07
  • JavaScript的this关键字的理解

    JavaScript的this关键字的理解

    今天的教程来自天才的Cody Lindley的新书:《JavaScript启蒙教程 / JavaScript Enlightenment》。他讨论了令人迷惑的关键字this,以及确定和设置this的值的方法。
    2016-06-06
  • JavaScript中的toDateString()方法使用详解

    JavaScript中的toDateString()方法使用详解

    这篇文章主要介绍了JavaScript中的toDateString()方法使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • Javascript 布尔型分析

    Javascript 布尔型分析

    今天在做景德镇的企业等级功能的时候,遇到一个很有趣的问题。在一个jsp页面里,我需要把一个java的字符串转为js的布尔型。
    2008-12-12
  • JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)

    JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)

    学习是有趣的,但有过滤的学习内容就更好,本博主就专门为刚接触javascript客户端编程的朋友提供及分享个人学习经历!建议大家看看:(汤姆大叔的博客)
    2012-04-04
  • js 页面输出值

    js 页面输出值

    下面的方法是常用的向html页面中输入值,一般是将要输出的内容放到别的js文件中,调用。这里只是测试。
    2008-11-11

最新评论