前段时间项目的登录模块出了一个问题,公司内的测试人员如果同段时间登录后,页头的登录信息处,也就是“欢迎你,某某某,等等等”之类的信息,出现了错乱的情况,比如蜡笔小新登录完毕再切换到其他页面后,页头显示的竟然是樱桃小丸子的信息,这不是气煞小新了,他可是个男人啊,怎么变成了女孩纸。。。但进入到个人空间页面,里边显示的还是小新的个人信息,这是肿么回事?于是我立即想到了网络环境,即我们都是通过代理服务器上网的,有米有可能是代理服务器搞的鬼呢?同时一个同事说其他某个知名网站好像也出现过类似问题,貌似是代理服务器的问题。这样我立即发动了周围没有通过代理服务器上网的朋友(其实就是我对象),经他们公司同事鉴定,未出现该类问题,那基本百分之七十是代理服务器的问题,原理是什么呢?网上有一些热心的朋友发了很多类似的文章及问题,经过学习和理解大致简要了如下的流程:
- A用户在首页通过ajax发出登录请求
- 服务器处理该请求后返回A的个人信息
- 浏览器将ajax返回的个人信息置于页头处
- 用户A开始浏览新闻页面(请求名称假设为http://xiaoxin.com/news),新闻页面页头处取session里的用户信息并展示出来。
- 代理服务器缓存新闻页面的url--http://xiaoxin.com/news 及对应的页面内容(该内容里包含了页头处A的个人信息)
- 此时,B用户也在首页通过ajax发出了登录请求
- B用户浏览新闻页面news
- 代理服务器从它的缓存中找到了http://xiaoxin.com/news
- 代理服务器不再去请求服务器,直接将它缓存中对应http://xiaoxin.com/news的静态页面拿到返回给用户。
- 于是B就看到了包含A信息的新闻页面
代理服务器的这个功能是为了便于局域网内用户可以共享互联网数据,加快访问互联网的速度,但是对于实时变更动态信息的页面来说却是不适合的,于是就有了本篇文章的问题。
那如何解决这个问题呢,如何不让代理服务器返回一个缓存的静态页面?那就是要告诉代理服务器我的这个请求不需要你从缓存中获取。由于我们网站的其他信息还是可以共享的,唯独页头的用户信息是不可以的,那么就考虑把用户信息这块单独做个请求,Ajax的post请求不会被缓存,于是我们就采用了此种方式来加载个人信息。
这可能不是一个好的方法,但基于目前我们的业务和需求条件来说已经够用了,随着业务的需求还会有更好的解决方案。fighting,小新!
分享到:
相关推荐
这通常表现为用户在EditText中输入数据后,当ListView滚动时,数据会显示在错误的列表项上,造成用户体验不佳。为了解决这个问题,我们需要深入理解ListView的工作机制,并采取相应的优化策略。 首先,我们需要了解...
在Android开发中,RecyclerView是一个非常重要的组件,它用于展示大量数据列表,具有高效的数据复用机制,能够显著提升用户体验并减少内存消耗。然而,初学者在使用RecyclerView时常常会遇到一个问题,即数据错乱,...
然而,当RecyclerView中的item包含交互性元素如RadioButton或EditText时,可能会遇到一些问题,特别是当用户在滑动时,数据状态可能会出现错乱。这个问题主要源于RecyclerView的复用机制,它会重用不再可视的item...
### 笔记本键盘按键错乱的解决方法 在日常使用笔记本电脑的过程中,有时会遇到键盘按键错乱的情况,这可能会给我们的工作或学习带来不便。本文将详细探讨笔记本键盘按键错乱的原因及其解决办法。 #### 一、笔记本...
然而,在实际使用过程中,特别是当ListView的item中包含可交互的组件,如Checkbox、ToggleButton等时,用户滚动ListView时可能会遇到条目错乱的现象。这种情况主要是由于ListView的复用机制导致的,为了解决这个问题...
android listView复用导致item上面动画的错乱。网上大部分都是写的item上面显示静态图片的例子,我这个是解决显示动态图片时复用导致的动画显示错乱问题。问题描述:假如一屏可以显示10个item项,如果第一个正在播放...
- **用户代理字符串**:用户代理字符串(User Agent String)是一种告诉服务器浏览器类型和版本的信息。通过模拟不同的浏览器环境,可以绕过某些针对特定浏览器版本的代码问题,进而解决网页布局错乱的问题。 #### ...
在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。...通过以上提到的方法,可以有效地避免进度条错乱,提供顺畅的用户体验。在实际开发中,可能需要根据项目需求和具体情况灵活组合使用这些策略。
这可能会影响用户体验,特别是当用户尝试在列表之外的区域进行操作时。为解决此问题,我们需要合理设置ListView的焦点策略,例如使用android:descendantFocusability属性,或者在适配器的代码中控制焦点转移。 解决...
vue 使用swiper时出现的布局错乱问题 https://mp.csdn.net/mdeditor/102522543#
在Android开发中,RecyclerView是一个非常重要的...通过以上分析和实践,可以有效地解决RecyclerView显示错乱的问题,保证用户界面的正常显示。在实际开发中,理解并熟练运用这些技巧,将有助于提升应用的用户体验。
通过上述方法,我们可以实现流畅的用户体验和正确的数据呈现,避免数据错乱和滑动卡顿。在项目中,可以参考名为"EditText-RecyclerView-master"的压缩包中的示例代码,进一步理解和应用这些技术。
1. 查看当前硬盘分区信息:工具能列出硬盘的所有分区及其详细信息,包括大小、类型、位置等,让用户了解硬盘的现状。 2. 重新排列分区顺序:用户可以选择拖动分区来调整它们的前后顺序,确保驱动器字母与预期一致。 ...
这可能导致用户找不到原来的文件存储位置,或者某些程序因找不到正确的路径而无法运行。这种情况通常发生在多个硬盘或分区的计算机上。 描述中提到的解决方案是通过一个批处理文件`regorderdrv.cmd`来解决这个问题...
系统工具\时间显示错乱补丁 修正~~~~~
### Linux TCP服务器连接时发不出数据问题分析 #### 背景概述 本文主要探讨了在Linux环境下,当TCP服务器与客户端建立连接后,服务器在某些情况下无法向客户端正常发送数据的问题。具体场景为:服务器与两个客户端...
在计算机操作系统中,时间显示是用户界面的基本组成部分,它提供了实时的时间信息,帮助用户安排任务和保持日常活动的同步。然而,有时用户可能会遇到时间显示出现异常,如时间以英文形式显示,这可能是由于多种原因...
在本教程中,我们将深入探讨如何实现RecyclerView的瀑布流布局,并解决数据更新时可能出现的数据跳动或错乱问题。 首先,RecyclerView瀑布流布局通常通过第三方库实现,如StaggeredGridLayoutManager。这种布局管理...
zencart首页图片错乱的修改简单点就是把每个商品的宽度调小些,例如修改 \includes\modules\new_products.php 将其中的 $col_width = floor(100/$num_products_count); } else { $col_width = floor(100/SHOW_...
当用户遇到“OBLOG错乱”这样的情况时,可能是由于多种原因导致的,下面将详细分析可能的问题及其解决方案。 首先,模板问题是最常见的原因之一。"网页模版"这一标签提示我们,问题可能出在博客的主题或模板设置上...