首页 > web前端 > js教程 > 正文

JavaScript 如何控制超时执行并确定剩余时间?

Susan Sarandon
发布: 2024-10-22 20:47:12
原创
351 人浏览过

How Can I Control Timeout Execution and Determine Remaining Time in JavaScript?

JavaScript 中的暂停和恢复超时

使用 JavaScript 时,可能需要控制异步操作​​(例如超时)的流程。在这里,我们探索暂停和恢复活动超时的方法,以及检索当前超时的剩余时间。

暂停和恢复超时

要暂停超时,您可以使用包装器拦截 window.setTimeout 调用并提供必要功能的函数。包装函数 Timer 以回调函数和延迟作为参数,并处理暂停、恢复和跟踪剩余时间。

<code class="javascript">var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        timerId = null;
        remaining -= Date.now() - start;
    };

    this.resume = function() {
        if (timerId) {
            return;
        }

        start = Date.now();
        timerId = window.setTimeout(callback, remaining);
    };

    this.resume();
};</code>
登录后复制

要使用此包装器,请实例化一个 Timer 对象并调用其根据需要使用pause()和resume()方法。

检索剩余时间

要获取当前超时的剩余时间,一种方法是存储设置超时时的开始时间,计算暂停时当前时间与开始时间的差值。

<code class="javascript">var start = Date.now();
var t = setTimeout("dosomething()", 5000);
var remaining = (start + 5000) - Date.now();</code>
登录后复制

但是需要注意的是,如果超时暂停又恢复,这个计算可能不准确。在前面提供的 Timer 包装函数中,剩余时间被跟踪并相应更新,为检索剩余时间提供了更可靠的方法。

以上是JavaScript 如何控制超时执行并确定剩余时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板