为何WEB服务器保存了客户端的整个页面(100分)

  • 主题发起人 主题发起人 daoba
  • 开始时间 开始时间
D

daoba

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用一个用户名访问服务器时生成的页面,出现在用另一个用户访问的界面上,服务器端的指令相同,但是取数据库的参数不通,这本应该是完全不同的页面,结果却出人意料,问题的根本原因是服务器端保存了第一个访问用户生成的界面,我该如何清除服务器保存的这个页面信息啊,求救。
 
应该是客户端的缓存保存了客户端的整个页面...
清ie的缓存即可
 
应该是页面缓冲池的问题...
 
程序中禁用缓冲即可^
 
或者你ctrl+F5强制刷新下看看
 
肯定不是客户端的问题,我在不同的两台机器访问到的界面是一样的,说明服务器直接把上一个访问同一个页面的内容保下来了,待下一个访问来时它直接发到客户端了。
 
请问Johnny_du,页面缓冲池如何禁止,我把整个页面的viewstate都禁了也没用,如何在服务器禁止,让新不同客户端访问时分别提供页面。
我认为之所以有这种情况发生是因为iis为了优化服务器资源,发现同样代码的访问直接回送,但是同样代码产生的结果却不一样。我用数据库取数据时便能得到正常结果
 
提供代码供分析,我在前面加了行号,问题就出在第14、15行,字符串MENU的值我通过第17行LABEL输出是对的,但是绑定到TREEVIEW上时就不对了,TREEVIEW显示的是第一次访问该页面时生成的TREEVIEW,而这第一次访问可以不在同一台机器:
1、public void Page_Load(Object sender, EventArgs E)
2、{
3、 if(!IsPostBack)
4、 {
5、 Menu = "";
6、 if((Int32)Session.Contents["ClassId"] > 2) //控制部门经理级别的只能管理本部门的菜单项
7、 {
8、 GetMenu(1);
9、 }
10、 else
11、 {
12、 GetMenu(0);
13、 }
14、 MenuSource.Data = Menu;
15、 TreeViewMenu.DataBind();
16、 }
17、 Result.Text = Menu;
18、 for(int i=0;
i<TreeViewMenu.CheckedNodes.Count;
i++) //控制每次只有一个被选中的菜单项作为父菜单
19、 {
20、 TreeViewMenu.CheckedNodes.Checked = false;
21、 }
22、}
 
后退
顶部