当前情况
在我们的一款 SPA Web 应用程序中,我们使用自定义跟踪器请求来跟踪各种用户操作,例如 cta 点击
、页面导航
等,该请求将一些信息传递到后端使用 POST 请求。
问题 现在,因为这些跟踪请求我们的即时信息(虽然以异步方式但在同一线程上运行),所以这些请求将与同一页面线程上发生的任何其他事件作斗争。
期望的效果 理想情况下,如果可以收集这些跟踪数据并以固定的时间间隔(可能每分钟)发送单个请求,那么这将极大地提高客户端性能,并且还会减少发送跟踪请求的服务器上的负载.
解决方案
- 使用 Localstorage - 我想到的一个直接解决方案是使用 LocalStorage 来保留跟踪数据,即使用户在调用之前立即离开页面,这些数据也会被保留。但问题是,由于
x秒
超时,如果用户关闭选项卡并且再也没有回来,数据将在localStorage中,但永远不会被发送。
是否有任何适当的解决方案可以帮助实现这一预期效果?也许是backgroundSync
API?
最佳答案
我有点想知道你是否真的需要解决这个问题,但这里有一个 example of offline analytics这可能会有所帮助。
关于Background Sync的信息不多(自 Chrome M49 起可用)但 this introduction是一个起点。
关于javascript - 在网络应用程序中处理事件跟踪的最佳(高性能)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790968/