javascript - 防止 onbeforeunload 函数暂停 Javascript 计时器

标签 javascript settimeout dom-events onbeforeunload

在我的网页中,我有一个使用 Javascript 的 setTimeout() 的倒数计时器。

    function Tick() {
        if (RemainingSeconds <= 0) {
            alert("Time is up.");
            return;
        }
        RemainingSeconds -= 1;
        ElapsedSeconds += 1;
        UpdateTimerDisplay();
        window.setTimeout("Tick()", 1000);
    }

我还有一个在 onbeforeunload 上触发的功能,以“阻止”用户离开页面。

    window.onbeforeunload = function () {
        if (!isIEAjaxRequest) {
            return "You should use the logout button to leave this page!";
        }
        else {
            isIEAjaxRequest = false;
        }
    };

问题是,当出现“您确定要离开此页面吗?”时窗口提示,它暂停 setTimeout() 函数。关于如何防止这种情况的任何想法?

最佳答案

你不能。 Javascript 严格来说是单线程的,因此任何模式弹出窗口都会暂停其他所有内容。

关于javascript - 防止 onbeforeunload 函数暂停 Javascript 计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12731865/

相关文章:

javascript - 如何在 Javascript 中对每个数组元素运行函数

javascript - 使用 d3.js 的可扩展堆叠条形图

javascript - Promise 拒绝给我一个 UnhandledPromiseRejectionWarning 错误

javascript - 每x秒从服务器请求数据的最佳方式

javascript - Google Chrome 扩展程序可以检测所有脚本何时完成加载吗?

javascript - 按下时打印键的名称?

javascript - 任何 Firefox/Webkit 的 contenteditable 帮助插件?

javascript - 如何从 Angular 和 Typescript 中的选项卡数组中禁用选项卡元素

javascript - 运行时在其自己的函数内清除超时

jquery - 如何创建一个简单的 setTimeout 循环