面试重点:asp.net运行原理和生命周期
- 1、ispostback回调机制
isPostBack=false !IsPostBack==ture 当前页面是第一次加载
IsPostBack 由于用户交互(page.submit())提交页面而产生的加载,二次加载
html客户端代码将ispostback值存放在viewstate隐藏字段中
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEwMTgxNzc0MDlkZEbUEZkdq9J98wPjrnpAuSnBylAW" />
- 2、get和 post 区别
(1)get表单提交时Url地址栏传递参数,post在地址栏中隐藏参数
Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面
并且两者使用“?”连接,而各个变量之间使用“&”连接;
Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
(2)get传递数据量有限,而post没有限制
(3)Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
(4)Get是Form的默认方法
(5)安全性考虑:Get是不安全,数据被放在请求的URL中
- 3、asp.net生命周期
()
1.页请求:页请求发生在页面生命周期开始之前,用户请求页时,ASP.NET将确定是否需要分析和编译页
2.开始:在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性
3.页初始化:在页初始化期间,可以使用页中的控件,并设置每个控件的UniqueID属性。
4.加载:在加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
5.验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValidate属性。
6.回发事件处理:如果请求是回发请求,则将调用所有事件处理程序
7.呈现:在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用Render方法,它会提供一个文本编写器,用于将控件的输出写入页的Response属性和OutputStream中
8.卸载:完全呈现页并将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性并执行清理。
2.开始:在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性
3.页初始化:在页初始化期间,可以使用页中的控件,并设置每个控件的UniqueID属性。
4.加载:在加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
5.验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValidate属性。
6.回发事件处理:如果请求是回发请求,则将调用所有事件处理程序
7.呈现:在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用Render方法,它会提供一个文本编写器,用于将控件的输出写入页的Response属性和OutputStream中
8.卸载:完全呈现页并将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性并执行清理。
通过 Wiz 发布