在 Web 应用中处理事件跟踪的最佳(高性能)方法

Best (performant) way to handle event tracking in web apps

本文关键字:最佳 高性能 方法 跟踪 Web 应用 处理事件      更新时间:2023-09-26

当前场景

在我们的一个SPA网络应用程序中,我们使用自定义跟踪器请求跟踪各种用户操作,如cta clickspage navigations等,该请求使用POST请求将一些信息传递到后端。

问题现在,由于这些跟踪请求我们的即时(尽管以异步方式但在同一线程上运行),这些请求将与同一页面线程上发生的任何其他事件作斗争。

预期效果理想情况下,如果可以收集这些跟踪数据并以固定的时间间隔(可能每分钟)发送单个请求,这将大大提高客户端性能,并且还将减少发送跟踪请求的服务器上的负载。

解决 方案

  • 使用本地存储 - 我想到的一个直接解决方案是使用本地存储来保留跟踪数据,即使用户在触发呼叫之前立即离开页面,这些数据也会被保留。但问题是,由于超时x seconds,如果用户关闭选项卡并且永远不会回来,数据将位于 localStorage 中,但永远不会发送。

是否有任何适当的解决方案可以帮助实现这种预期的效果?也许backgroundSync API?

我有点想知道你是否真的需要解决这个问题,但这里有一个可能会有所帮助的离线分析示例。

关于后台同步(自 Chrome M49 起可用)的信息不多,但此介绍是一个起点。