這篇文章主要介紹了ASP生成靜態(tài)HTML文件方法哪個(gè)好,具有一定借鑒價(jià)值,需要的朋友可以參考下。下面就和我一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司是專業(yè)的宣漢網(wǎng)站建設(shè)公司,宣漢接單;提供做網(wǎng)站、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行宣漢網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(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)訪問時(shí),脫離了數(shù)據(jù)訪問,減輕對(duì)數(shù)據(jù)庫(kù)訪問的壓力,加快網(wǎng)頁(yè)打開速度。
當(dāng)然,凡事有利必有弊,生成HTML頁(yè)面無(wú)形中也耗費(fèi)大量的磁盤空間以存放這些靜態(tài)文件,在編輯頁(yè)面過程中除讀寫數(shù)據(jù)庫(kù)外,也要讀寫服務(wù)器磁盤,頁(yè)面樣式的改動(dòng)必須重新生成全部HTML文件,等等。
像很多搜索引擎,都可以提交網(wǎng)站的頁(yè)面地址列表,動(dòng)態(tài)文件的收錄問題已經(jīng)不算是個(gè)問題了(如google sitemap)。得失就要自己衡量把握了,但無(wú)論如何,我們還是要懂得如何操作的。這里就引用一下別人的文章說明幾種常見的生成思路,供大家參考參考。
1、下面這個(gè)例子直接利用FSO把html代碼寫入到文件中然后生成.html格式的文件 。
這是最原始的,優(yōu)點(diǎn)是簡(jiǎn)單,缺點(diǎn)是頁(yè)面的修改不方便,我一般用到的地方是利用它生成整站參數(shù)文件。(通常網(wǎng)站如標(biāo)題,名稱等配置保存在數(shù)據(jù)庫(kù),我將它生成config.asp保存這些變量調(diào)用,避免頻繁訪問數(shù)據(jù)庫(kù))
以下為引用的內(nèi)容:
<% filename="test.htm" if request("body")<>"" then set fso = Server.CreateObject("Scripting.FileSystemObject") set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&"")) htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>" htmlwrite.write "<body>輸出Title內(nèi)容: " & request.form("title") & "<br /> 輸出Body內(nèi)容:" & request.form("body")& "</body></html>" htmlwrite.close set fout=nothing set fso=nothing end if %> <form name="form" method="post" action=""> <input name="title" value="Title" size=26> <br> <textarea name="body">Body</textarea> <br> <br> <input type="submit" name="Submit" value="生成html"> </form>
2、但是按照上面的方法生成html文件非常不方便,第二種方法就是利用模板技術(shù),將模板中特殊代碼的值替換為從表單或是數(shù)據(jù)庫(kù)字段中接受過來(lái)的值,完成模板功能,將最終替換過的所有模板代碼生成HTML文件。這種技術(shù)采用得比較多,大部分的CMS都是使用這類方法。
以下為引用的內(nèi)容:
template.htm ' //模板文件 <html> <head> <title>$title$ by webjx.com</title> </head> <body> $body$ </body> </html> TestTemplate.asp '// 生成Html <% Dim fso,htmlwrite Dim strTitle,strContent,strOut '// 創(chuàng)建文件系統(tǒng)對(duì)象 Set fso=Server.CreateObject("Scripting.FileSystemObject") '// 打開網(wǎng)頁(yè)模板文件,讀取模板內(nèi)容 Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm")) strOut=f.ReadAll htmlwrite.close strTitle="生成的網(wǎng)頁(yè)標(biāo)題" strContent="生成的網(wǎng)頁(yè)內(nèi)容" '// 用真實(shí)內(nèi)容替換模板中的標(biāo)記 strOut=Replace(strOut,"$title$",strTitle) strOut=Replace(strOut,"$body$",strContent) '// 創(chuàng)建要生成的靜態(tài)頁(yè) Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true) '// 寫入網(wǎng)頁(yè)內(nèi)容 htmlwrite.WriteLine strOut htmlwrite.close Response.Write "生成靜態(tài)頁(yè)成功!" '// 釋放文件系統(tǒng)對(duì)象 set htmlwrite=Nothing set fso=Nothing %>
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代碼
<% function getHTTPPage(url) dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.send() if Http.readystate<>4 then exit function end if getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") set http=nothing if err.number<>0 then err.Clear end function % >
2、轉(zhuǎn)換亂瑪,直接用xmlhttp調(diào)用有中文字符的網(wǎng)頁(yè)得到的將是亂瑪,可以通過adodb.stream組件進(jìn)行轉(zhuǎn)換
<% nction BytesToBstr(body,Cset) dim objstream set objstream = Server.CreateObject("adodb.stream") objstream.Type = 1 objstream.Mode =3 objstream.Open objstream.Write body objstream.Position = 0 objstream.Type = 2 objstream.Charset = Cset BytesToBstr = objstream.ReadText objstream.Close set objstream = nothing End Function txtURL=server.MapPath("../index.asp") sText = getHTTPPage(txtURL) Set FileObject=Server.CreateObject("Scripting.FileSystemObject") filename="../index.htm" Set openFile=FileObject.OpenTextfile(server.mapPath(filename),2,true) 'true為不存在自行建立 openFile.writeline(sText) Set OpenFile=nothing %> <script> alert("靜態(tài)網(wǎng)頁(yè)生成完畢"); history.back(); </script>
小結(jié),這三種方式是比較常用的生成HTML文件方法,我個(gè)比較喜歡使用第三種方式,因?yàn)轫?yè)面改動(dòng)時(shí)非常方便,就算動(dòng)態(tài)頁(yè)改動(dòng)多大都好,只要重新用XMLHTTP讀取生成一次即可。
以上就是ASP生成靜態(tài)HTML文件方法哪個(gè)好的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎來(lái)創(chuàng)新互聯(lián)行業(yè)資訊!
分享標(biāo)題:ASP生成靜態(tài)HTML文件方法哪個(gè)好
當(dāng)前地址:http://redsoil1982.com.cn/article28/gsosjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站營(yíng)銷、網(wǎng)站收錄、、ChatGPT、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)