zoukankan      html  css  js  c++  java
  • 常用代码之八:setTimeout 和 clearTimeout。

    1.先写一个错误的例子:

       function DealSomething() {
            //write some code
            window.setTimeout(function () {
               alert("已经等待超过10分钟,自动关闭页面。");
            }, 600000);
        }

    这个例子的行为:不管是否处理完,超过10分钟后,都弹出这个alert框来。

    2.再看另一个错误的例子,这次使用了clearTimeout函数来清除setTimeout。

       function DealSomething() {
            //write some code
            var Timer =window.setTimeout(function () {
               alert("已经等待超过10分钟,自动关闭页面。");
            }, 600000);
    clearTimeout(Timer);
        }

    其中Timer是setTimeout函数的ID标识,每次调用setTimeout函数都会产生一个唯一的ID,与操作系统中的进程ID相似, 可以通过clearTimeout函数(此函数的参数接收一个setTimeout返回的ID) 暂停setTimeout函数还未执行的代码。

    但这个例子的行为是:setTimeout函数永远不会被执行,因为如果还没有执行setTimeout函数中的代码,就调用了clearTimeout函数,那么就不会执行setTimeout函数中的代码了。

    3.最后是一个正确的例子。

        var Timer
    function DealSomething() {
            //write some code
            Timer =window.setTimeout(function () {
               alert("已经等待超过10分钟,自动关闭页面。");
            }, 600000);
        }
      function StopDeal() {
            clearTimeout(Timer);
        }

    这样,先调用DealSomething(), 因为它使用了函数外部的变量Timer, 现在这个函数是一个闭包了,在10分钟内调用StopDeal()时,就能达到清除setTimeout函数的作用,等过了10分钟时才不会出alert提示了;如果10分钟内不调用StopDeal()函数,那么就会按期执行setTimeout函数了。

    参考链接:http://www.dreamdu.com/javascript/window.clearTimeout/

  • 相关阅读:
    addEventListener 事件监听器 冒泡事件)
    内置对象 Date
    js-定时器
    BOM:浏览器对象
    DOM元素
    js控制style样式
    【应急响应】Windows 安全加固
    【渗透测试】社会工程学,没有射不下来的人
    【代码学习】PYTHON 线程
    【代码学习】PYTHON 进程
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/3509601.html
Copyright © 2011-2022 走看看