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 期待共同进步!

  • 相关阅读:
    前端模板Nunjucks简介
    git提交时支持文件名大小写的修改
    多行文本加省略号的处理方法
    前端性能优化实践方案总结
    使用gulp工具生成svgsprites
    koa简介
    JSX语法简介
    踩坑所引发出的appendChild方法的介绍
    React业务实践
    javascript--数组
  • 原文地址:https://www.cnblogs.com/mengfangui/p/14716996.html
Copyright © 2011-2022 走看看