QBlog

This blog will record the growth associated with the Autumn Garden distance and the history of the development progress and other relevant circumstances
Bulletin
Welcome to Autumn Garden official blog, please: download and use CYQBlog system, and make your comments and Recommendations.
Article Archive
Article
秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六)
2011/2/24 19:07:50

文章回顾:

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整个生命周期处理流程,

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

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

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

下一篇:秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七) --介绍界面html加载原理

 

Autumn Garden is QBlog the official site, created by the passing autumn, based on the framework data layers developed cyqdata support multi-user, multi-language, multi-database (access, mssql, oracle), directory level url and other powerful blog system
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"
Tiffinciply[178.95.7.*] : 2011/9/8 13:56:48
非常感谢。
游客[注册][116.230.247.*] : 2011/3/29 8:58:09
???????????????
icedlemon : 2011/2/25 3:09:16
等更新啊,博主。
reply呵呵,我周末看有没时间写下。
icedlemon : 2011/2/25 3:07:47
下午啥也没干,就看这个了,哈哈,以前围观过,并且藏有CYQ.Data一版,辛苦了。
reply呵呵,够给力~
游客[注册][116.230.201.*] : 2011/2/24 23:05:21
好东西 多谢分享 期待开源
reply正在一步一步向开源的方向前进着~~~敬请期待!
:Register
  
Copyright © 2010-2020 power by CYQ.Blog - Autumn v2.0 All Rights Reserved