日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ASP開發(fā)之生成靜態(tài)HTML文件的方法比較

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

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站與策劃設(shè)計(jì),紅塔網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:紅塔等地區(qū)。紅塔做網(wǎng)站價(jià)格咨詢:13518219792

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

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

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

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

以下為引用的內(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ù)庫字段中接受過來的值,完成模板功能,將最終替換過的所有模板代碼生成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. '// 打開網(wǎng)頁模板文件,讀取模板內(nèi)容 
  17. Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm")) 
  18. strOut=f.ReadAll 
  19. htmlwrite.close 
  20. strTitle="生成的網(wǎng)頁標(biāo)題" 
  21. strContent="生成的網(wǎng)頁內(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)頁 
  26. Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true) 
  27. '// 寫入網(wǎng)頁內(nèi)容 
  28. htmlwrite.WriteLine strOut 
  29. htmlwrite.close 
  30. Response.Write "生成靜態(tài)頁成功!" 
  31. '// 釋放文件系統(tǒng)對(duì)象 
  32. set htmlwrite=Nothing 
  33. set fso=Nothing 
  34. %>

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

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

常用函數(shù):

1、輸入url目標(biāo)網(wǎng)頁地址,返回值getHTTPPage是目標(biāo)網(wǎng)頁的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)頁得到的將是亂瑪,可以通過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)頁生成完畢"); 
  26. history.back(); 
  27. </script> 

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

希望通過本文的介紹,能給你帶來幫助。


分享文章:ASP開發(fā)之生成靜態(tài)HTML文件的方法比較
URL標(biāo)題:http://www.dlmjj.cn/article/cdijieg.html