【前端】诸葛io收集前端js报错信息
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/zhuge_error.html
一、什么是诸葛io
诸葛io就是通过分析用户的操作事件对用户数据,行为路径等进行分析的一个数据分析工具。
可以看一下官方的demo,https://demo.zhugeio.com/apppanel/panel.jsp?app_id=35510
二、诸葛io怎么用
首先需要进行初始化,非常简单,先注册登录创建一个app,然后找到下面这段js,把它添加到项目的base.js或者common.js文件里,保证每个页面都可以用到。
诸葛只有track和identify两个常用方法,
track方法就是触发事件,它有3个参数,第一个参数的事件名,第二个参数是事件属性,第三个参数是回调函数,例如
zhuge.track('购买手机', {'手机' : '小米4','价格' : 1799,'运营商' : '移动' }, function(){console.info('发送事件成功') );
identify方法是让用户“登录”到诸葛,这样就可以把这个用户所有的事件绑定在用户身上了,事件不再是独立的。它也有2个参数,第一个是用户id(也可以是用户的其他唯一标识),第二个是用户的属性,第三个参数是回调函数,例如
zhuge.identify('0202033', {name: '张三',//预定义属性gender: '男',//预定义属性'行业': '互联网' //自定义属性 }, function() {location.href = 'http://www.xxx.com/index.html'; //执行用户标识成功后的代码,比如跳转页面 });
identify事件只用调用一次就好了,不必每个页面都调用。
三、用诸葛io收集js报错
我们通过上面第二部分的内容知道了诸葛有个track方法,可以收集事件,我们就用它来收集我们的js报错事件。
window有个方法onerror,默认是null,如果页面有js报错就会触发它(必须不是trycatch里的,也不能被框架拦截掉)
它有6个参数,分别是errorMsg-简单的报错信息, errorFile-报错的文件, errorLine-报错在哪一行, errorColumn-报错在哪一列, errorData-报错的完整信息
然后我们重写这个方法就好了
window.onerror = function(errorMsg, errorFile, errorLine, errorColumn, errorData){try{errorData = errorData || {};errorFile = errorFile || "";track("代码异常", {errorMsg: errorMsg,errorFile: errorFile.split("?version")[0], //因为js文件加了版本号,所以需要去掉 errorLine: errorLine,errorData: errorData.stack //errorData里的stack才是详细报错信息 });}catch(e){} }
然后就ok了,部署上线坐等代码报错(好像哪里不对)
这里一定要加trycatch,否则onerror里再报错就不好了
如果用了什么框架,这个onerror可能不会执行,可以修改框架源码报错的处理方法。
四、必要性
就是做上面这些是否真的有必要。
好吧,我以前对自己的代码非常自信,我觉得报错不大可能,因为每个页面的功能都正常,怎么可能报错,但现实是。。。
14号上线,15号一天接近4500个报错,十几种报错类型。。。。
完结,散花
转载于:https://www.cnblogs.com/shamoyuu/p/zhuge_error.html
【前端】诸葛io收集前端js报错信息相关推荐
- three.js 报错信息 RGBELoader.js:46 RGBELoader Bad File Format: bad initial token
three.js 报错信息 RGBELoader.js:46 RGBELoader Bad File Format: bad initial token 原因:模型的路径错误 实现: 备注:之前是使用 ...
- php js 报错信息,JavaScript中错误异常的分析(附示例)
本篇文章给大家带来的内容是关于JavaScript中错误异常的分析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我的建议是不要隐藏错误,勇敢地抛出来.没有人会因为代码出现 ...
- 如何处理前端js报错——容错处理的汇总
在工作和实践中,总会遇到图片,,等的路径找不到.当然能够找到是极好的,但如果图片或某些文件写在被封装压缩整理过的js中,其实就是两种情况,跨域或不跨域 1)跨域,请求的img失败,没有显示,显示本地默 ...
- 前端代码 Jenkins 线上打包报错:TypeError: StackFrame is not a constructor
两个月没来公司上班,今日开工遇到一个及其有意思的问题:Jenkins 线上打包前端代码,在控制台日志中打包的时候报错: When setting `useBuiltIns: 'usage'`, pol ...
- Eclipse中导入项目后js报错解决方法
Eclipse中导入项目后js报错的原因与解决方法 在我们将项目导入Eclipse后,配置好各种编译条件.加载好jar包.配置好tomcat后发现项目还是报错,(前提是项目本身并没有错误,而是我们在初 ...
- ie8 js未指明的错误_修复ueditor百度编辑器在IE8下shCore.js报错'undefined'错误的问题...
ueditor在IE8下点击任意文本框报脚本错误 错误问题: 在IE8下出现脚本错误 'undefined' 为空或不是对象 的问题 出现问题的文件为: 行数:299行 文件路径:ueditor\th ...
- Eclipse和MyEclipse使用技巧--解决MyEclipse中的js报错的小方法
今天,下了个模版,但是导进去的时候发现js会报错.看了下其他都没有错误.而有一个js报错误,请原谅我有点红色强迫症,不能留一点红色 . 错误如下: Syntax error on token &quo ...
- web-packwebpack .\src\main.js .\dist\bundle.js 报错
(1)使用指令 web-pack>webpack .\src\main.js .\dist\bundle.js 报错 (2).问题分析,wbpack版本太高,指令不一样.我的是v4.14.0 ...
- JS报错-Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on...
报错信息:Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on stric ...
最新文章
- 使用zerotier让异地设备组局域网
- python手机版怎么弄-手把手教你如何使用Python向手机发送通知
- Css中图片局部放大,将图片中局部放大效果
- Android开发之原型图浏览器打开可点击跳转之Google插件之Axure(实际上大部分浏览器都可以安装这个插件)
- cat 几行_迷风花说Cat!Cat因为林教练是好教练回去现实却给了一巴掌
- 【JavaWeb】JDBC优化 之 数据库连接池、Spring JDBC
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败
- java笔记之字符串,字符串数组,ListString的相互转换
- Apache2 实现https访问http服务
- Mysql安装步骤:
- 在网易咔哒上面制作SCRATCH小程序
- 等保三级密码复杂度是多少?多久更换一次?
- 【联邦学习】综述《Advances and Open Problems in Federated Learning》论文结构
- 【爬虫】堆糖图片爬取
- nginx 屏蔽某些ip,防止有些人刷接口攻击
- maven deploy jar包和源码包到私服
- 升级sp1后文档无法编辑
- 干货!必看创意按钮设计,打造真正的按钮诱惑
- python3 接入IOS推送apn
- Python mongodb数据库
热门文章
- 网络编程(UDP/TCP)
- English Learning - Day24 作业打卡 2022.12.30 周五
- 自己建设网站需要做哪些准备
- Speedoffice(word)如何插入空白页
- 王者荣耀服务器信息共享,王者荣耀账号时长共享含义及作用解析
- MySQL数据库中有字段类型是日期,时间的插入语句处理
- php滚动加载分页,jQuery scroll事件实现监控滚动条分页实例详解
- 加密pdf文档不能实现复制操作
- 分类计数原理与分步计数原理_《分类计数原理与分步计数原理》优秀说课稿
- 【Aspose教程】Aspose.Words for .NET使用教程(三):支持的平台及文档格式转换