none
继承PAGE的问题 RRS feed

  • 问题

  • 大家好.    现在我来说一下模拟环境.  大家可以在本机上调试.

    页面有以下几页:Login.aspx , Default.aspx, A.aspx, B.aspx , BasePage类

    Login.aspx  继承System.UI.Page 点击按钮代码: Session["UserInfo"] = true;
    Response.Redict("Default.aspx")

    Default.aspx 继承BasePage 页面上只有两个超链接,分别链接到A页面和B页面.

    都是打开新窗口的方式链接.


    BasePage类
    publice Class BasePage:System.Web.UI.Page
    {
      protected override void OnPreInit(EventArgs e)
            {
    base.OnPreInit(e);
                ////没有登陆
                if (Session["UserInfo"] == null)
                {
            Reponse.Redirect("Login.aspx");
    }
    }
    }


    A页面.:  一个按钮, 当点击这个按钮, 需要查询数据库5分钟左右.

    B页面:  一个空页面, 在单击了A页面的按钮以后, 再从Default.aspx上点击B页面.

    这时B页面大约要阻塞2分钟左右,


    学习者
    2010年1月13日 9:29

答案

  • 阻塞是正常的,一个页面没有执行完,点击任何一个页面都会等待的。HTTP.SYS将所有的请求放到一个队列里面,一个请求没有完成之后,后续的请求一直在等待。按理说,B页面的请求应当是5分钟,但是,HTTP.SYS这个模块会监视所有的请求队列,每120秒清除一次没有连接的请求。这就是你看到的2分钟才显示出来页面B的内容
    http://msdn.microsoft.com/zh-cn/library/aa719566%28VS.71%29.aspx
    【孟子E章】
    2010年1月13日 14:35
    版主

全部回复

  • 阻塞是正常的,一个页面没有执行完,点击任何一个页面都会等待的。HTTP.SYS将所有的请求放到一个队列里面,一个请求没有完成之后,后续的请求一直在等待。按理说,B页面的请求应当是5分钟,但是,HTTP.SYS这个模块会监视所有的请求队列,每120秒清除一次没有连接的请求。这就是你看到的2分钟才显示出来页面B的内容
    http://msdn.microsoft.com/zh-cn/library/aa719566%28VS.71%29.aspx
    【孟子E章】
    2010年1月13日 14:35
    版主
  • 另外,出现这个现象应当与Session无关。即使没有Session["UserInfo"],也会是同样的结果
    【孟子E章】
    2010年1月13日 14:36
    版主