网站埋点的get请求可能会由于页面的跳转被中断掉,该如何解决?
在做埋点统计的时候,如果给一个带有超链的a标签绑定click事件,然后发送一个get请求,这个请求在某些情况下有可能会被页面的跳转中断掉,导致信息采集不到。
如下图所示:
目前只想到一个思路,把这些需要发送的参数先缓存起来,放到localStorage中,以时间戳作为key值保证不重复,请求发送成功之后再把这条记录删除掉。跳转到某个安全页面之后再把这些缓存的数据异步发出去。
一般来说get请求我们可以直接new Image()的方式进行,当然也可以采用CORS的方式,直接$.get(),不过这两种方式经测试都会在某些场景下被中断掉。不知道大佬们是如何解决这个问题的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
1、a标签换成div标签,这个div上加一个属性放跳转的链接,并绑定一个click事件,比如:
<div onclick="save()" data-url="http://www.baidu.com"></div>
2、click事件里,get请求去发送参数,发送成功之后,再跳转到“http://www.baidu.com”;
鱼与熊掌不能兼得(至少现在是这样),你自己不是也有解决办法嘛,在用户体验和业务需求之间你要做取舍。
如果统计信息对你们来说非常重要,你可以采用阻塞式强行传值,估计也用不了多少时间
跳转时可以人性化一点弄一个过渡对话框,让用户自己确定是否需要强行跳转
按你自己的方法,进行页面间的通信,在安全页面上进行传输
如果本次实在没机会传输,就把数据缓存起来,等到下一次有机会再一起传输
还是看你个人需求吧,如果你找到了好的办法也可以分享下。
请问你用的是sendBeacon?这个也有浏览器兼容性,现在做埋点好纠结这个问题啊