方案1:
///
/// 傳入url返回網頁的html**
///
/// url
///
public static string geturltohtml(string url)
// get the response stream.
system.io.stream respstream = wresp.getresponsestream();
// dim reader as streamreader = new streamreader(respstream)
system.io.streamreader reader = new system.io.streamreader(respstream, system.text.encoding.getencoding("gb2312"));
return reader.readtoend();
}catch(system.exception ex)
return "";
}你可以用這個函式獲取網頁的客戶端的html**,然後儲存到.html檔案裡就可以了。
方案2:
生成單個的靜態頁面不是難點,難的是各個靜態頁面間的關聯和鏈結如何保持完整;特別是在頁面頻繁更新、修改、或刪除的情況下;
像阿里巴巴的頁面也全部是html的,估計用的是位址對映的功能關於位址對映可參考:
可以看看這個頁面,分析一下他的「競價倒計時」功能
asp.net生成靜態html頁
在asp中實現的生成靜態頁用到的filesystemobject物件!
在.net中涉及此類操作的是system.io
以下是程式** 注:此**非原創!參考別人**
此函式放在conn.cs基類中了在新增新聞的**中引用 注:工程名為hover
if(hover.conn.writefilethis.title.text.tostring),this.content.text.tostring),this.author.text.tostring)))
else
模板頁text.html**
showarticle
biaoti
content
author
biaoti
content
author
提示新增成功後會出以當前時間為檔名的html檔案!上面只是把傳遞過來的幾個引數直接寫入了html檔案中,在實際應用中需要先新增資料庫,然後再寫入html檔案
它的作用在於以客戶端的方式獲取某個頁面的**,然後可以做為其他用途,本例是直接輸出
方案4:學csdn一樣。用xml儲存資料,模版xsl也只有乙個檔案。
使用xml來儲存資料,使用xsl來定義模板並且生稱資料。可以通過xsl來很方便的在客戶端或者服務段顯示資料。如果要生成靜態葉面那更簡單了。去查一下.net的xml類包問題解決。
方案5:
思路 1. 利用如dw-mx這樣的工具生成html格式的模板,在需要新增格式的地方加入特殊標記(如$htmlformat$),動態生成檔案時利用**讀取此模板,然後獲得前台輸入的內容,新增到此模板的標記位置中,生成新檔名後寫入磁碟,寫入後再向資料庫中寫入相關資料。
2. 使用後台**硬編碼html檔案,可以使用htmltextwriter類來寫html檔案。
優點 1. 可以建立非常複雜的頁面,利用包含js檔案的方法,在js檔案內加入document.write()方法可以在所有頁面內加入如頁面頭,廣告等內容。
2. 靜態html檔案利用ms windows2000的index server可以建立全文搜尋引擎,利用asp.net可以以datatable的方式得到搜尋結果。而win2000的index服務無法查詢xml檔案的內容。如果包括了資料庫搜尋與index索引雙重查詢,那麼此搜尋功能將非常強大。
3. 節省伺服器的負荷,請求乙個靜態的html檔案比乙個aspx檔案伺服器資源節省許多。
缺點 因此這裡採用的是第一種思路
示列**
1.定義(template.htm)html模板頁面
//---------------------讀html模板頁面到stringbuilder物件裡----
string format=new string[4];//定義和htmlyem標記數目一致的陣列
stringbuilder htmltext=new stringbuilder();
try
using (streamreader sr = new streamreader("存放模板頁面的路徑和頁面名"))
string line;
while ((line = sr.readline()) != null)
sr.close();
catch
response.write("<script>alert('讀取檔案錯誤')</script>");
//---------------------給標記陣列賦值------------
format[0]="background="bg.jpg"";//背景
format[1]= "#990099";//字型顏色
format[2]="150px";//字型大小
format[3]= "<marquee>生成的模板html頁面</marquee>";//文字說明
//----------替換htm裡的標記為你想加的內容
for(int i=0;i<4;i++)
htmltext.replace("$htmlformat["+i+"]",format[i]);
//----------生成htm檔案------------------――
try
using(streamwriter sw=new streamwriter("存放路徑和頁面名",false,system.text.encoding.getencoding("gb2312")))
sw.writeline(htmltext);
sw.flush();
sw.close();
catch
response.write ("the file could not be wirte:");
小結 用此方法可以方便的生成html檔案。程式使用了是迴圈替換,因此對需替換大量元素的模板速度非常快。
如何生成靜態頁面的五種方案
如何生成靜態頁面的五種方案 該文章 自網路大本營 http www.xrss.cn info 12251.html 方案1 傳入url返回網頁的html url public static string geturltohtml string url get the response stream....
如何生成靜態頁面的五種方案
方案1 傳入url返回網頁的html url public static string geturltohtml string url get the response stream.system.io.stream respstream wresp.getresponsestream dim re...
生成靜態頁面的方法
對於 特別是cms系統中,生成靜態頁面是必不可少的,靜態頁面不用去和資料庫打交道,可以提高頁面的訪問速度。生成靜態頁面的方法一般有 兩種,一種是以模板的形式生成,第二種是直接根據url來生成靜態頁面。以模板形式生成的原理就是字串替換,在.net中已經提供了乙個字串替換的函式 replace 用模板生...