首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
JS 基础知识点及常考面试题(一)
JS 基础知识点及常考面试题(二)
ES6 知识点及常考面试题
ES6常考面试题二
JS 异步编程及常考面试题
手写 Promise
Event Loop
JS 进阶知识点及常考面试题
JS 思考题
DevTools Tips
浏览器基础知识点及常考面试题
浏览器缓存机制
浏览器渲染原理
安全防范知识点
从 V8 中看 JS 性能优化
性能优化指南
Webpack 性能优化
实现小型打包工具
React 和 Vue 两大框架对比
Vue 常考基础知识点
Vue 常考进阶知识点
React 常考基础知识点
React 常考进阶知识点
监控
UDP协议
TCP协议
HTTP 及 TLS
HTTP/2 及 HTTP/3
输入 URL 到页面渲染的整个流程
设计模式
常见数据结构
常考算法题解析
CSS 常考面试题资料
如何写好一封简历
面试常用技巧
当前位置:
首页>>
技术小册>>
web前端面试完全指南
小册名称:web前端面试完全指南
前端监控一般分为三种,分别为页面埋点、性能监控以及异常监控。 这一章节我们将来学习这些监控相关的内容,但是基本不会涉及到代码,只是让大家了解下前端监控该用什么方式实现。毕竟大部分公司都只是使用到了第三方的监控工具,而不是选择自己造轮子。 ## 页面埋点 页面埋点应该是大家最常写的监控了,一般起码会监控以下几个数据: * PV / UV * 停留时长 * 流量来源 * 用户交互 对于这几类统计,一般的实现思路大致可以分为两种,分别为手写埋点和无埋点的方式。 相信第一种方式也是大家最常用的方式,可以自主选择需要监控的数据然后在相应的地方写入代码。这种方式的灵活性很大,但是唯一的缺点就是工作量较大,每个需要监控的地方都得插入代码。 另一种无埋点的方式基本不需要开发者手写埋点了,而是统计所有的事件并且定时上报。这种方式虽然没有前一种方式繁琐了,但是因为统计的是所有事件,所以还需要后期过滤出需要的数据。 ## 性能监控 性能监控可以很好的帮助开发者了解在各种真实环境下,页面的性能情况是如何的。 对于性能监控来说,我们可以直接使用浏览器自带的 [Performance API](https://developer.mozilla.org/zh-CN/docs/Web/API/Performance) 来实现这个功能。 对于性能监控来说,其实我们只需要调用 `performance.getEntriesByType('navigation')` 这行代码就行了。对,你没看错,一行代码我们就可以获得页面中各种详细的性能相关信息。 我们可以发现这行代码返回了一个数组,内部包含了相当多的信息,从数据开始在网络中传输到页面加载完成都提供了相应的数据。 ## 异常监控 对于异常监控来说,以下两种监控是必不可少的,分别是代码报错以及接口异常上报。 对于代码运行错误,通常的办法是使用 `window.onerror` 拦截报错。该方法能拦截到大部分的详细报错信息,但是也有例外 * 对于跨域的代码运行错误会显示 `Script error.` 对于这种情况我们需要给 `script` 标签添加 `crossorigin` 属性 * 对于某些浏览器可能不会显示调用栈信息,这种情况可以通过 `arguments.callee.caller` 来做栈递归 对于异步代码来说,可以使用 `catch` 的方式捕获错误。比如 `Promise` 可以直接使用 `catch` 函数,`async await` 可以使用 `try catch`。 但是要注意线上运行的代码都是压缩过的,需要在打包时生成 sourceMap 文件便于 debug。 对于捕获的错误需要上传给服务器,通常可以通过 `img` 标签的 `src` 发起一个请求。 另外接口异常就相对来说简单了,可以列举出出错的状态码。一旦出现此类的状态码就可以立即上报出错。接口异常上报可以让开发人员迅速知道有哪些接口出现了大面积的报错,以便迅速修复问题。 ## 小结 这一章节内容虽然不多,但是这类监控的知识网上的资料确实不多,相信能给大家一个不错的思路。
上一篇:
React 常考进阶知识点
下一篇:
UDP协议
该分类下的相关小册推荐:
uniapp快速入门与实战
WebGL开发指南
Web响应式布局入门到实战
vue高级应用开发与构建