Welcome 微信登录

首页 / 网页编程 / ASP.NET / 我的CMS开发记-5 实现静态化页

我的CMS开发记-5 实现静态化页2011-12-18 博客园 烙馅饼喽为了实现静态化页,我在博客园里可是搜了半天。最后找到两个方案:

http://www.cnblogs.com/hsqzzzl/archive/2005/10/23/260122.html文中的,生成静态页后,使用url重写重定向到静态页上。

http://www.cnblogs.com/nurong/archive/2005/10/15/255439.html 使用404方式动态地生成静态页。

那么这两种那个好呢?嘿嘿,本人的办法是,两种都实现,然后自己选择。是啊,不试一试怎么知道哪种效率更好。

实现方面没啥多说的,基本和两位的办法差不多。但是在生成静态页时,我用的既不是filter的办法,也不是webclient的那种采集式的方法。因为我的系统比较特殊, 是DNN式的单页面系统。所以,最佳的实现方法,是孟子E章的重写Render方法的办法。原来很简单,先将Render执行的结果保存在字符串里,然后保存到文件里,最后在 Response.write。

protected override void Render(HtmlTextWriter writer)
{
//***收到此标志表示需要将此页面静态化
if (HttpContext.Current.Items.Contains("createstaticfile"))
{
string file = (string)HttpContext.Current.Items["createstaticfile"];
using (System.IO.StringWriter html = new System.IO.StringWriter())
{
using (System.Web.UI.HtmlTextWriter tw = new HtmlTextWriter(html))
{
base.Render(tw);
Response.Write(html);
StaticFile.CreateHtml(file, html.ToString(), Response.ContentEncoding);
}
}
}
else
{
base.Render( writer );
}
}