zoukankan      html  css  js  c++  java
  • JavaScript 计时事件

    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>
     
  • 相关阅读:
    D. Constructing the Array
    B. Navigation System
    B. Dreamoon Likes Sequences
    A. Linova and Kingdom
    G. Special Permutation
    B. Xenia and Colorful Gems
    Firetrucks Are Red
    java getInstance()的使用
    java 静态代理和动态代理
    java 类加载机制和反射机制
  • 原文地址:https://www.cnblogs.com/amosli/p/3476011.html
Copyright © 2011-2022 走看看