我这里有一个非常奇怪的问题,那就是检测屏幕是否打开/活动。我正在开发的平台是 KaiOS(Firefox OS),正如许多人已经知道的那样,这个操作系统的硬件/设备组合资源非常有限,因此我的“问题”。
我这里的应用程序要求我每秒 POST 到服务器(特别是 Kodi JSON-RPC 服务器),然后更新 HTML 仪表和指示已用时间的标签。我使用
setTimeout(updateTimeElapsed, 1000)
来执行此操作。这是相当资源密集型的(对于功能手机设备而言),需要一直激活 WiFi。
我试图(非常不成功)实现的是检测屏幕是否打开,然后每 1 秒调用
updateTimeElapsed
函数(这希望确保一旦屏幕关闭,刷新就会停止,一旦屏幕关闭,刷新就会停止)已打开,刷新继续)。有什么办法可以达到这个目的吗?
visibilitychange
事件并检查 document.visibilityState
。
像这样使用它:
document.addEventListener('visibilitychange', function() {
if(document.visibilityState == 'hidden') {
//enter code for pausing refresh
}
else if(document.visibilityState == 'visible') {
//resume refresh
}
});