我的问题:我的页面有一个websocket处理程序。我通过显示"服务器断开连接来处理断开事件(通常由服务器重启引起),请重新加载"覆盖。
但是,当用户触发重新加载时,浏览器所做的第一件事就是断开套接字,这也会触发断开连接事件,因此在被新页面替换之前会出现此叠加层。这很令人困惑,尤其是因为重新加载页面可能需要几秒钟。
澄清一下,会发生什么
我想仅在服务器是断开连接的始发者时才显示覆盖。因此,我要么弄清楚哪一方做了它,要么在实际发生>之前重新加载页面重新载入。
答案 0 :(得分:-1)
if(window.performance)
{
if(performance.navigation.type == 1 )
{
console.log('page reloaded');
}
}
https://developer.mozilla.org/en-US/docs/Web/API/Navigation_timing_API
你也可以编写javascript函数并设置cookie。
function checkFirstVisit() {
if(document.cookie.indexOf('mycookie')==-1) {
// cookie doesn't exist, create it now
document.cookie = 'mycookie=1';
}
else {
// not first visit, so alert
alert('You refreshed!');
}
}
调用身体负荷事件
<body onload="checkFirstVisit()">