javascript - 在网络应用程序中处理事件跟踪的最佳(高性能)方法

标签 javascript tracking progressive-enhancement progressive-web-apps

当前情况

在我们的一款 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/

相关文章:

使用 PhoneGap 从 Android 调用 Javascript

JavaScript 赋值()

javascript - jQuery:滚动窗口然后 addClass() - 如何回调

php - 记录某人使用 PHP 查看页面的时间的最简单方法是什么?

javascript - 检测对给定 JavaScript 事件的支持?

javascript - 如何将数据传递给foreach内部的angularjs foreach

python - 在 OpenCV 中绘制有角度的矩形

python - 类型错误 : <unknown> is not a numpy array in cv2. calcOpticalFlowPyrLK()

javascript - 是否可以在关闭 JS 的情况下使 AJAX 站点可抓取并优雅地降级?

jquery - 与 YUI 的 DataTable 最接近的 jQuery 近似是什么?