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知识点相关推荐

  1. ASP.NET知识点总结

    ASP.NET知识点总结 1.ASP.Net的特色与优势 2.几对概念 3.解决方案构成 4.系统对象与状态管理 5.控件的分类 6.站点地图 7.系统导航 8.母版页 9.系统框架 10.数据绑定 ...

  2. ASP.NET知识点:母版页的路径问题

    一.ASP.NET中常见的路径有六种写法: <!--绝对路径:全地址路径,这里的MyWeb是已经建好的指向网站Web的虚拟目录--> <asp:Image ID="Imag ...

  3. 第四周课程总结试验报告(二)

    实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性 ...

  4. asp向不同的用户发送信息_ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  5. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(ASP.NET Core 之 Identity 入门(一),ASP.NET Core 之 Ident ...

  6. [ASP.NET MVC 小牛之路]02 - C#知识点提要

    特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点. 本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语 ...

  7. MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)

    前言 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际的开发中,随 ...

  8. ASP.NET MVC必知必会知识点总结(二)

    一.实现Controller的依赖注入: 1.自定义继承DefaultControllerFactory 类的控制器工厂类并重写GetControllerInstance方法:(如:InjectCon ...

  9. asp.net 3.5 知识点

    16.1 内置对于ASP.NET AJAX的支持 ,js感知,  微软Silverlight是一个跨浏览器.跨平台的.NET实现技术,适用于在下一代Web应用构建支持各种媒体并进而支持更为丰富的用户交 ...

最新文章

  1. busybox 安装mysql_安装busybox
  2. 【Android AAR】1 分钟不用改任何代码在 Eclipse 中使用 AAR
  3. 标题:浅析图卷积神经网络
  4. Redhat7.3安装配置Telnet详细教程
  5. rel=nofollow
  6. Vector Packet Processor(VPP) - 层二层三转发图谱
  7. R(Kmeans绘制地形图)
  8. python根据url下载视频_Python爬取某视频并下载
  9. Cisco配置DHCP中继代理
  10. router-link使用详解
  11. iphone图片编辑画笔_iPhone手机最好的图片编辑软件有哪些?
  12. 目标检测2——借Detectron2源码理解Anchors与RPN
  13. 模糊查询like 如何查找 包含% 或者_的行
  14. 强大的MySQL 官方压测神器,简单、易用
  15. java中List遍历删除元素,Android进阶之光
  16. IIS服务器网站自动创建并部署
  17. anaconda安装jieba
  18. Ubuntu SDK环境配置
  19. 视频教程-QT/C++从新手到老手系列之QT中级篇-C/C++
  20. 使用Kubeadm安装的K8s集群获取kube-scheduler和kube-controller-manager组件状态异常问题

热门文章

  1. android 手机铃声设置铃声设置,Android 修改系统来电铃声
  2. android wear ios表盘,秒杀 Apple Watch,Android Wear 又有 17 款新表盘可以玩啦!
  3. android标题栏上增加按钮,Android:向自定义标题栏添加按钮
  4. ubuntu 安装 guetzli
  5. 鸿蒙应用开发培训笔记02:应用开发入门
  6. 安卓案例:利用相对布局实现注册页面
  7. JS案例:使用对象、对象数组、正则表达式
  8. 【hiho挑战赛24 ABC】贪心和期望dp惨烈的后缀自动机
  9. java绘画imo,搞死帮忙看下这个:需要为class interface或enum imort java.ut
  10. 【英语学习】【医学】有机化学 - 烷的命名