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

akuma
  • 19

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

如下图所示:
图片描述

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

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

回复
阅读 2.5k
3 个回答

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

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

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏