美文网首页
错误监控

错误监控

作者: 泡杯感冒灵 | 来源:发表于2020-07-09 23:23 被阅读0次

前端错误的分类

  • 即时运行错误—代码错误
  • 资源加载错误(比如图片加载错误,CSS加载错误,JS加载错误等)

错误的捕获方式

  • 即时运行错误的捕获方式
  1. try...catch
  2. window.onerror
    window.onerror只能捕获即时运行错误,不能捕获资源加载错误
  • 资源加载错误的捕获方式
  1. object.onerror
    比如图片加载的时候,可以给图片添加一个onerror事件;script标签页可以添加一个onerror事件;
    object.onerror 触发的时候,不会向上冒泡到window.onerror,这是 window.onerror只能捕获即时运行错误,不能捕获资源加载错误的一个原因
  2. performance.getEntries()
    高级浏览器上的performance对象上的getEntries方法,获取到所有已加载资源的加载时长,通过这种方式可以间接的拿到没有加载的资源错误
  3. Error事件捕获
    这个是通过捕获机制来处理错误的,看例子
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.addEventListener('error',function(e){
            console.log('捕获',e)
        },true)  // true是捕获,false是冒泡,如果换成false是不能捕获错误的
    </script>
</head>
<body>
    <script type="text/javascript" src="//baidu.com/test.js"></script>
</body>
</html>
image.png

延伸问题:跨域的JS运行错误可以捕获吗?错误提示是什么,应该怎么处理?

可以拿到一个错误信息,但是行号和列号错误详情都拿不到,因为跨域了。要怎么办才能拿到具体信息呢?


image.png

第一步: 在script标签增加crossorigin属性(在客户端做的)
第二步: 设置JS资源响应头,Access-Control-Allow-Origin:*(可以是星号也可以是某个指定的域名)(在服务端做的)

上报错误的基本原理

  1. 采用AJAX通信上报
    但是所有的错误监控,都不是通过这种方式来做的
  2. 利用Image对象上报
    所有的监控体系,都是利用Image对象上报的,具体做法如下:
    <script type="text/javascript">
        (new Image()).src = 'http://jianshu.com/testjk?r=jk'
    </script>

通过这种方式发送一个请求比AJAX请求要简单的多,而且不用任何第三方的库,一行代码就实现了资源向上报

相关文章

  • 前端监控体系建设

    前端监控体系主要分为错误监控、性能监控、业务监控及安全监控三个方面。 一、错误监控 (一)监控范围 js语法错误、...

  • Fundebug前端JavaScript插件更新至1.2.0

    摘要: Fundebug的前端JavaScript错误监控插件更新至1.2.0:支持监控WebSocket连接错误...

  • Vue.js@2.6.10更新内置错误处机制,Fundebug同

    摘要: Fundebug 的 JavaScript 错误监控插件同步支持 Vue.js 异步错误监控。 Vue.j...

  • 错误监控

    前端错误分类 即时运行错误:代码错误 资源加载错误:资源加载失败 错误捕获方式 即时运行错误-- try...ca...

  • 错误监控

    错误的捕捉方式 即时运行错误的捕获方式try...catchwindow.onerror 资源加载错误object...

  • 错误监控

    前端错误的分类 即时运行错误(代码错误) 资源加载错误 错误的调试方式 错误的捕获方式 即时运行错误的捕获方式 t...

  • 错误监控

    一、前端错误的分类 即使运行错误(代码错误) 资源加载错误 二、错误的捕获方式 即使运行错误(代码错误) try...

  • 错误监控

    前端错误的分类 即时运行错误—代码错误 资源加载错误(比如图片加载错误,CSS加载错误,JS加载错误等) 错误的捕...

  • 错误监控

    前端错误的分类 运行时错误(代码错误) 资源加载错误 错误的捕获方式 运行时错误 try ... catch部署到...

  • 错误监控

    监听事件 类型同步异步页面资源(img)Promisetry/catch✔️window.onerror✔️✔️w...

网友评论

      本文标题:错误监控

      本文链接:https://www.haomeiwen.com/subject/nzbecktx.html