前段時間有個asp頁面執行起來很慢,訪問人數又頗多,而且又不經常修改,又懶得直接做成靜態的,每次都要從服務器下載來改,只好想辦法把ASP頁面轉化成htm靜態頁面了。。。
以前就曾經看到這樣的文章,不過沒太在意,真正想用的時候很難找到一個合適的,於是在網上搜索了半天終於找到比較合適的代碼再加上自己的修改,如下:
<%
Function GetPage(url)
'獲得文件內容
dim RetrIEval
Set RetrIEval = CreateObject("Microsoft.XMLHTTP")
With RetrIEval
.Open "Get", url, False ', "", ""
.Send
GetPage = BytesToBstr(.ResponseBody)
End With
Set RetrIEval = Nothing
End Function
Function BytesToBstr(body)
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 = "GB2312"
BytesToBstr = obJStream.ReadText
obJStream.Close
set obJStream = nothing
End Function
on error resume next
Url="http://www.sina.com.cn"'要讀取的頁面地址
response.write "開始更新首頁..."
wstr = GetPage(Url)
'response.write(wstr)
Set fs=Server.CreateObject("Scripting.FileSystemObject")
'if not MyFile.FolderExists(server.MapPath("/Html/")) then
'MyFile.CreateFolder(server.MapPath("/Html/"))'
'end if
'要存放的頁面地址
dizhi=server.MapPath("index.htm")
If (fs.FileExists(dizhi)) Then
fs.DeleteFile(dizhi)
End If
Set CrFi=fs.CreateTextFile(dizhi)
Crfi.Writeline(wstr)
set CrFi=nothing
set fs=nothing
response.write "...<font color=red>更新完成!</font>"
%>
代碼算是最簡單的,直接保存成一個asp文件即可,只要把URL(要轉化的ASP地址)和dizhi(要保存的Html地址)設置好就可以了,一般這兩個文件在同一個目錄,才能保證圖片或者CSS、JS起作用。
希望對那些正在尋找ASP->htm的朋友有用。