当前场景
在我们的一个SPA网络应用程序中,我们使用自定义跟踪器请求跟踪各种用户操作,如cta clicks
,page navigations
等,该请求使用POST请求将一些信息传递到后端。
问题现在,由于这些跟踪请求我们的即时(尽管以异步方式但在同一线程上运行),这些请求将与同一页面线程上发生的任何其他事件作斗争。
预期效果理想情况下,如果可以收集这些跟踪数据并以固定的时间间隔(可能每分钟)发送单个请求,这将大大提高客户端性能,并且还将减少发送跟踪请求的服务器上的负载。
解决 方案
- 使用本地存储 - 我想到的一个直接解决方案是使用本地存储来保留跟踪数据,即使用户在触发呼叫之前立即离开页面,这些数据也会被保留。但问题是,由于超时
x seconds
,如果用户关闭选项卡并且永远不会回来,数据将位于 localStorage 中,但永远不会发送。
是否有任何适当的解决方案可以帮助实现这种预期的效果?也许backgroundSync
API?
我有点想知道你是否真的需要解决这个问题,但这里有一个可能会有所帮助的离线分析示例。
关于后台同步(自 Chrome M49 起可用)的信息不多,但此介绍是一个起点。