美文网首页
前端捕获错误

前端捕获错误

作者: 一包 | 来源:发表于2019-04-16 15:58 被阅读0次

半个月过去了。。一个面试也没有。笔试倒是做了挺多,唉加油鸭

1. trycatch

  • 判断一段代码是否存在异常
  • 在异常代码上包裹,会让代码显得臃肿,不适用于整个项目的异常捕获

2. window.onerror

  • 全局监听异常捕获
  • 缺点:跨域以后window.onerror是无法捕获异常信息的,所以script属性配置 crossorigin="anonymous" 并且服务器添加Access-Control-Allow-Origin
  • 统一上报到日志服务器
/** 
   * @param {String} errorMessage  错误信息 
   * @param {String} scriptURI   出错的文件 
   * @param {Long}  lineNumber   出错代码的行号 
   * @param {Long}  columnNumber  出错代码的列号 
   * @param {Object} errorObj    错误的详细信息,Anything 
   */
  window.onerror = function(errorMessage, scriptURI, lineNumber,columnNumber,errorObj) { 
    console.log("错误信息:" , errorMessage); 
    console.log("出错文件:" , scriptURI); 
    console.log("出错行号:" , lineNumber); 
    console.log("出错列号:" , columnNumber); 
    console.log("错误详情:" , errorObj); 
  }

3. vue捕获异常

  • 在Vue中,异常可能被Vue自身给try ... catch了,不会传到window.onerror事件触发
  • 使用Vue.config.errorHandler这样的Vue全局配置,可以在Vue指定组件的渲染和观察期间未捕获错误的处理函数。这个处理函数被调用时,可获取错误信息和Vue 实例。

4. 日志上报

  1. 使用单独的日志域名:页面初始化的过程中,会对页面加载时间、PV、UV等数据进行上报,这些上报请求会和加载业务数据几乎是同时刻发出,而浏览器一般会对同一个域名的请求量有并发数的限制,如Chrome会有对并发数为6个的限制。因此需要对日志系统单独设定域名,最小化对页面加载性能造成的影响。
  2. 跨域上报
  • 一种是构造空的Image对象的方式,其原因是请求图片并不涉及到跨域的问题;var url = 'xxx';new Image().src = url;
  • 利用Ajax上报日志,必须对日志服务器接口开启跨域请求头部Access-Control-Allow-Origin:*,这里Ajax就并不强制使用GET请求了,即可克服URL长度限制的问题
  • 省去响应主体:对于我们上报日志,其实对于客户端来说,并不需要考虑上报的结果,甚至对于上报失败,我们也不需要在前端做任何交互,所以上报来说,其实使用HEAD请求就够了,接口返回空的结果,最大地减少上报日志造成的资源浪费。

相关文章

  • 前端错误捕获

    常见错误的分类 对于用户在访问页面时发生的错误,主要包括以下几个类型: 1、js运行时错误 JavaScript代...

  • 前端捕获错误

    半个月过去了。。一个面试也没有。笔试倒是做了挺多,唉加油鸭 1. trycatch 判断一段代码是否存在异常 在异...

  • 错误监控

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

  • 前端错误收集脚本

    前端错误分为 JS 运行时错误、接口错误、资源加载错误三种。对于前端的异常捕获,我们都会知道 onerror 事件...

  • 面试10:错误监控/产品性能体系

    课程思维导图 Q:前端错误分类有哪些? 即时运行错误,如代码错误 资源加载错误 Q:前端错误捕获方式分别是什么? ...

  • 错误监控

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

  • 错误监控

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

  • 前端错误监控

    前端错误的分类: 1、即使运行错误(js代码错误) 2、资源加载错误。 错误的捕获方式 1、即使运行错误(js代码...

  • 错误监控

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

  • 前端如何做好错误监控?

    一、前端错误的分类 (1) 即时运行错误:代码错误 (2) 资源加载错误,如js、css加载失败等 二、错误的捕获...

网友评论

      本文标题:前端捕获错误

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