ASP.NET知识点
1. IsPostBack
IsPostBack是Page类的一个属性,一般放在Page_Load事件中。当页面第一次打开时其值为False,若当页面为一个提交后的页面其值为True。
2. 编译原理
Ø 动态编译
当用户首次请求资源时,将动态编译ASP.net网页和代码文件。第一次编译页和代码文件后,会缓存编译后的资源,这将大大提高随后对同一页提出请求的效率。动态编译会平均延长用户的初始响应时间。
对动态编译文件的任何更改都会自动使文件的缓存编译程序集无效,并触发虽有受影响的资源的重新编译。
动态编译是按需编译的,ASP.net只会编译和当前Request相关的aspx和code。
动态编译是基于某个目录的,也就是说ASP.net会把被请求的page所在的目录的所有需要编译的文件进行编译,并生成一个程序集。
Ø 预编译
由于页和代码文件在第一次被请求时无需编译,因此可以缩短对用户的响应时间。这对于更新频繁的大型网站尤为有用。
可以创建站点的已编译版本,并将该版本部署到成品服务器,而无需使用源代码。
在执行就地预编译时,将编译所有ASP.net文件类型,HTML文件,图形和其他非ASP.NET静态文件将保持原状,预编译过程的逻辑与ASP.NET进行动态编译时所用的逻辑相同,说明了文件之间的依赖关系。
3. Code-Behind
ASP.NET 2.0 Framework中,代码隐藏页面的两个部分是部分类与继承关系的联合,而ASP.net 1.x中,代码隐藏页面的两个部分是一种继承关系。好处:无需在.cs文件中声明控件。
4. AutoEventWireup
指示页的事件是否自动绑定。如果启动了事件自动绑定,则为true,否则为false。默认是true。
Asp.net页会引发诸如Init, Load, PreRender等生命周期事件。默认情况下,可以使用Page_事件名称的命名约定将页事件绑定到方法。编译时,ASP.NET将查找基于此命名约定的方法,并自动执行事件与方法之间的绑定。可以对Page类公开的任何事件使用Page_事件名称的约定。
AutoEventWireup属性的缺点是它要求页事件处理程序具有特定的,可预测的名称。这就限制了在命名事件处理程序方面的灵活性。
页事件的显式绑定:
(AutoEventWireup属性设置为false时,将不会按命名约定去调用Page_Load方法,这时需要我们显式绑定)
public partial class _Default : System.Web.UI.Page
{
public _Default()
{
this.Load += new EventHandler(Page_Load);
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
5. ASP.NET页面生命周期
阶段 |
说明 |
事件 |
页请求 |
页请求发生在页生命周期开始之前。用户请求页时,ASP.net将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。 |
|
启动 |
在启动阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性。页还设置UICulture属性。 |
|
PreInit |
||
初始化 |
也初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性。如果需要,还会向页应用于母版页和主页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。 |
Init |
InitComplete |
||
加载 |
加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。 |
PreLoad |
Load |
||
回发事件处理 |
如果请求是回发请求,则将调用控件事件处理程序。之后,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性。 |
控件事件 |
LoadComplete |
||
PreRender |
||
PreRenderComplete |
||
SaveStateComplete |
||
呈现 |
在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会正对每个控件调用Render方法。 |
Render方法 |
卸载 |
完全呈现页并已将页发送到客户端,准备丢弃该页后,将引发Unload事件。此时,将卸载页属性(如Response和Request)并执行清理。 |
Unload |
各个控件的Init事件在页的Init事件之前发生。各个控件的Load事件在页的Load事件之后发生。
6. ASP.net的工作原理
Ø 客户请求Web页
Ø IIS接收请求寻找指令文件(.aspx)
Ø ASP.Net代码被发送给CLR进行编译
Ø 以HTML流的形式返回给浏览器和指令
Ø 浏览器处理HTML并显示页面
7. ASP.net应用程序生命周期
Ø 用户从Web服务器请求应用程序资源
IIS对所请求文件的文件扩展名进行检查,确定由哪个ISAPI扩展处理该请求,然后将该请求传递给合适的ISAPI扩展。
如果文件扩展名尚未映射到ASP.net,则ASP.NET将不会接受该请求。
Ø ASP.net接收对应用程序的第一个请求
ApplicationManager类创建一个应用程序域。在应用程序域中,创建HostingEnvironment类的一个实例,该实例提供对有关应用程序的信息的访问。
如果需要,ASP.net还可对应用程序中的顶级项进行编译,其中包括App_Code文件夹中的应用程序代码。
Ø 为每个请求创建ASP.net核心对象
初始化HttpContext,HttpRequest和HttpResponse
创建HttpApplication类的实例启动应用程序
创建所有已配置的模块
Ø 将HttpApplication对象分配给请求
Ø 由HttpApplication管线处理请求
对请求进行验证,检查浏览器发送的信息,根据所请求资源的文件扩展名选择实现IHttpHandler的类。
转载于:https://www.cnblogs.com/webdesign/archive/2011/02/15/tt175.html
ASP.NET知识点相关推荐
- ASP.NET知识点总结
ASP.NET知识点总结 1.ASP.Net的特色与优势 2.几对概念 3.解决方案构成 4.系统对象与状态管理 5.控件的分类 6.站点地图 7.系统导航 8.母版页 9.系统框架 10.数据绑定 ...
- ASP.NET知识点:母版页的路径问题
一.ASP.NET中常见的路径有六种写法: <!--绝对路径:全地址路径,这里的MyWeb是已经建好的指向网站Web的虚拟目录--> <asp:Image ID="Imag ...
- 第四周课程总结试验报告(二)
实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性 ...
- asp向不同的用户发送信息_ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(ASP.NET Core 之 Identity 入门(一),ASP.NET Core 之 Ident ...
- [ASP.NET MVC 小牛之路]02 - C#知识点提要
特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点. 本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语 ...
- MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)
前言 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际的开发中,随 ...
- ASP.NET MVC必知必会知识点总结(二)
一.实现Controller的依赖注入: 1.自定义继承DefaultControllerFactory 类的控制器工厂类并重写GetControllerInstance方法:(如:InjectCon ...
- asp.net 3.5 知识点
16.1 内置对于ASP.NET AJAX的支持 ,js感知, 微软Silverlight是一个跨浏览器.跨平台的.NET实现技术,适用于在下一代Web应用构建支持各种媒体并进而支持更为丰富的用户交 ...
最新文章
- busybox 安装mysql_安装busybox
- 【Android AAR】1 分钟不用改任何代码在 Eclipse 中使用 AAR
- 标题:浅析图卷积神经网络
- Redhat7.3安装配置Telnet详细教程
- rel=nofollow
- Vector Packet Processor(VPP) - 层二层三转发图谱
- R(Kmeans绘制地形图)
- python根据url下载视频_Python爬取某视频并下载
- Cisco配置DHCP中继代理
- router-link使用详解
- iphone图片编辑画笔_iPhone手机最好的图片编辑软件有哪些?
- 目标检测2——借Detectron2源码理解Anchors与RPN
- 模糊查询like 如何查找 包含% 或者_的行
- 强大的MySQL 官方压测神器,简单、易用
- java中List遍历删除元素,Android进阶之光
- IIS服务器网站自动创建并部署
- anaconda安装jieba
- Ubuntu SDK环境配置
- 视频教程-QT/C++从新手到老手系列之QT中级篇-C/C++
- 使用Kubeadm安装的K8s集群获取kube-scheduler和kube-controller-manager组件状态异常问题
热门文章
- android 手机铃声设置铃声设置,Android 修改系统来电铃声
- android wear ios表盘,秒杀 Apple Watch,Android Wear 又有 17 款新表盘可以玩啦!
- android标题栏上增加按钮,Android:向自定义标题栏添加按钮
- ubuntu 安装 guetzli
- 鸿蒙应用开发培训笔记02:应用开发入门
- 安卓案例:利用相对布局实现注册页面
- JS案例:使用对象、对象数组、正则表达式
- 【hiho挑战赛24 ABC】贪心和期望dp惨烈的后缀自动机
- java绘画imo,搞死帮忙看下这个:需要为class interface或enum imort java.ut
- 【英语学习】【医学】有机化学 - 烷的命名