需求
现在市场上流行的浏览器还是有很多,随之而来的也就有很多浏览器兼容问题,一般线上出现这种问题的时候,我们都会选择咨询用户使用的是什么浏览器,不仅响应速度很慢,而且很多时候,用户自己也不清楚浏览器具体的信息,例如是什么浏览器,具体的版本,可能什么浏览器大部分人还是能答上来的,但是具体的版本,一般不是搞技术的谁会去留意这个问题
解决方案
可以在后端记录用户使用的浏览器信息,可能有人会说,NGINX本身的访问日志就有记录啦,的确是,但是并没有什么用,最多能够统计使用各个浏览器的数量,但是具体当前出问题的用户使用的浏览器版本信息,也是无法得知,(除非你能获取到用户的IP,但是其实IP也不靠谱,例如校园网)
目前找到比较方便的方案就是封装一个方法,传入用户的id,记录当前id对应使用的浏览器信息,放在基类中的beforeaction(yii的做法,其他框架应该也有对应的做法),如果存在多种类型的用户id,还可以传入对应的用户类型。
有个需要注意的地方,一般情况下我们会选择记录日志,虽然不会特别耗性能,但是记录太多重复的信息还是没有必要(同一个用户在使用的时候可能会访问你的系统n次,特别是有各种异步请求的系统)
所以这里建议在session中记录一个标志位,当当前session没有记录浏览器信息日志时,调用记录的方法,并将对应的标志位置1,下次再访问就不再记录,用户更换浏览器或者是电脑,都需要重新登录,会再次记录
网友评论