需要帮助查找用于在网页之间连续循环的 setTimeout 函数的剩余时间

Dus*_*oss 3 javascript iframe timer settimeout countdowntimer

我目前正在使用 javascript setTimeout 函数每 10 秒连续循环浏览相同的 4 个不同网站。我需要一种准确的方法来显示倒计时器,显示在显示下一个网站之前还剩多少秒。有没有办法减去已用于创建计时器的 setTimeout 函数中使用的时间?这是我当前使用的 Javascript:

<script type="text/javascript">
var pages = [
'webpage 1',
'webpage 2',
'webpage 3',
'webpage 4'
], p = pages.length;
while(--p > -1){
(function(p){
    var a = document.createElement('a');
    a.href = pages[p];
    pages[p] = a;
})(p);
}
function loadIframe() {
var page = pages[(p = ++p % pages.length)], bust = 'bustcache=' + new 
Date().getTime();
page = page.search? page.href + '&' + bust : page.href + '?' + bust;
document.getElementById('if_one').src = page;
setTimeout(loadIframe, 10000);
}
loadIframe();
</script>
Run Code Online (Sandbox Code Playgroud)

sam*_*ime 5

虽然您无法直接从 中看到它setTimeout(),但只需记录开始时间并做一些数学计算就足够了:

const delay = 10000;
const start = Date.now(); // milliseconds
setTimeout(doSomething, delay);

// when needed
const elapsed = Date.now() - start;
const remaining = delay - elapsed; // divide by 1000 for seconds
Run Code Online (Sandbox Code Playgroud)