想咨询下记录view_log且记录访问时间有没有什么好方案
不能用第三方!
只能 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 感觉会好一些。正常应该用队列吧,但这项目没引入过,而且对实时和精确度也没有很高的要求!
另外也看过有说用浏览器事件的,但感觉不同浏览器兼容问题比较多,还会有手机端嵌套 app 不一定生效就 pass 了
希望有做过的朋友指导一下~
上服务端,不过好像有点大材小用 www.workerman.net/web-sender