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>
     
  • 相关阅读:
    NodeJS 实现阿里云推送。
    ReactJS 页面跳转保存当前scrollTop回来时,自动移动到上次浏览器的位置
    移动端刷新组件XtnScroll--Angular4实现
    Angular4+NodeJs+MySQL 入门-06 接口配置
    Angular4+NodeJs+MySQL 入门-05 接口调用
    Angular4+NodeJs+MySQL 入门-04 接口调用类
    Angular4+NodeJs+MySQL 入门-03 后台接口定义
    Angular4+NodeJs+MySQL 入门-02 MySql操作类
    Angular4+NodeJs+MySQL 入门-01
    ionic 开发当中,有一些常用的方法。
  • 原文地址:https://www.cnblogs.com/amosli/p/3476011.html
Copyright © 2011-2022 走看看