asp.net中的页面刷新机制
今天在测试我的一个文档上传管理系统意外的发现asp.net的刷新机制,原来每次你刷新一次页面首先它不是与postback机理相同,他是与你在刷新前一个页面的操作是一致的,比如,你是第一次载入页面的话,如果刷新页面那么在!ispostback中的程序在刷新会在执行一遍.
如果你是在第二次或更多刷新页面,那么刷新页面后执行的就不会是!Ispostback,而是ispostback中的程序,并且会执行在上次页面刷新你进行的操作。下面以一段 代码来演示这段过程吧!
如果你立马刷新,仍然不变asdf
如果你点击那个按钮后 那么页面显示的sdfsaa
那么你再次刷新后 那么页面显示的就是sdfsaaa
再刷新,那么就是页面显示 sdfsaaaa
如果你是在第二次或更多刷新页面,那么刷新页面后执行的就不会是!Ispostback,而是ispostback中的程序,并且会执行在上次页面刷新你进行的操作。下面以一段 代码来演示这段过程吧!
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Response.Write("asdf\n");
Session["b"] = "a";
}
else
{
Response.Write("sdfsa");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["b"] += "a";
Response.Write(Session["b"].ToString());
}
如果你第一次载入页面时,其页面显示的是asdf{
if (!IsPostBack)
{
Response.Write("asdf\n");
Session["b"] = "a";
}
else
{
Response.Write("sdfsa");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["b"] += "a";
Response.Write(Session["b"].ToString());
}
如果你立马刷新,仍然不变asdf
如果你点击那个按钮后 那么页面显示的sdfsaa
那么你再次刷新后 那么页面显示的就是sdfsaaa
再刷新,那么就是页面显示 sdfsaaaa