日期:2014-05-18  浏览次数:20318 次

缓存的页面 PageLoad里代码会执行吗?
我整页缓存default.aspx,里面的   PageLoad里的方法还执行吗,里面的方法转向,还转吗?
  protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                Response.Redirect( "Index.aspx ");

        }

------解决方案--------------------
在缓存没有过期的时候任何后台代码都不会执行
------解决方案--------------------
负责任的告诉你~ 不会走~
------解决方案--------------------
缓存页面的page_load是不会执行的,只有postback的脚本可以执行,例如按钮的clickk事件等等,这是因为这部分代码会生成do_post函数js脚本的缘故。

default需要转向,而又希望可以缓存,建议使用页面参数试试。因为缓存的建立是区分页面参数的,例如 default.aspx?parm=1 和default.aspx?parm=2 会建立不同的缓存,也许可以利用这个实现缓存加页面跳转。
------解决方案--------------------
morixing() 说的对,如果缓存存在的话,Page_Load中的事件不会执行。

一个请求到IIS,IIS(根据后缀名判断)将该请求传递给CLR,执行事件的顺序是:
BeginRequest
AuthenticateRequest
AuthorizeRequest
ResolveRequestCache //是否可以使用先前缓存的页面来解决该请示
AcquireRequestState
PreRequestHandlerExecute //在调用Page的派生类的ProcessRequest方法前发生,而ProcessRequest使页面经过各个阶段的处理,如:Init, Load, ...。所以在调用这个方法之前,如果页面中有缓存,会使用缓存解决请求。没有缓存时才会执行这些事件处理程序

PostRequestHandlerExecute
...