Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Javascript函数挂接到页面重新加载请求或源于客户端的websocket断开连接?_Javascript_Websocket_Reload - Fatal编程技术网

如何将Javascript函数挂接到页面重新加载请求或源于客户端的websocket断开连接?

如何将Javascript函数挂接到页面重新加载请求或源于客户端的websocket断开连接?,javascript,websocket,reload,Javascript,Websocket,Reload,我的问题:我的页面有一个websocket处理程序。我通过显示“服务器已断开连接,请重新加载”覆盖来处理断开连接事件(通常由服务器重新启动引起) 但是,当用户触发重新加载时,浏览器所做的第一件事就是断开套接字连接,这也会触发断开连接事件,因此此覆盖在被新页面替换之前出现。这令人困惑,尤其是因为重新加载页面可能需要几秒钟 澄清一下,发生的事情是 用户单击“重新加载” 浏览器断开了web套接字的连接 ws.onclose运行 …并显示“请重新加载页面”警报覆盖(或其他内容) 在服务器开始组

我的问题:我的页面有一个websocket处理程序。我通过显示“服务器已断开连接,请重新加载”覆盖来处理断开连接事件(通常由服务器重新启动引起)

但是,当用户触发重新加载时,浏览器所做的第一件事就是断开套接字连接,这也会触发断开连接事件,因此此覆盖在被新页面替换之前出现。这令人困惑,尤其是因为重新加载页面可能需要几秒钟

澄清一下,发生的事情是

  • 用户单击“重新加载”
  • 浏览器断开了web套接字的连接
    • ws.onclose运行
      • …并显示“请重新加载页面”警报覆盖(或其他内容)
  • 在服务器开始组装新页面之前,需要经过一段时间
  • 页面被重新加载,覆盖消失
我只想在服务器是断开连接的发起人时显示覆盖。因此,我要么需要弄清楚是哪一方做的,要么在它实际发生之前钩住页面重新加载

if(window.performance)

{

    if(performance.navigation.type  == 1 )
          {
            console.log('page reloaded');
          }
}

您还可以编写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()">

嗯,不是。这个解决方案告诉我在加载新页面后是否重新加载了。那没用。我需要在“旧”页面上运行脚本。编辑问题(希望)更好地解释问题