首页 理论教育 ASP.NET应用程序开发技术:页面回发检测优化页

ASP.NET应用程序开发技术:页面回发检测优化页

时间:2023-10-21 理论教育 版权反馈
【摘要】:问题出在尽管没有响应“Second”按钮的事件,但是,根据页面的生命周期,每次回发后激发并响应Page_Load事件。很多情况下,Web页面回发访问时不应该或者没必要进行页面初始化操作,须在Page_Load事件函数体内先判断页面是否是回发访问,如果是回发访问,就不再执行Page_Load事件函数体内页面初始化相关语句。图1-23 进行了回发检测优化的页面程序代码

ASP.NET应用程序开发技术:页面回发检测优化页

1.问题引入

请观察图1-22所示demo1-08.aspx的程序清单。设计者本意是第一次启动时页面显示“您是第一次访问该网页”,单击“First”按钮后页面显示“您点击了第一个按钮”,单击“Second”按钮,页面状态不变(因为没有响应“Second”按钮的事件)。读者实际运行一下该页面,接着单击“First”按钮,最后单击“Second”按钮,最后结果又是怎样?结果有点出乎意料,页面显示的内容为“您是第一次访问该网页”。

问题出在尽管没有响应“Second”按钮的事件,但是,根据页面的生命周期,每次回发后激发并响应Page_Load事件。解决的办法是在Page_Load事件函数体内先判断页面是否是回发访问,如果是回发访问,就不再执行Page_Load事件函数体内的程序代码。

很多情况下,Web页面回发访问时不应该或者没必要进行页面初始化操作,须在Page_Load事件函数体内先判断页面是否是回发访问,如果是回发访问,就不再执行Page_Load事件函数体内页面初始化相关语句。

2.使用页面回发检测优化页面初始化

通过读取页面的IsPostBack 属性就可以判断页面是否是回发访问:

Page.IsPostBack为false 页面为首次访问

Page.IsPostBack为true 页面为回发访问(www.xing528.com)

978-7-111-43260-9-Chapter01-34.jpg

图1-22 没有回发检测优化的页面

据此,如果仅在首次访问页面时才进行页面初始化工作,对应的Page_Load事件函数模板如下:

978-7-111-43260-9-Chapter01-35.jpg

现在,解决图1-22所示的程序清单的问题并不困难,只要如图1-23所示修改页面的Page_Load事件函数就可以了。

978-7-111-43260-9-Chapter01-36.jpg

图1-23 进行了回发检测优化的页面程序代码

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈