使用 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
}
});
我这里有一个很奇怪的问题,就是检测屏幕是否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
}
});