当前情景
在我们的一个 SPA 网络应用程序中,我们正在使用我们的自定义跟踪器请求跟踪各种用户操作,例如等cta clicks
,page navigations
该请求使用 POST 请求将一些信息传递到后端。
问题 现在因为这些跟踪请求我们即时(虽然以异步方式但在同一线程上运行),这些请求将与同一页面线程上发生的任何其他事件作斗争。
理想的效果 理想情况下,如果可以收集这些跟踪数据并以固定的时间间隔(可能每分钟)发送单个请求,这将极大地提高客户端性能并减少跟踪请求的服务器上的负载已发送。
解决方案
- 使用 Localstorage - 我想到的一个直接解决方案是使用 LocalStorage 来保留跟踪数据,即使用户在调用被触发之前立即离开页面,这些数据也会被保留。但问题是,由于
x seconds
超时,如果用户关闭选项卡并且再也没有回来,数据将在 localStorage 中,但永远不会发送。
是否有任何适当的解决方案可以帮助实现这种预期效果?也许backgroundSync
API?