网站埋点的get请求可能会由于页面的跳转被中断掉,该如何解决?

发布于 2022-09-05 04:23:52 字数 439 浏览 28 评论 0

在做埋点统计的时候,如果给一个带有超链的a标签绑定click事件,然后发送一个get请求,这个请求在某些情况下有可能会被页面的跳转中断掉,导致信息采集不到。

如下图所示:
图片描述

目前只想到一个思路,把这些需要发送的参数先缓存起来,放到localStorage中,以时间戳作为key值保证不重复,请求发送成功之后再把这条记录删除掉。跳转到某个安全页面之后再把这些缓存的数据异步发出去。

一般来说get请求我们可以直接new Image()的方式进行,当然也可以采用CORS的方式,直接$.get(),不过这两种方式经测试都会在某些场景下被中断掉。不知道大佬们是如何解决这个问题的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

信仰 2022-09-12 04:23:52

1、a标签换成div标签,这个div上加一个属性放跳转的链接,并绑定一个click事件,比如:
<div onclick="save()" data-url="http://www.baidu.com"></div>
2、click事件里,get请求去发送参数,发送成功之后,再跳转到“http://www.baidu.com”;

内心旳酸楚 2022-09-12 04:23:52

鱼与熊掌不能兼得(至少现在是这样),你自己不是也有解决办法嘛,在用户体验和业务需求之间你要做取舍。

  1. 如果统计信息对你们来说非常重要,你可以采用阻塞式强行传值,估计也用不了多少时间

  2. 跳转时可以人性化一点弄一个过渡对话框,让用户自己确定是否需要强行跳转

  3. 按你自己的方法,进行页面间的通信,在安全页面上进行传输

  4. 如果本次实在没机会传输,就把数据缓存起来,等到下一次有机会再一起传输

还是看你个人需求吧,如果你找到了好的办法也可以分享下。

天冷不及心凉 2022-09-12 04:23:52

请问你用的是sendBeacon?这个也有浏览器兼容性,现在做埋点好纠结这个问题啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文