想咨询下记录view_log且记录访问时间有没有什么好方案

不能用第三方!:cold_sweat:

只能 js 或者 jq 或 laravel 自己搞

1. 目前方案预计是,所有页面引入统计 js,首先生成唯一 id 写入 cookie:(统计 uv 用),设置定时器 5s 发送一次包含 view_log 所需 ip、唯一 id、页面地址、初次访问时间戳等信息,count 到最大 5 分钟关闭定时器。

接口根据唯一 id 和页面地址和初次访问时间戳判断 insert or update,update 就 + 5s 最大 5 分钟。

2. 这个方案每次都要传一堆信息明文感觉不太合适

想着要不要第一次访问到中间件时将初次的 view_log 写入,然后将 log_id 传给 controller,前端传参只传 log_id 和 js 生成的唯一 id 就行了。

后端更新根据 log_id 和直接更新指定条目的 log 时间和唯一 id 就行了,问题在于每个页面的 controller 方法在返回页面时是不是都要把 log_id 参数加上 return view (‘front.home.index’, compact (‘log_id’));

3. 另外每 5s 频繁更新感觉也有问题,把数据写入 redis,再写一个定时任务每 10 分钟获取一下 redis 中数据再去更新 log 感觉会好一些。正常应该用队列吧,但这项目没引入过,而且对实时和精确度也没有很高的要求!:joy:

另外也看过有说用浏览器事件的,但感觉不同浏览器兼容问题比较多,还会有手机端嵌套 app 不一定生效就 pass 了

希望有做过的朋友指导一下~

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

上服务端,不过好像有点大材小用 www.workerman.net/web-sender

6个月前 评论
伽蓝幻梦 (楼主) 6个月前
讨论数量: 6

刚才发到博客里面去了 :joy:重新发了下

6个月前 评论

上服务端,不过好像有点大材小用 www.workerman.net/web-sender

6个月前 评论
伽蓝幻梦 (楼主) 6个月前

Laravel 安装 horizon , 有访问, horizon都会记录,包含访问的IP、URL、请求参数、Payload、HeadersSession、Response 等, 然后在定时任务读取 horizon 记录的表,汇总到你需要记录的表中进行分析。

6个月前 评论
伽蓝幻梦 (楼主) 6个月前

使用matomo,可以独立部署,在页面里统一埋点即可。

6个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!