Javascript 如何检测移动浏览器何时返回已暂停的页面?

Javascript 如何检测移动浏览器何时返回已暂停的页面?,javascript,mobile,signalr,Javascript,Mobile,Signalr,当浏览器在移动设备上失去焦点时,设备通常会停止加载页面的JavaScript执行,但保留页面 当用户稍后返回该页面时,浏览器将显示其先前加载的页面 当使用SignalR时,活动浏览器可以接受来自服务器的推送消息,当移动设备运行JavaScript时,这一点非常有效,但是,当页面暂停(由于浏览器变为非活动状态)时,将不再接收该页面的推送通知 这意味着,当我返回到一个已经不活动的页面时,它已过期。它错过了来自服务器的一些通知 由于来自服务器的消息是非连续的,并且可能包含各种更新数据,因此最好的方法似

当浏览器在移动设备上失去焦点时,设备通常会停止加载页面的JavaScript执行,但保留页面

当用户稍后返回该页面时,浏览器将显示其先前加载的页面

当使用SignalR时,活动浏览器可以接受来自服务器的推送消息,当移动设备运行JavaScript时,这一点非常有效,但是,当页面暂停(由于浏览器变为非活动状态)时,将不再接收该页面的推送通知

这意味着,当我返回到一个已经不活动的页面时,它已过期。它错过了来自服务器的一些通知

由于来自服务器的消息是非连续的,并且可能包含各种更新数据,因此最好的方法似乎是在重新激活浏览器时强制刷新页面


如何检测页面的重新激活以触发刷新?

我还没有使用SignalR,但我希望任何JS客户端都有一个用于刷新的回调方法。这就是你想要强制刷新的地方。这样,每当移动客户端失去和恢复连接时,它也会刷新所有数据

如果重新连接事件不是选项,则可以尝试使用确定选项卡何时恢复可见性并强制刷新

试试这个():

函数handleVisibilityChange(){
if(document.hidden){
日志消息(“文档隐藏”);
}否则{
日志消息('文档可见。触发刷新');
}
}
功能日志消息(消息){
var d=新日期();
var timestamp=d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var p=document.createElement('p');
p、 innerText=时间戳+'-'+消息;
文件.正文.附件(p);
}
文件。添加的监查人(“可视性变更”,可操作性变更);

logMessage('文档为'+Document.visibilityState+'。尝试最小化浏览器或更改选项卡')