使用 JavaScript 检测屏幕 on/off

Detect screen on/off with JavaScript

我这里有一个很奇怪的问题,就是检测屏幕是否on/active。我正在开发的平台是 KaiOS (Firefox OS),而且很多人已经知道,这个 OS 的资源非常有限 hardware/device 组合,因此我的 'problem'.

我这里的应用程序要求我每隔一秒 POST 到服务器(特别是 Kodi JSON-RPC 服务器),然后更新 HTML 仪表和指示时间流逝的标签。我使用 setTimeout(updateTimeElapsed, 1000) 来执行此操作。这是相当耗费资源的(对于功能 phone 设备),涉及始终激活 WiFi。

我试图(非常不成功)实现的是检测屏幕是否打开,然后每 1 秒调用一次 updateTimeElapsed 函数(希望确保一旦屏幕关闭,刷新将停止,一旦屏幕打开,刷新将继续)。有什么办法可以实现吗?

您可以使用 visibilitychange event and check document.visibilityState.

这样使用:

document.addEventListener('visibilitychange', function() {
  if(document.visiblityState == 'hidden') {
    //enter code for pausing refresh
  }
  else if(document.visibilityState == 'visible') {
    //resume refresh
  }
});