自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP開(kāi)發(fā)之生成靜態(tài)HTML文件的方法比較

開(kāi)發(fā) 后端
本文介紹的是在ASP開(kāi)發(fā)網(wǎng)站中,生成態(tài)HTML文件的方法比較。希望對(duì)大家有幫助,一起來(lái)看吧!

ASP中,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換生成靜態(tài)Html文件有許多好處,比如生成html網(wǎng)頁(yè)有利于被搜索引擎收錄(特別是對(duì)接受動(dòng)態(tài)參數(shù)的頁(yè)面)。前臺(tái)訪問(wèn)時(shí),脫離了數(shù)據(jù)訪問(wèn),減輕對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的壓力,加快網(wǎng)頁(yè)打開(kāi)速度。

當(dāng)然,凡事有利必有弊,生成HTML頁(yè)面無(wú)形中也耗費(fèi)大量的磁盤空間以存放這些靜態(tài)文件,在編輯頁(yè)面過(guò)程中除讀寫(xiě)數(shù)據(jù)庫(kù)外,也要讀寫(xiě)服務(wù)器磁盤,頁(yè)面樣式的改動(dòng)必須重新生成全部HTML文件,等等。

像很多搜索引擎,都可以提交網(wǎng)站的頁(yè)面地址列表,動(dòng)態(tài)文件的收錄問(wèn)題已經(jīng)不算是個(gè)問(wèn)題了(如google sitemap)。得失就要自己衡量把握了,但無(wú)論如何,我們還是要懂得如何操作的。這里就引用一下別人的文章說(shuō)明幾種常見(jiàn)的生成思路,供大家參考參考。

1、下面這個(gè)例子直接利用FSO把html代碼寫(xiě)入到文件中然后生成.html格式的文件 。

這是最原始的,優(yōu)點(diǎn)是簡(jiǎn)單,缺點(diǎn)是頁(yè)面的修改不方便,我一般用到的地方是利用它生成整站參數(shù)文件。(通常網(wǎng)站如標(biāo)題,名稱等配置保存在數(shù)據(jù)庫(kù),我將它生成config.asp保存這些變量調(diào)用,避免頻繁訪問(wèn)數(shù)據(jù)庫(kù))

以下為引用的內(nèi)容:

 

  1. <%   
  2. filename="test.htm"   
  3. if request("body")<>"" then   
  4. set fso = Server.CreateObject("Scripting.FileSystemObject")   
  5. set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&""))   
  6. htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>"   
  7. htmlwrite.write "<body>輸出Title內(nèi)容: " & request.form("title") & "<br /> 
  8. 輸出Body內(nèi)容:" & request.form("body")& "</body></html>"   
  9. htmlwrite.close   
  10. set fout=nothing   
  11. set fso=nothing   
  12. end if   
  13. %>   
  14. <form name="form" method="post" action="">   
  15. <input name="title" value="Title" size=26>   
  16. <br>   
  17. <textarea name="body">Body</textarea>   
  18. <br>   
  19. <br>   
  20. <input type="submit" name="Submit" value="生成html">   
  21. </form>  

 

2、但是按照上面的方法生成html文件非常不方便,第二種方法就是利用模板技術(shù),將模板中特殊代碼的值替換為從表單或是數(shù)據(jù)庫(kù)字段中接受過(guò)來(lái)的值,完成模板功能,將最終替換過(guò)的所有模板代碼生成HTML文件。這種技術(shù)采用得比較多,大部分的CMS都是使用這類方法。

以下為引用的內(nèi)容:

 

  1. template.htm ' //模板文件   
  2. <html>   
  3. <head>   
  4. <title>$title$ by webjx.com</title>   
  5. </head>   
  6. <body>   
  7. $body$   
  8. </body>   
  9. </html> 
  10. TestTemplate.asp '// 生成Html   
  11. <%   
  12. Dim fso,htmlwrite   
  13. Dim strTitle,strContent,strOut   
  14. '// 創(chuàng)建文件系統(tǒng)對(duì)象   
  15. Set fso=Server.CreateObject("Scripting.FileSystemObject")   
  16. '// 打開(kāi)網(wǎng)頁(yè)模板文件,讀取模板內(nèi)容   
  17. Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))   
  18. strOut=f.ReadAll   
  19. htmlwrite.close   
  20. strTitle="生成的網(wǎng)頁(yè)標(biāo)題"   
  21. strContent="生成的網(wǎng)頁(yè)內(nèi)容"   
  22. '// 用真實(shí)內(nèi)容替換模板中的標(biāo)記   
  23. strOut=Replace(strOut,"$title$",strTitle)   
  24. strOut=Replace(strOut,"$body$",strContent)   
  25. '// 創(chuàng)建要生成的靜態(tài)頁(yè)   
  26. Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)   
  27. '// 寫(xiě)入網(wǎng)頁(yè)內(nèi)容   
  28. htmlwrite.WriteLine strOut   
  29. htmlwrite.close   
  30. Response.Write "生成靜態(tài)頁(yè)成功!"   
  31. '// 釋放文件系統(tǒng)對(duì)象   
  32. set htmlwrite=Nothing   
  33. set fso=Nothing   
  34. %> 

 

3、第三種方法就是用XMLHTTP獲取動(dòng)態(tài)頁(yè)生成的HTML內(nèi)容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。找到一段XMLHTTP生成Html的代碼參考一下。

以下為引用的內(nèi)容:

常用函數(shù):

1、輸入url目標(biāo)網(wǎng)頁(yè)地址,返回值getHTTPPage是目標(biāo)網(wǎng)頁(yè)的html代碼

  1. <%   
  2. function getHTTPPage(url)   
  3. dim Http   
  4. set Http=server.createobject("MSXML2.XMLHTTP")   
  5. Http.open "GET",url,false   
  6. Http.send()   
  7. if Http.readystate<>4 then   
  8. exit function   
  9. end if   
  10. getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")   
  11. set http=nothing   
  12. if err.number<>0 then err.Clear   
  13. end function % > 

2、轉(zhuǎn)換亂瑪,直接用xmlhttp調(diào)用有中文字符的網(wǎng)頁(yè)得到的將是亂瑪,可以通過(guò)adodb.stream組件進(jìn)行轉(zhuǎn)換

  1. <%  
  2. nction BytesToBstr(body,Cset)   
  3. dim objstream   
  4. set objstream = Server.CreateObject("adodb.stream")   
  5. objstream.Type = 1   
  6. objstream.Mode =3   
  7. objstream.Open   
  8. objstream.Write body   
  9. objstream.Position = 0   
  10. objstream.Type = 2   
  11. objstream.Charset = Cset   
  12. BytesToBstr = objstream.ReadText   
  13. objstream.Close   
  14. set objstream = nothing   
  15. End Function   
  16. txtURL=server.MapPath("../index.asp")   
  17. sText = getHTTPPage(txtURL)   
  18. Set FileObject=Server.CreateObject("Scripting.FileSystemObject")   
  19. filename="../index.htm"   
  20. Set openFile=FileObject.OpenTextfile(server.mapPath(filename),2,true) 'true為不存在自行建立   
  21. openFile.writeline(sText)   
  22. Set OpenFile=nothing   
  23. %>   
  24. <script>   
  25. alert("靜態(tài)網(wǎng)頁(yè)生成完畢");   
  26. history.back();   
  27. </script>  

 

小結(jié),這三種方式是比較常用的生成HTML文件方法,我個(gè)比較喜歡使用第三種方式,因?yàn)轫?yè)面改動(dòng)時(shí)非常方便,就算動(dòng)態(tài)頁(yè)改動(dòng)多大都好,只要重新用XMLHTTP讀取生成一次即可。

希望通過(guò)本文的介紹,能給你帶來(lái)幫助。

【編輯推薦】

  1. 利用ASP和SQL Server構(gòu)建網(wǎng)頁(yè)防火墻
  2. ASP新手之常用錯(cuò)誤處理解析
  3. 分享ASP網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程中的小技巧
  4. 經(jīng)驗(yàn)分享之ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)
  5. ASP新手之常用ASP內(nèi)置函數(shù)大總結(jié)
責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-08-28 12:41:49

靜態(tài)方法與非靜態(tài)方法

2009-08-24 18:00:52

ASP.NET模板生成

2009-07-29 15:58:54

靜態(tài)文件處理ASP.NET

2009-08-07 14:05:21

ASP.NET控件

2009-07-30 12:42:19

html控件和web控

2009-08-14 13:37:25

ASP.NET靜態(tài)頁(yè)面

2009-07-24 10:53:51

ASP.NET實(shí)現(xiàn)靜態(tài)

2014-10-22 10:46:03

ViewportHTML

2011-09-06 14:08:22

IIS

2011-06-15 17:09:43

PHP頁(yè)面靜態(tài)化

2009-09-04 13:11:25

ASP.NET生成XM

2014-02-19 09:59:52

iOS開(kāi)發(fā)Html解析

2010-07-22 11:01:41

SQL Server

2012-09-29 13:20:30

ASP.NETWeb框架

2009-08-05 17:11:51

ASP.NET控件開(kāi)發(fā)ASP.NET服務(wù)器控

2009-06-12 18:30:12

Groovy 靜態(tài)ma

2009-12-01 14:33:06

PHP生成html文件

2012-02-23 10:32:19

HTML 5

2009-07-21 13:43:53

ASP和JSP比較

2011-05-19 08:38:48

ASP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)