none
IE9的超烂缓存功能 RRS feed

  • 问题

  • 目前发现两种莫名奇妙的浏览器错误:

    1、无法上网浏览的问题:笔记本电脑,网络环境A:单位LAN,使用无线路由器接入LAN,LAN中有H3C Portal WEB认证设备,访问外网,自动导向认证页面(LAN地址10.99.*.*),登录后可以连接外网,由于设置打开IE9时自动访问主页,结果在已经登录认证后,访问主页,仍然被自动导向认证页面!如果各位大侠怀疑是认证设备问题,请接着看。网络环境B:家里LAN,使用无线路由器通过PPPoE接入Internet,此时LAN中已没有认证设备,且台式PC正常上网(无线路由器WAN设为永久在线),而在网络环境A中使用过的笔记本电脑,则在打开主页时,仍导向H3C Portal认证网页网址,当然结果是无法访问,只要修改主页URL任意部分,得到一个最近没有用过的网址,如http://www.baidu.com修改为http://www.baidu.com/s?wd=abc,就可以正常上网。所以高度怀疑缓存问题。

    2、ASP.NET网页事件不正常触发。PasswordRecovery控件SendingMail事件,用户先输入UserName,单击“提交”,再输入QuestionAnswer,再单击“提交”,正常情况下最后这次提交就应该触发服务器端SendingMail事件,以前在IE8调试无误,现在突然发现此事件不能触发,经过近一天调试,发现VerifyingUser事件可以触发,而VerifyingAnswer事件不能触发!经检查Request信息,ViewState数据和Post数据竟然相同!超级烂的缓存!删除全部事件委托,运行,再次建立事件委托,正常。

     


    • 已编辑 xx_lzj 2011年10月12日 1:24
    2011年10月12日 1:22

答案

  • 你好,

    第一个问题确实应该是IE的缓存引起的。根据所文档上讲的, IE9支持对永久重定向(301)响应进行缓存,对301重定向的缓存在RFC 2616有描述。如果这个重定向被缓存了,那客户端就不再尝试和服务端建立联系,直接在客户端就跳转了。你那边就是一直往认证网页跳,如果要解决这个问题,只能设置返回的重定向状态代码为302或307,或者在响应头中指定不缓存。

    Caching Improvements in Internet Explorer 9

    http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx

    第二个问题你是否可以提供一个页面来重现这个问题,由于这个问题和ASP.NET控件有关系,或许你可以在ASP.NET论坛得到更有效的帮助。

    谢谢!


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    • 已标记为答案 xx_lzj 2011年10月17日 0:52
    2011年10月13日 2:07
    版主

全部回复

  • 你好,

    第一个问题确实应该是IE的缓存引起的。根据所文档上讲的, IE9支持对永久重定向(301)响应进行缓存,对301重定向的缓存在RFC 2616有描述。如果这个重定向被缓存了,那客户端就不再尝试和服务端建立联系,直接在客户端就跳转了。你那边就是一直往认证网页跳,如果要解决这个问题,只能设置返回的重定向状态代码为302或307,或者在响应头中指定不缓存。

    Caching Improvements in Internet Explorer 9

    http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx

    第二个问题你是否可以提供一个页面来重现这个问题,由于这个问题和ASP.NET控件有关系,或许你可以在ASP.NET论坛得到更有效的帮助。

    谢谢!


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    • 已标记为答案 xx_lzj 2011年10月17日 0:52
    2011年10月13日 2:07
    版主
  • 你好

        IE 与其他浏览器相比,的确落后了很多。IE 7 以前版本,不用说了,崩溃是经常的事。之后的版本也还是有点问题,呵呵。


    1+1=The World >>> BLOG=http://blog.csdn.net/liuning800203 >>> Email=liuning800203@hotmail.com
    2011年10月16日 16:38
  • 感谢Leo Tang!

    感谢您帮我找到第一个问题的原因。但不过看来这个问题是无法解决的:我们决定不了服务器的响应类型,另外IE9也没有关于解析永久重定向类型的设置。

    第二个问题比较复杂,环节比较多,但毫无疑问与IE9有关。

    2011年10月17日 1:36
  • 经测试,使用开发人员工具-缓存菜单,勾选”始终从服务器中刷新“可以解决。

    2011年10月17日 9:09