首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端 JavaScript 错误分析实践

前言 在平日的工作中前端 badjs 是一个比较常见的问题, badjs 除了我们自身业务 js 脚本里比较明显的报错外还有依赖其他资源的一些报错,对于自身业务 js 里出现的错误很容易进行定位并修复,...前端开发的工作除了完成日常的业务特性外还有一项重要的工作就是线上页面质量的运营(其中 badjs 监控及异常分析是工作内容的重要部分),本文主要讲述 script error 采集、定位、统计以及分析的的一些方法及思路...具体的思路是进入页面时前端生成一个 traceid(traceid 生成可以是时间戳+业务+随机码,基本唯一),页面请求所有的接口时带上该 traceid 并且后台记录对应的日志(也可以前端进行上报),...3.2 页面数据上报 该方法在使用数据驱动框架(vue,react)的页面中非常的方便,当出现错误时可以将页面当前端数据信息与错误一起上报,然后在分析系统通过一定的技术将页面还原,复现出现问题时的页面。...结尾 本文主要总结了自己工作中前端 badjs 常用的一些上报、定位、分析方式与思路以及日志的上报、统计、分析与监控,对 badjs 定位分析以及 script error 提供一种推断思路,希望对大家有所帮助

93220

前端性能和错误监控

前言 这几天心血来潮,想了解一下前端监控的相关知识,可是在查看了很多资料之后,发现没有详细介绍前端监控的相关文章,都是讲个大概,反倒是现成的前端监控工具有不少。...为了深入学习前端监控的相关技术原理,这几天都在查阅相关的资料。现在打算写一篇文章详细介绍一下前端监控,对这几天的研究做一个总结(于是就有了本文)。...// 前端监控流程 数据采集 --> 数据上报 --> 服务端处理 --> 数据库存储 --> 数据监控可视化平台 不过,本文只讲监控中的数据采集和数据上报两个步骤,后续流程需读者自行研究探索(这也是一种乐趣...错误数据采集 通过这几天的资料查找,了解到现在能捕捉的错误有三种。...资源加载错误 js 执行错误 promise 错误 1 通过 addEventListener('error', callback, true) 在捕获阶段捕捉资源加载失败错误

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

前端错误捕获方案总结

写在前面 在前端监控 sdk 开发中,我们都会用到错误捕获,将页面各类错误进行捕获并上报日志,来获取错误信息,所以我们非常有必要深入了解下各类错误错误捕获方式。...('error')的区别 : https://www.cnblogs.com/beileixinqing/p/17013219.html 正文 错误信息是最基础也是最重要的数据,错误信息主要分为下面几类...: JS 代码运行错误、语法错误等 异步错误等 静态资源加载错误 接口请求报错 错误捕获方式 1)try/catch 只能捕获代码常规的运行错误,语法错误和异步错误不能捕获到 示例: // 示例1:常规运行时错误...、异步错误,但不能捕获资源错误 /** * @param { string } message 错误信息 * @param { string } source 发生错误的脚本URL * @param {...,这样可以有效避免敏感信息无意中被第三方(不受控制的)脚本捕获到,因此,浏览器只允许同域下的脚本捕获具体的错误信息 解决方法: 前端script加crossorigin,后端配置 Access-Control-Allow-Origin

1.5K30

前端监控】页面错误监控

本文分为4个部分 1、页面错误分类 2、错误监听具体处理 页面错误分类 页面错误这种数据上报的重要性,想必不用我多说了吧 页面通常就分为3种错误 1、js 报错 2、资源加载错误 3、请求报错 其中js...3种错误分类 监听JS 报错 JS 的抛错,分为 JS 执行错误 和 未被 catch的 promise 错误,他们分别需要监听不同的事件来捕获他们的错误 1JS 执行错误 我们会劫持 window.onerror...捕获到,而不会触发 unhandledrejection 事件 资源报错 监控资源报错我们在另一篇内容有总结,具体可以看 【前端监控】静态资源测速&错误上报 这里再简单描述下 前面我们用window.onerror...来监听js执行错误,但是它并不能获取到资源加载失败的错误,因为这些错误不会向上冒泡,但是我们可以进行捕获 所以我们可以使用 addEventListener 的方式设置捕获监听错误 这里的话可以两种方式...,具体可以参考 【前端监控】自动抓取接口请求数据 简单说,就是 劫持 XMLHttpRequest 和 fetch 方法,在原来的方法上包一层自己的处理逻辑,拿到请求的信息 等 而 判断 请求是否出错

2.1K10

前端错误监控解决方案

项目上线前期的粒度较大的错误我们都会在自测和QA测试中发现,然而上线之后的错误就不是那么好发现。同时移动端的开发也面临着一个问题就是不好调试,所以web开发的错误监控是一个非常有用的措施。...前端错误监控有哪些方法呢。 一、错误分类 常见的web错误主要分为两类: 1....运行时错误:这个错误往往是我们在代码书写时造成的,比如语法错误、逻辑错误,这样的错误通常在测试阶段就会被发现,但是也可能存在“漏网之鱼”。...2.资源加载错误:这个错误通常是找不到文件或者是文件加载超时造成的。...二、错误捕获 基于上面两种的错误类型,也有不同的错误捕获方式: 1.代码错误捕获: // try...catch... try { // 运行可能出错的代码 } catch(e){ //

72641

前端监控】静态资源测速&错误上报

小东西快快学快快记,大知识按计划学,不拖延 继续监控内容总结,今天总结的是前端如何监控静态资源的加载情况,并进行数据上报 本文分为3个部分 1、监控静态资源重要性 2、静态资源测速上报 3、静态资源出错上报...,所以需要剔除发生错误的资源。...错误的资源,我们会另外处理 现在可以知道的是 发生错误的 script 和 link 标签,并不会出现在在 getEntries 获取的资源列表中 但是 img 错误,仍然会出现在其中,如果不处理,会导致错误图片误报成功的情况...所以这里的处理是,对错误图片缓存起来,使用 getEntries 获取到资源列表的时候,把错误的图片过滤就可以了 怎么拿到错误的图片呢 1、获取已经加载的错误图片(可能在我们获取资源之前已经加载错误了...) 2、监听全局错误事件,拿到错误的图片 具体逻辑做法如下 这里的图片处理逻辑 和我另一篇文章一样,大家可以参考一下,图片错误重载 const ErrImgList = []; // 监听动态的图片错误

4.1K20

前端-6个减少JavaScript错误噪音的技巧

这种小的配置更改是您可以减少错误的最简单,最有影响力的更改。 使用入站数据过滤器 入站数据过滤器是Sentry功能,旨在从项目中丢弃已知的低值错误。...2、第三方扩展程序 - 自动从已知的浏览器扩展程序,恶意软件和广告脚本中删除错误。 3、网络抓取工具 - 删除Google Bot等已知网络抓取工具触发的错误。...例如,版本3.26.2默认禁止背靠背重复错误。如果您遇到从异步循环(例如,来自setTimeout 或 XMLHttpRequest 回调)触发的错误,这可以节省生命 。...您可以通过Sentry UI或使用该ignoreErrors 选项配置JavaScript SDK以防止客户端错误来忽略错误 。...请注意,浏览器可以针对相同的基本错误生成不同的错误消息。对于单个 ReferenceError,您可能需要输入多个字符串/正则表达式以涵盖所有可能的浏览器。

1.4K30

使用Sentry对前端进行实时js错误监控

1 简介 Sentry 为一套开源的应用监控和错误追踪的解决方案。这套解决方案由对应各种语言的 SDK 和一套庞大的数据后台服务组成。...通过 Sentry SDK 的配置,还可以上报错误关联的版本信息、发布环境。同时 Sentry SDK 会自动捕捉异常发生前的相关操作,便于后续异常追踪。...部署安装请看我之前写的文档,附带springboot集成sentry; https://cloud.tencent.com/developer/article/1838156 2 为什么要有前端监控...$mount('#app') 4.3 启动项目验证 image.png 4.4 查看sentry错误信息 image.png 详细信息 image.png image.png 5 报错信息显示错误组件位置...SDK侵入代码; 7 总结 建议先测试下sentry宕机后,前端代码跟sentry的token对应关系,和引用了sentry的一些包,在sentry宕机不可用时会不会影响到前端用户体验

2.6K20

springcloud服务后端500错误到了前端返回406

之前正常的一个接口突然由api网关返回了406的错误,看了下日志发现服务端报了500错误,为什么某个应用端报的500异常到了api网关却返回了406错误,百思不得其解,最终发现406并不是API网关返回的错误...在讲述具体原因之前,先介绍下406这个错误, 406错误表明服务器端返回的数据客户端无法处理,客户端发送请求时会在http请求头里面加上一些必要的字段比如: 跟406状态有关的是下面这几个请求头属性...这时返回的是字符串类型,但是当抛出异常时返回的类型却是map类型的,再加上 produces="text/html; charset=UTF-8"导致没有具体的HttpMessageConverter,所以返回406错误

65710

前端测试题:有关于JS 中的主要错误,表述错误的是?

考核内容:JavaScript中常见的错误类型 题发散度: ★★ 试题难度: ★★ 解题思路: javascript 控制台的报错信息主要分为两大类 第一类是语法错误,这一类错误在预解析的过程中如果遇到...另一类错误统称为异常,这一类的错误会导致在错误出现的那一行之后的代码无法执行,但在那一行之前的代码不会受到影响。...JavaScript中常见的错误类型: 1.语法错误 变量名不符合规范 var 1shuke 给关键字赋值 function = "es6" 2.引用错误 引用了不存在的变量 shuke() 给一个无法被赋值的对象赋值...console.log("shuke") = "es6" 3.范围错误 超出有效范围时发生的错误。...调用不存在的方法 var obj = {} obj.run() new关键字后接基本类型 var res = new 333 错误调试的方法请参考: 前端测试题:以下浏览器对js显示数据方法,表述错误的是

1.3K10

对微前端的11个错误认识

简而言之,微前端就是将微服务的一些好处引入前端。除此之外,我们不应该忘记,微服务也不是什么“银弹”。...如果我们排除了在微前端功能中实现的微前端场景,那么即使是简单的链接也可以很好的工作。最终,微前端解决方案也能像小而独立的服务器端渲染器一样简单。每个渲染器可能只有一个页面那么小。...不管你的微前端框架多高效——使用多个框架总是要付出不可忽视的代价。不仅初始渲染会花费更长的时间,而且内存消耗也会朝着错误的方向发展。不能使用方便模型(例如,针对某个框架的模式库)。需要更多的重复。...对于微前端,情况也是如此。为什么一个微前端只能做菜单?每个微前端都有相应的菜单吗?拆分应该根据业务需求来做,而不是技术决策。...考虑以下划分: 按布局分解成微前端 这些都是技术组件,和微前端无关。在一个真实的微前端应用程序中,屏幕可能看起来是这样的。

1K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券