PC从睡眠模式唤醒时开始调用js函数

在我的 aspx 页面中,我使用 xmlhttp.response 来更新此页面的一部分.使用 js 函数,此更新每 3 秒发生一次.但是当我的电脑进入睡眠模式时,这个更新不会发生.还行吧.但是当电脑从睡眠模式唤醒时,我需要自动开始更新而不重新加载这个页面.如何做到这一点?

In my aspx page, I use xmlhttp.response to update a part of this page. This update occurs in every 3 seconds using js function. But when my PC goes to sleep mode, this update doesn't happen. This is OK. But when PC wake up from sleep mode, I need to start update automatically without reload this page. How to do this?

推荐答案

您可以检测 JS 时间线中的中断(例如笔记本电脑睡眠、阻止 JS 执行的警报窗口、打开调试器的 debugger 语句) 通过比较墙上时间的变化与预期的计时器延迟.例如:

You can detect disruptions in the JS timeline (e.g. laptop sleep, alert windows that block JS excecution, debugger statements that open the debugger) by comparing change in wall time to expected timer delay. For example:

var SAMPLE_RATE = 3000; // 3 seconds
var lastSample = Date.now();
function sample() {
  if (Date.now() - lastSample >= SAMPLE_RATE * 2) {
    // Code here will only run if the timer is delayed by more 2X the sample rate
    // (e.g. if the laptop sleeps for more than 3-6 seconds)
  }
  lastSample = Date.now();
  setTimeout(sample, SAMPLE_RATE);
}

sample();

相关文章