[每日刷题(2015/7/10)]简述ASP.NET的页面运行机制
2015-07-10 10:18
513 查看
如图是ASP.NET的一个页面的基本运行机制,这是一条主要线路。
具体的讲一共有四条类似与上图这样的路线,但各有区别。(上图第3步中说html代码是ASP.NET生成的,强调的是ASP.NET不是一种语言,这里有它的定义)
(1)当第一次访问页面时,页面请求首先依次经过HttpModule、HttpHandler(二者的定义与作用可以看一下这篇文章)的处理,服务器接收到HttpHander的请求后将跳转到需要访问的页面,然后ASP.NET Engine负责找到这个页面后台的类,并实例化为一个临时对象。在此过程中会触发一系列的事件。其中,一部分事件需要经过对象中的方法进行处理,之后服务器会将这个处理后的页面(主要是html)移交给Response对象,然后由Response对象将这个页面发送到客户端。这就是第一条路线。
(2)紧接着,当浏览器与服务器之间的会话已经建立,在服务器中的临时对象已经建立,所以在这个页面上重新提交一些信息并再向服务器发送请求时,是不用在经过初始化页面这一部分工作的。故这第二条路线是依次提交HttpModule、HttpHandler请求,然后直接与临时对象交互并返回的。
(3)第三条路线与第二条路线的不同之处在于,在处理请求时,如果涉及到需要提调用ASP.NET Cache(即ASP.NET缓存),临时对象将直接从ASP.NET缓存提取信息并返回。(也就是没有多余的交互过程了)
(4)第四条路线是在刷新页面的时候,服务器接收到并发现这个请求曾经处理过,并将处理结果存储到由一个默认的HttpModule管道的输出缓存中。那么,此时就可以直接从这个缓存中提取信息并返回,而无需再(交由HttpHandle)重新处理一遍。
总的来说,当每次请求ASP.NET页面时,依据不同的情况,浏览器、服务器、ASP.NET引擎之间将执行这4条路线中的一条路线。
具体的讲一共有四条类似与上图这样的路线,但各有区别。(上图第3步中说html代码是ASP.NET生成的,强调的是ASP.NET不是一种语言,这里有它的定义)
(1)当第一次访问页面时,页面请求首先依次经过HttpModule、HttpHandler(二者的定义与作用可以看一下这篇文章)的处理,服务器接收到HttpHander的请求后将跳转到需要访问的页面,然后ASP.NET Engine负责找到这个页面后台的类,并实例化为一个临时对象。在此过程中会触发一系列的事件。其中,一部分事件需要经过对象中的方法进行处理,之后服务器会将这个处理后的页面(主要是html)移交给Response对象,然后由Response对象将这个页面发送到客户端。这就是第一条路线。
(2)紧接着,当浏览器与服务器之间的会话已经建立,在服务器中的临时对象已经建立,所以在这个页面上重新提交一些信息并再向服务器发送请求时,是不用在经过初始化页面这一部分工作的。故这第二条路线是依次提交HttpModule、HttpHandler请求,然后直接与临时对象交互并返回的。
(3)第三条路线与第二条路线的不同之处在于,在处理请求时,如果涉及到需要提调用ASP.NET Cache(即ASP.NET缓存),临时对象将直接从ASP.NET缓存提取信息并返回。(也就是没有多余的交互过程了)
(4)第四条路线是在刷新页面的时候,服务器接收到并发现这个请求曾经处理过,并将处理结果存储到由一个默认的HttpModule管道的输出缓存中。那么,此时就可以直接从这个缓存中提取信息并返回,而无需再(交由HttpHandle)重新处理一遍。
总的来说,当每次请求ASP.NET页面时,依据不同的情况,浏览器、服务器、ASP.NET引擎之间将执行这4条路线中的一条路线。
相关文章推荐
- ASP.NET之旅--浅谈Asp.net的运行机制(二)
- ASP.NET之旅--浅谈Asp.net运行机制(一)
- ASP.NET操作Word的IIS权限配置
- ASP.NET简单实现注销功能
- 怎样学好ASP.NET技术
- ASP.NET | WebForm 处理机
- ASP.NET简单实现注销功能
- asp.net实现三层架构的例子
- SharePoint 2013 表单认证使用ASP.Net配置工具添加用户
- spring mvc + JasperReports
- Asp.net mvc5 系列笔记
- SharePoint 2013 表单认证使用ASP.Net配置工具添加用户
- Asp.net Vnext Filters
- asp.net web api 2.0 实现跨域资源共享
- VisualStudio2010中创建ASP.Net WebService
- DEV-aspxgridview中的javascprit中获取所有行
- asp.net mvc 返回一个纯html页面
- Spring学习(19)--- Schema-based AOP(基于配置的AOP实现) --- 配置切面aspect
- java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
- Asp.Net MVC5 格式化输出时间日期