怎樣把ASP頁(yè)生成HTML頁(yè)?
??ASP生成靜態(tài)網(wǎng)頁(yè)的方法
隨著(zhù)網(wǎng)站訪(fǎng)問(wèn)量的加大,每次從數據庫讀取都是以效率作為代價(jià)的,很多用ACCESS作數據庫的更會(huì )深有體會(huì ),靜態(tài)頁(yè)加在搜索時(shí),也會(huì )被優(yōu)先考慮。互聯(lián)網(wǎng)上流行的做法是將數據源代碼寫(xiě)入數據庫再從數據庫讀取生成靜態(tài)面,這樣無(wú)形間就加大了數據庫。
??將現有的ASP頁(yè)直接生成靜態(tài)頁(yè),將會(huì )節省很多。
下面的例子是將、index。asp?id=1/index。asp?id=2/index。asp?id=3/這三個(gè)動(dòng)態(tài)頁(yè)面,分別生成ndex1。htm,index2。htm,index3。
??htm存在根目錄下面:
For i=1 To 3
Html_Temp = Html_Temp&""
Item_Classid = i
FileName = "Index"&Item_Classid&"。
??htm"
FilePath = Server。MapPath("/")&""&FileName
Html_Temp = Html_Temp&FilePath&""
Do_Url = "http://"
Do_Url = Do_Url&Request。
??ServerVariables("SERVER_NAME")&"/main/index。asp"
Do_Url = Do_Url&"?Item_Classid="&Item_Classid
strUrl = Do_Url
dim objXmlHttp
set objXml。
??CreateObject("Microsoft。X(qián)MLHTTP")
objXml
objXml()
Dim binFileData
binFileData = objXmlHttp。
??responseBody
Dim objAdoStream
set objAdoStream = Server。CreateObject("ADODB。Stream")
objAdoStream。
??Type = 1
objAdoStream。Open()
objAdoStream。Write(binFileData)
objAdoStream。SaveToFile FilePath,2
objAdoStream。
??Close()
Next
Html_Temp = Html_Temp&""
%>
非摸板生成靜態(tài)頁(yè)
目前已經(jīng)有很多生成html的新聞系統,但是都是用的模板,本函數實(shí)現把asp頁(yè)面產(chǎn)生的html代碼保存成為一個(gè)html文件,這樣就沒(méi)有必要改動(dòng)原來(lái)的頁(yè)面就可以輕松完成一個(gè)生成html的新聞系統了。
由于代碼比較短,這里就不進(jìn)行注釋了
content = re。replace(content,"")
re。global = false
re。
??pattern = ""
do
set ms = re。execute(content)
if ms。countaspEnd 1
execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """&vbcrlf&""")&""""&vbcrlf
aspEnd=inStr(aspStart,content,"%>") 2
tmp_str = Mid(content,aspStart,aspEnd-aspStart-2)
do
set ms = re1。
??execute(tmp_str)
if ms。count"
End Function
function asp2html(filename)
dim code
code = replace( replace( replace( get_exe_code(filename), "hughchiu_rtcode = hughchiu_rtcode&"""""&vbcrlf, "" ), "", "" )
'response。
??Write(code)
execute(code)
'response。Write( hughchiu_rtcode )
asp2html = hughchiu_rtcode
end function
%>
使用范例:
set fso=CreateObject("Scripting。
??FileSystemObject")
set f=fso。CreateTextFile( server。mappath( "youpage。htm" ), true )
f。WriteLine( asp2html("youpage。
??asp") )
f。close
set f = nothing
set fso = nothing
可見(jiàn),雖然是新方法還是需要fso的支持。