codeType
1. 讲一下自己做过的项目以及有哪些值得提的地方
2. 曝光埋点的活跃时间的记录
3. 发起一个http请求的全过程
4. 埋点请求后端接收到了,但是返回给前端的时候丢失了,怎么防止埋点数据重复
5. 页面关闭后的埋点请求怎么发送
6. 代码题 数组铺平
7. 代码题 发布订阅类的实现
8. 对agent架构有没有什么了解
9. 给我介绍了部门的情况,主要是做阿里云那边的监控平台,除了埋点以外还会监控前台的请求报错等等。
1. 曝光埋点的活跃时间的记录
主要是针对用户活跃时间进行一个计时,用户最后一次活跃时间之后timeout时间内没有操作,就暂停计时并进行上报。
同时用visibilitychange进行监听,在页面隐藏/关闭时绕过默认的批量上报逻辑,走单独上报。并且用fetch的keepalive代替sendBeacon进行上报,因为fetch有回调,上报失败也可以缓存失败数据到localStorage。
2.发起一个http请求的全过程
3. 埋点请求后端接收到了,但是返回给前端的时候丢失了,怎么防止埋点数据重复
前端发送埋点数据时需要给每一个埋点请求建立一个唯一的id,后端收到埋点请求时,检查id是否重复。如果重复了就不新增数据,并且返回ok(让前端能顺利去除失败埋点)。
4. 页面关闭后的埋点请求怎么发送
用beforeunload或者visibilitychange事件进行监听,然后用sendBeacon或者fetch的keepalive进行发送。