我们现在要做一个前端监控项目,获取用户行为记录的功能,然后收集起来,隔一段时间将统计好的记录发给后端;除了Ajax轮询;可以用 webSocket 吗?具体怎么实现好些呢
还有一个问题就是。假设我10秒提交一次,我10秒内刷新页面会造成数据丢失的问题?放入LocalStorage?
我们现在要做一个前端监控项目,获取用户行为记录的功能,然后收集起来,隔一段时间将统计好的记录发给后端;除了Ajax轮询;可以用 webSocket 吗?具体怎么实现好些呢
还有一个问题就是。假设我10秒提交一次,我10秒内刷新页面会造成数据丢失的问题?放入LocalStorage?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
一般情况下,使用websocket 或 轮询 是实时通信的需要,后端有消息需要及时通知到客户端才会使用这种方式。不要把简单的需求复杂化。
解决方案:localstorage + onbeforeunload。onbeforeunload可以监听页面离开事件,在这里可以发送一次请求,但不一定能触达后端。另外直接杀进程的情况时不触发onbeforeunload的。
故localstorage 来解决最后没发送到后端的数据。
PS: 我自己也开发了用户行为跟踪的插件,我是实时发的,触发行为事件用1像素图片的查询字符串携带要传输的数据。用户的环境数据在loaded后发post请求。