日期:2014-05-17  浏览次数:20483 次

有关.net网页的刷新
做了一个小的通知发布系统,有登录界面default.aspx和功能界面main.aspx,在使用过程中,由于页面刷新存在问题,造成系统运行不稳定,有两个,先说第一个,另外一个另开贴说。

使用IE8浏览器,如果打开登录界面前,IE8在浏览其他网站,开着一个窗口A,之后打开登录界面,运行完后,退出系统,此过程中一直保留窗口A。然后,如果再次使用IE8请求登录界面,则有问题:

a. 登录界面上的验证码不更新,仍然是前一次打开default.aspx时候的,并且由于验证码是做在一个verify.aspx中的,这个页面同时会向Session里面放一个验证码的信息,验证码不更新,Session中没有验证码信息,登录界面不仅无法登录,还可能没有验证信息而报错。
b. 登录界面每次请求验证码时候,都会带一条DateTime.Now的字符串,以强制更新验证码(代码如下),但是在这种情况下,验证码依然不能更新,说明浏览器根本没有向服务器请求验证码,而是直接使用了上次的结果。

img_verify.ImageUrl = ConfigurationManager.AppSettings["URL_Root"] + "pg_verify.aspx?Temp=" + DateTime.Now.ToString("yyyyMMddHHmmss");

c. 如果用浏览器刷新,问题就解决,再次证明,浏览器根本没有向服务器请求一些资源。

求解:
如何让页面每次加载时候,都强制更新页面上的元素,告诉浏览器,这个不能用上次请求时候的结果?
------最佳解决方案--------------------
我在IE9的IE7 compatible mode和IE8中都试过了,不能重现。
------其他解决方案--------------------
IE下工具-历史记录清除,缓存之类的还是很讨厌的
------其他解决方案--------------------
更新验证码,页面都跟着刷新了,这个不好啊
------其他解决方案--------------------
有想实验的朋友,可以到在线测试地址实验:

www.attidust.com

打开页面前,首先开一个IE,然后请求页面,关掉浏览器窗口,第二次请求登录界面,会发现验证码与第一次请求时候一样,没有更新
------其他解决方案--------------------
按你的步骤,没有问题啊。难道你在1s内打开的新页面?

改成 DateTime.Now.Ticks.ToString();试一试。
------其他解决方案--------------------


难道是我自己浏览器的问题????
难道说是自己犯SB了?

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
------其他解决方案--------------------
刚刚又到公司实验了一下,的确,是我浏览器的问题,但是,为什么会这样呢?太SB了……

求大侠解救!
------其他解决方案--------------------
告诉浏览器 不要记录缓存  
------其他解决方案--------------------
结账吧,是自己家里电脑浏览器设置的问题,要命了!