程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 我的CMS開發記-5 實現靜態化頁

我的CMS開發記-5 實現靜態化頁

編輯:關於ASP.NET

為了實現靜態化頁,我在博客園裡可是搜了半天。最後找到兩個方案:

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 );
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved