zoukankan      html  css  js  c++  java
  • 页面崩溃检测

    1、页面正常关闭,如何通知 A 页面

    页面正常关闭时,会先执行 window.onbeforeunload ,然后执行 window.onunload。

    2、页面意外崩溃,又该如何通知 A 页面

    利用 window 对象的 loadbeforeunload 事件,通过心跳监控来获取 B 页面的崩溃。

     window.addEventListener('load', function () {
          sessionStorage.setItem('good_exit', 'pending');
          setInterval(function () {
             sessionStorage.setItem('time_before_crash', new Date().toString());
          }, 1000);
       });
    
       window.addEventListener('beforeunload', function () {
          sessionStorage.setItem('good_exit', 'true');
       });
    
       if(sessionStorage.getItem('good_exit') &&
          sessionStorage.getItem('good_exit') !== 'true') {
          /*
             insert crash logging code here
         */
          alert('Hey, welcome back from your crash, looks like you crashed on: ' + sessionStorage.getItem('time_before_crash'));
       }

    在页面加载时(load 事件)在 sessionStorage 记录 good_exit 状态为 pending,如果用户正常退出(beforeunload 事件)状态改为 true,如果 crash 了,状态依然为 pending,在用户第2次访问网页的时候(第2个load事件),查看 good_exit 的状态,如果仍然是 pending 就是可以断定上次访问网页崩溃了!

    但有一个问题,本例中用 sessionStorage 保存状态,在用户关闭了B页面,sessionStorage 值就会丢失,所以换种方式,使用 localStorage 来实现。

    作者:孟繁贵 Email:meng010387@126.com 期待共同进步!

  • 相关阅读:
    一些信息熵的含义
    scikit-learn包的学习资料
    DB Scan算法的分析与实现
    ps教程连接
    用PS如何把图片调出时尚杂志色
    Linux FIFO读写时堵塞与非堵塞的效果
    yuyv转yuv420p代码及验证代码
    YUV格式介绍
    too many include files depth = 1024错误原因
    开发用小工具
  • 原文地址:https://www.cnblogs.com/mengfangui/p/14716996.html
Copyright © 2011-2022 走看看