簡體   English   中英

在JavaScript中設置后台計時器

[英]Set a background timer in javascript

我試圖阻止Dynamics 365 / CRM中的用戶快速單擊同一按鈕,從而啟動同步的窗口阻止事件。 我們能夠在IE中解決此問題,但Chrome似乎“記住”了按鈕的點擊-然后一次又一次地同步啟動相同的事件(這是預期的)。

我曾考慮過要創建一個后台計時器,該操作將在第一次單擊按鈕時啟動,它將使變量變為“ True”,直到計時器結束,然后將變量變為“ False”。

在該變量設置為true的那X秒鍾內,隨后的單擊按鈕將觸發該事件,但僅進行了幾行,函數檢查該變量是否設置為true或false。

到目前為止,這是我的代碼(無效):

function startTimer(duration) {
isTimerOn = true;
var timer = duration, seconds;
setInterval (function () {
    seconds = parseInt(timer % 60, 10);
    seconds = seconds < 10 ? 0 + seconds : seconds;
    if (--timer < 0) {
        timer = duration;
    }
}, 500);
isTimerOn = false;

};

 var isTimerOn = false;

    function createWordSummary() {
        if (isTimerOn) {
            return;
        }

        try {
            startTimer(3);
// Logic here

希望有所幫助,在此先感謝!

您可以嘗試如下操作:

 let disabled = false; function startTimer(s) { disabled = true; setTimeout(function() { disabled = false; }, s * 1000); } function createWordSummary() { if ( disabled ) return; startTimer(3); console.log('check'); } 
 <button onclick="createWordSummary()">Check</button> 

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM