缓存的页面 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
...