Chrome Web Workers停止运行

vs91vp4v  于 2023-04-27  发布在  Go
关注(0)|答案(1)|浏览(190)

我正在运行setTimeout计时器来更新我们的JWT令牌。大多数时候它工作正常,但似乎Chrome正在限制setTimeout。在做了一些研究之后,我将其更改为使用hacktimer并将其移动到Web Worker,这似乎稍微更可靠,但仍然导致setTimeout停止30分钟,导致令牌无效。是的,我验证了hacktimer正在工作。是否有其他解决方案来处理基于Chrome的浏览器上的节流问题?

rseugnpd

rseugnpd1#

下面是一个片段,播放音频不断在一个循环,点击播放按钮,它开始一个间隔计数,这是比较有多少秒已经ellapsed,我测试去其他标签似乎保持间隔和时间同步,所以它似乎不节流它。我等了相当长的时间,而不是30分钟,也许给予这个尝试。

const qs = s => document.querySelector(s);

const btn = qs("button");
const audio = qs("audio");
const timeoutTicks = qs('#timeoutTicks');
const fromStart = qs("#fromStart");

btn.addEventListener('click', () => {
  audio.play();
  let counter = 0;
  const started = Date.now();
  setInterval(() => {
     timeoutTicks.innerText = ++counter;
     fromStart.innerText = Math.round((Date.now() - started)/1000);
  }, 1000); 
});
.tick {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1em;
  padding: 1em;
  background-color: black;
  color: white;
}
<div class="tick">
  <span>Set Timeout Ticks</span>
  <span id="timeoutTicks">0</span>
  <span>Seconds from start</span>
  <span id="fromStart">0</span>  
  <button>start</button>
</div>

<audio
  paused
   loop
   controls
   src="https://upload.wikimedia.org/wikipedia/commons/d/de/Lorem_ipsum.ogg"/>

相关问题