在 Web 应用中处理事件跟踪的最佳(高性能)方法
Best (performant) way to handle event tracking in web apps
当前场景
在我们的一个SPA网络应用程序中,我们使用自定义跟踪器请求跟踪各种用户操作,如cta clicks
,page navigations
等,该请求使用POST请求将一些信息传递到后端。
问题现在,由于这些跟踪请求我们的即时(尽管以异步方式但在同一线程上运行),这些请求将与同一页面线程上发生的任何其他事件作斗争。
预期效果理想情况下,如果可以收集这些跟踪数据并以固定的时间间隔(可能每分钟)发送单个请求,这将大大提高客户端性能,并且还将减少发送跟踪请求的服务器上的负载。
解决 方案
- 使用本地存储 - 我想到的一个直接解决方案是使用本地存储来保留跟踪数据,即使用户在触发呼叫之前立即离开页面,这些数据也会被保留。但问题是,由于超时
x seconds
,如果用户关闭选项卡并且永远不会回来,数据将位于 localStorage 中,但永远不会发送。
是否有任何适当的解决方案可以帮助实现这种预期的效果?也许backgroundSync
API?
我有点想知道你是否真的需要解决这个问题,但这里有一个可能会有所帮助的离线分析示例。
关于后台同步(自 Chrome M49 起可用)的信息不多,但此介绍是一个起点。
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 从数组中删除元素的最佳方法是:javascript/jquery
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- Express服务器中语言子域的最佳实践
- 什么's是在javascript中迭代项的最佳方式
- 在 Web 应用中处理事件跟踪的最佳(高性能)方法