html本地缓存未查看信息,不同用户看到了相同的信息-一次web系统缓存问题的解决...

最近负责的系统总是出现奇怪的缓存问题,在这里简单记录一下碰到的问题和踩到的坑。

问题:用户反映使用不同账号A,B登录时,都出现账号A的页面信息(未邮寄账单提示)。如下所示:

41da1a0e12e3

图1:未邮寄账单提示

一  session缓存问题

鉴于之前也出现过类似的session缓存问题,session的key信息未清除。

如果A用户切换至B用户时,使用了不同的session key如‘U’,‘U_P’保存不同的信息,但是切换后只清除了'U'信息,忘记清除'U_P'信息,则可能导致A用户和B用户看到同样的‘U_P’信息。查看此处的代码也确实使用了seesion缓存:

41da1a0e12e3

图2:未邮寄账单session缓存

是不是这个原因引起的呢,之前的这个问题按说已经修复了,难道还有啥代码没改?查看代码,切换用户的时候移除了session的内容,登出账号的时候也失效掉了session信息。

41da1a0e12e3

图3:session清除

通过查看后台服务器日志,发现A用户登录后调用了/un-post-billls-GET链接,获取到了未邮寄账单信息。但是B用户的后台日志没有找到调用过后台的链接,所以排除了后台session缓存错误的可能。后台日志就不上图了,^_^。

二 浏览器本地缓存问题

由于B用户根本就没有调用后台服务,就拿到了未邮寄账单的信息,我们认为很大可能是浏览器本地缓存引起的问题。

1 Localstorage缓存

查看前端代码,在查询未邮寄账单信息时,使用了HTML5的window.localStorage来保存用户的信息,代码如下:

41da1a0e12e3

图4:localstorage缓存

并没有看到对localStorage的clear操作,这样可能是有问题的:A用户登录后在localstorage保存了未邮寄账单信息,切换至B用户后由于没有clear A用户的localstorage 信息。那么B用户就看到了A用户的本地缓存信息。

解决办法:在合适的时机清理localstorage,使用不同的key 保存缓存信息。

2 浏览器url缓存

这个bug是否就这样解决了呢?仔细看图4的localstorage代码,A用户和B用户实际上使用了不同的dataKey_A与dataKey_B来保存各自的localStorage,虽然说有一定的安全问题,但是由于不同的KEY存在,按道理说B用户不会看到A用户的未邮寄账单信息。问题可能不在localStorage这里。

根据 HTTP 规范,GET 用于信息获取,而且应该是幂等的。也就是说,当使用相同的URL重复GET请求会返回预期的相同结果。这个问题与现在的情况非常相似。

查看代码,使用了相同的URL请求重复GET:

41da1a0e12e3

图5:URL请求GET

解决办法:

1. GET请求URL后加随机数,让服务器认为不是相同的请求。

例 “/un-post-bills?t=” + new Date().getTime()

2. 使用POST代替GET,浏览器不会对POST做缓存

三 总结

WEB系统的缓存通常有好几级,本地缓存,服务器缓存,数据库缓存等。分析缓存问题时,要考虑每一层可能引起的问题,每一层的缓存技术也有很多种,要根据具体的场景来选择使用何种缓存技术。

缓存技术博大精深,本文只记录寻找bug时涉及的技术,其他有待学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pcl里面的法线估计

法线估计是一个很重要的特征,常常在被使用在很多计算机视觉的应用里面,比如可以用来推出光源的位置,通过阴影与其他视觉影响。 给一个几何表面,去推断给定点的法线方向,即垂直向量的方向往往是不容易的。然而&#xf…

pcl通过积分图来进行法线预测

首先,我们来看一下什么是积分图,我查了一下wiki,发现它的定义是这样的。 A summed area table is a data structure and algorithm for quickly and efficiently generating the sum of values in a rectangular subset of a grid. In the i…

个人计算机的防毒软件无法防御,在win10系统中无法启动defender防御软件的解决方法...

软件大小: 3.56 MB软件版本: 3.3.30.180软件类型:系统补丁查看详情直接下载win10系统是我们现在都在使用的系统,下面小编为大家在win10系统中无法启动defender防御软件的解决方法,希望可以帮助到你们。解决方法:1、根据…

pcl里面的点特征直方图(PFH)

表面法线和曲率可以好的代表一个点的几何特征。然而它们算得很快,而且算法简单,但是它们不能捕获细节,它们只是点的近邻的几何特征的近似估计。作为一个直接的结论,大多数的场景往往会包括很多有着相似特征的点,这会减…

为什么计算机休眠风扇还转,Win7系统进入睡眠模式后电脑风扇还在转的解决方法...

如果长时间离开电脑,可以让win7系统进“睡眠”模式,这样可以节省能源,延长硬盘寿命。但是有位用户说自己Win7系统进入睡眠模式后,依旧可以听到风扇还在转,怎么回事呢?其实这是因为Win7处在低耗能的状态&…

快速特征点直方图描述器(FPFH)

PFH的理论上的时间复杂度是O(nk的平方),n是点的数量,k是最近邻的个数。对于实时系统来说,这压根就是不行的,所以作为PFH规划的简化版本,FPFH把计算复杂度减少成O(nk),但是还具有很好的和PFH差不多的区分能力。 第一步…

计算机硬盘能达到5g的速度,5G号称可以达到几GB每秒,但是目前的手机处理器和硬盘可以处理这么庞大的数据量吗?...

感谢悟空的邀请!“通信行业那些事儿”,专业解读通信、网络类问题,希望我的回答能够给您启发,大家共同探讨、共同提高!欢迎关注我!楼主您好!这个问题,我正好是通信行业的从业人员&…

点集的视点特征直方图的评估

VFH(Viewpoint Feature Histgram)视角特征直方图描述器,可以很直观的表现点的聚类在处理聚类识别与6DOF位姿估计。 下面的图像展示了一个VFH识别和位姿估计的例子。给一些训练集,除了左下角的那个杯子,用来学习,用左下角的杯子作…

惯性矩和偏心距描述器

这次我们将学会怎么使用pcl::MomentOfInertiaEstimation 这个类来获取以惯性矩和偏心距为基础的描述器。这个类也能提取坐标对称和定向包围的方形盒子。但是记住导出的OBB不是最小可能性的盒子。 下面介绍了该种方法的特征提取方式。第一次先算出点云矩阵的协方差,…

mac os修改计算机名,如何修改Mac系统的个人用户名?

在Mac OS X中一旦建立一个用户,此用户的主目录的目录名将会是它的“短”名。更改登录名和主目录名从来都不简单,以前唯一的方法就是建立一个新用户,然后把所有的文件拷贝过去。Mac 修改用户是一件很悲剧的事,因为牵涉到很多地方的…

无线多串口服务器,多串口通信服务器

多串口通信服务器 ZLAN5G00A串口服务器是一款机架式16串口RS232/485/422和TCP/IP之间协议转化器。支持16个RS232串口、16个RS485、RS422串口,且RS232支持流控。通过一根网线连接到ZLAN5G00A,实现16个串口同时全双工工作,每路串口可作为TCP服务…

使用统计异常消除滤波器来消除异常

激光扫描可以生成很多点云的数据集。并且,测量误差会导致一些稀疏的异常值使得结果更差。这使得局部点云特征估计变得更加的复杂,产生一些错误的值,使得点云的识别失败。有些不规则的数据可以通过数理统计的方法来消除。我们稀疏异样消除是以…

为什么有的网站要改服务器才能打开吗,为什么有些网站进不了,怎样设置DNS才能进 – 手机爱问...

2006-12-24从22号起就进不了游戏。 按照官方的DNS地址也不行。 有没有广东深圳罗湖区的朋友能进的 麻烦把你们的DNS地址发给我 谢谢对于上述无法登陆游戏的玩家,《神泣》中国运营团队建议您尝试以下方式,通过修改个人电脑的DNS解析服务器地址&#xff0c…

用一个参数化的模型来投影点

这次我们将学着怎么通过一个参数化的模型进行投影。这个参数化的模型是通过一系列的系数---在这里是平面&#xff0c;相当于axbyczd0 下面是代码 #include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/ModelCoeffi…

云 文件 服务器 只存,云 文件 服务器只存

云 文件 服务器只存 内容精选换一换用户通过管理控制台创建或者导入密钥对后&#xff0c;在购买弹性云服务器时&#xff0c;登录方式选择密钥对&#xff0c;并选择创建或者导入的密钥对。用户购买弹性云服务器成功后&#xff0c;可使用密钥对的私钥登录弹性云服务器。使用的登录…

sr650服务器cpu型号,至强Gold 联想ThinkSystem SR650评测

今年7月&#xff0c;英特尔发布了至强可扩展处理器。面对新的处理器架构、新的AVX512指令集&#xff0c;需要新的服务器来匹配&#xff0c;需要更新机器&#xff0c;并提供新的软件、管理等套件。联想ThinkSystem SR650与至强可扩展处理器响应而出并被誉为“性能最高的服务器”…

使用一个环境的或者半径异样消除器来进行异样消除

这个文档显示了在滤波模型里面如何使用几个不同的方法来消除点云里面的异常。 第一步我们将使用一个环境消除滤波器来消除不满足环境条件的点云。然后我们将学会如何使用一个RadiusOutlierRemoval滤波器来消除在指定范围内没有达到指定数量邻居的点。 代码 #include <iost…

trailmakers未能连接服务器,Trailmakers联机版

《Trailmakers联机版》是一款可以联机进行的精美3D沙盒世界以创造为核心玩法的动作手游&#xff0c;这款游戏上手起来挺简单轻松的&#xff0c;诸多趣味内容&#xff0c;将让各位玩家们收获到极致的快感&#xff0c;非常的赞&#xff0c;不想错过任何欢乐与趣味的话&#xff0c…

lga775服务器cpu系列,【LGA775处理器 多的不仅是针脚】- 中关村在线

继发布新一代平台后&#xff0c;Intel推出了LGA775封装的P4处理器。这场被业界称为跨越性的技术革命&#xff0c;究竟能为用户带来什么样的变化和感受&#xff1f;它与Socket 478的处理器有何区别呢&#xff1f;● 何为LGA775LGA(Land Grid Array&#xff0c;栅格阵列封装)即So…

从深度图里面导出边界

这次我们将学着怎么从一个深度图里面导出边界。我们对3种不同种类的点很感兴趣:物体的边框的点&#xff0c;阴影边框点&#xff0c;和面纱点(在障碍物边界和阴影边界)&#xff0c;这是一个很典型的现象在通过雷达获取的3D深度。 下面是代码 /* \author Bastian Steder */#incl…