秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六)

简介:

文章回顾:

复制代码

1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用

2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程

3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL

4:  秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序

5:  秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期

复制代码

 

ps:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427

 

从上节中,我们为页面基类自定义了如下的几个生命周期:

本节,将为你详细解析秋色园QBlog在每个生命周期所处理的事情。

 

一:参数初始化:private void Page_Init(HttpContext context)

 

秋色园QBlog在第一个生命周期里,主要完成以下参数的初始化:

复制代码

1:URL参数接收:即从UrlRewirte分好类后传过来的参数

2:公共类:UserLogin:从此类可获取到当前访问用户信息、被访问用户信息

3:XmlHelper:操作html文档类,能轻松加载html,并以xml方式轻松操作填充内容

4:MutilLanguage:多语言处理类,能统一翻译html文档

复制代码

 

为此,基类需要定义一些常用属性,方便各个页面ashx处理程序调用。

因此,定义了如下属性,并从参数里接收:

 

这里有2点注意说明:

1:引入了CYQ.Data:用上了CYQ.Data.Xml下的两个类XmlHelper、MutilLanguage

2:属性中没有定义UserLogin及几个URL参数:本系列主介绍原理,太细节的代码就略过了

 

类库说明:

XmlHelper:主要用于加载html,默认构造函数的true,表示从html加载

MutileLanguage:基于XmlHelper的扩展,允许从xml/html中加载语言文件

到此,第一步参数初始化就完成了。

 

二:页面加载:private void Page_PreLoad()

 

经参数初始化之后,将预加载html,并进行初步处理,秋色园QBlog完整流程如下:

复制代码

1:如果开启缓存:尝试读取三级缓存,页面缓存

2:不存在缓存:进入加载页面流程

3:对加载后的页面,处理CSS/IMG的路径

4:对加载后的页面,进行多语言翻译

5:根据Request.Form提交的参数判断,是不是Post提交数据,如果是,将引入新的Post处理流程。

复制代码

 

以下为秋色园QBlog流程代码,仅供参考:

 

说明:

复制代码

本阶段涉及到以下多个重点问题:

1:如何加载页面?

2:如何加载语言文件?

3:如何处理CSS/IMG路径?

4:如何统一翻译?

5:引发新的OnPost流程?

这些细节问题,将在下节进行更详细的解析,本节顺着把下面的流程给解析完。

复制代码

 

三:页面填充区:ashx处理程序负责的3个流程

 

在经过参数初始化,页面加载两个流程之后,各ashx处理程序的任务将变的简单

1:protected abstract void Page_Load()

正常访问:重写此方法,对页面进行内容填充。

 

2:protected virtual void Page_OnCache()

缓存访问:重写此方法,完成个别的处理,如:用户名

 

3:protected virtual void OnPost()

提交访问:重写此方法,对提交内容处理,并入库

 

四:输出前的处理:private void Page_PreEnd()

 

当参数初始化->加载页面->填充页面等步骤完成之后,

在将页面的html输出给客户端之前,

还需要处理点事情,而这个过程,将是处理这些事情的好地方。

 

秋色园QBlog 在这里,主要都处理了哪些流程呢?如下:

1:计算用户和文章的访问统计

2:处理页面的标题

3:缓存页面


五:页面html输出到客户端:private void Page_End()

 

这里的处理将变的相当的简单:

输出:XmlDocument.OuterXml到客户端

销毁:调用各个全局变量的Dispose方法,注销各个对象。

 

总结

本节相对详细的解析了秋色园QBlog整个生命周期处理流程,

并介绍了每个周期要处理的事情。

但具体还留下很多细节,等待详细的解析及示例。

而这些,下一节为你的解析:如何加载页面?及如何实现页面多语言翻译?

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2011/02/25/1964745.html

相关文章
|
21天前
|
机器学习/深度学习 前端开发 Windows
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
31 0
|
2月前
|
XML Java 数据格式
Spring 应用上下文探秘:生命周期解析与最佳实践
Spring 应用上下文探秘:生命周期解析与最佳实践
73 0
|
5月前
|
数据采集 Python
Python和BeautifulSoup库的魔力:解析TikTok视频页面
短视频平台如TikTok已成为信息传播和电商推广的重要渠道。用户通过短视频分享生活、创作内容,吸引了数以亿计的观众,为企业和创作者提供了广阔的市场和宣传机会。然而,要深入了解TikTok上的视频内容以及用户互动情况,需要借助爬虫技术。本文将介绍如何使用Python和BeautifulSoup库解析TikTok视频页面,并通过统计分析视频信息,帮助您更好地利用这一重要渠道。
Python和BeautifulSoup库的魔力:解析TikTok视频页面
|
25天前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
197 2
|
1月前
|
数据采集 前端开发 JavaScript
Java网络爬虫实践:解析微信公众号页面的技巧
Java网络爬虫实践:解析微信公众号页面的技巧
|
6月前
|
XML Java 索引
Spring框架(三) Ben生命周期源码解析
到此为止 , Spring框架的生命周期完成 , 对于比较具体的细节还需要仔细的琢磨 , 谢谢大家的阅读 , 感觉文章不错的话来个一键三连吧
98 2
|
7月前
|
小程序 API 开发者
【小程序全面解析】生命周期、常用组件,代码示例和使用场景
该文章全面介绍了小程序的生命周期、常用基础组件以及使用场景,并提供了相应的代码示例。读者可以了解小程序的生命周期函数及其执行时机,以及学习如何使用常用基础组件构建小程序页面。此外,文章还列举了各种使用场景,帮助读者更好地理解如何应用小程序开发。如果您是小程序开发的初学者或需要了解小程序的基础知识,该文章将为您提供全面的帮助和指导。
134 0
【小程序全面解析】生命周期、常用组件,代码示例和使用场景
|
3月前
|
前端开发
React旧有生命周期和新生命周期的解析
React旧有生命周期和新生命周期的解析
29 0
React旧有生命周期和新生命周期的解析
|
3月前
|
缓存 JavaScript 前端开发
从入门到项目实战 - Vue生命周期解析(vue2 与 vue3 比较)
从入门到项目实战 - Vue生命周期解析(vue2 与 vue3 比较)
135 0
|
4月前
|
JavaScript 前端开发 C++
Javaweb之Vue生命周期的详细解析
2.4 生命周期 vue的生命周期:指的是vue对象从创建到销毁的过程。vue的生命周期包含8个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法,这些生命周期方法也被称为钩子方法。其完整的生命周期如下图所示:
43 0

推荐镜像

更多