课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于程序员来说经常会遇到需要将系统运行过程中的日志数据进行上报然后处理分析,下面我们就一起来了解一下,关于日志数据上报需要注意的问题有哪些。
为了监控前端应用是否正常运行,通常会在前端收集错误与性能等数据,终将这些数据上报到服务端。因为日志上报并不是应用的主要功能逻辑,优先级比较低,所以我们在确保日志数据上报更高效的同时,还应该考虑如何尽可能地减少与其他关键操作的资源争抢。
1.sendBeacon
navigator.sendBeacon()方法主要用于满足统计和诊断代码的需要。这些代码通常会在卸载文档之前,尝试通过HTTP将少量数据异步传输到Web服务器。它解决了日志上报在unload时成功率很低的问题。我们在埋点时有很多对离开页面时上报的需求,因为SendBeacon是异步的,不会影响当前页到下一个页面的跳转速度,可以更可靠地保障事件上报成功率,并且不影响路由切换。
2.img.src
当浏览器不支持navigator.sendBeacon时,我们可以采用模拟图片加载的方式发送日志上报事件,且不会存在跨域问题。
3.关于XmlHttpRequest
这里不推荐用XmlHttpRequest。XHR虽然支持异步请求,直接发送数据到后端,但是会受到跨域和同源的限制。而通过日志上报API跟业务是不在一个域下的,如果采用这种模式需要设置Access-Control-Allow-Origin:*跨域,非常不方便,并且在unload情况下上报发生的丢包率很高。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。