bri*_*ns0 12 javascript mobile android ios
早上好,我正在寻找某种Javascript事件,我可以使用它来检测移动浏览器窗口何时重新获得焦点,用户关闭/最小化浏览器(返回主屏幕/不同的应用程序),或者设备从睡眠状态恢复(用户将其关闭,或者在屏幕超时后进入休眠状态).
我希望能够找到适用于所有事情的单一事件,但我知道这不太可能!该pageshow活动适用于iOS设备,但与其他所有设备一起使用时相当粗略.我试过了focus,DOMActivate但它们似乎都没有达到预期的效果.
页面上可能并不总是有表单元素,我真的不希望用户再次触摸页面来触发事件.
对此类事件的要求是由我们的代码通过发出XHR请求定期检查新内容引起的.当浏览器处于睡眠状态时,它们永远不会被发送,因此我们永远不会获得重新启动超时的新内容.
感谢您提供的任何帮助!
小智 15
我们遇到了类似的问题并解决了类似这样的问题:
var lastSync = 0;
var syncInterval = 60000; //sync every minute
function syncPage() {
lastSync = new Date().getTime(); //set last sync to be now
updatePage(); //do your stuff
}
setInterval(function() {
var now = new Date().getTime();
if ((now - lastSync) > syncInterval ) {
syncPage();
}
}, 5000); //check every 5 seconds whether a minute has passed since last sync
Run Code Online (Sandbox Code Playgroud)
这样,如果您的页面处于活动状态,您将每分钟同步一次,如果您将浏览器置于空闲模式超过一分钟,则在您再次打开浏览器同步之前最多会经过5秒钟.短时间间隔可能会使电池消耗的电量超出您的预期,因此在根据您的需要调整时间时请记住这一点.
| 归档时间: |
|
| 查看次数: |
5344 次 |
| 最近记录: |