问法:

  • 如何监测js错误
  • 如何保证产品质量

    错误分类:

  • 即时运行错误:代码错误

  • 资源加载错误

捕获方式:

  • 即时性错误:try-catch
  • window.onerror
  • 资源加载错误:object.onerror
  • performance.getEntries()获取到所有已经加载的资源
  • Error事件捕获:
  1. window.addEventListener('error',function(e){console.log(e)},true)
  2. //第三个参数必须是true,表示这是捕获阶段

跨域的js错误:

  1. 可以捕获到跨域的js错误,但是不会有详细的错误信息,只会显示script error
  2. 解决方案:
    1. 在script标签增加crossorigin属性
    2. 设置js资源响应头Access-control-allow-origin:*

上报错误的基本原理:

  1. Ajax通信的方式上报
  2. 利用Image对象上报