# 错误监控及上报

# 前端错误分类

  • 即时运行错误:代码错误
  • 资源加载错误
  • 跨域问题

# 即时运行错误捕获

  1. try...catch
  2. window.onerror 或者 window.addEventListener(捕获阶段非冒泡阶段)

# 资源加载错误

  1. object.onerror:img.onerror
  2. performance.getEntries(getEntries api 返回一个资源加载完成数组)
  3. Error 事件捕获

# 错误上报

  1. ajax
  2. image 的 src 上报

(new Image()).src = '错误上报请求地址'

目前主流采用 image 对象的方式上报错误,因为图片发送 get 请求,浏览器对图片有缓存,同样的请求,图片只会发送一次,避免重复上报