将ASP动态网页转换成和生成HTML静态页面的方法
作者:随然 日期:2011-04-24
代码适用范围:网站的某个或者某些页面访问量比较大,经常读取数据库,给服务器增加负担,访问速度也比较慢。如果该页面调用的数据库较多,但网站内容不经常更新,就可以直接将该页面生成HTML网页,等下次内容更新的时候,再生成一次。或者写一个代码,隔一段时间生成一次。
源代码:
复制内容到剪贴板 程序代码
<form method="post" action="?">
<div align="center">
<input name="asp2html" type="submit" value="生成静态主页"/>
</div>
</form>
<%
If request.Form("asp2html")<>"" Then
%>
<%
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.xxx.com/index.asp" '要读取的页面地址
response.write "开始更新首页...<BR>"
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>"
%>
<%
End If
%>
<div align="center">
<input name="asp2html" type="submit" value="生成静态主页"/>
</div>
</form>
<%
If request.Form("asp2html")<>"" Then
%>
<%
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.xxx.com/index.asp" '要读取的页面地址
response.write "开始更新首页...<BR>"
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>"
%>
<%
End If
%>
直接保存成一个asp文件,上传到网站运行即可。注意,需要把URL(要转化的asp地址)和dizhi(要保存的html地址)设置好,一般这两个文件在同一个目录,才能保证图片或者css、js起作用。
上一篇: 在IIS中使用ISAPI Rewrite组件实现图片和文件的防盗链
下一篇: 网址转向301重定向方法大全(HTML/ASP/ASPX/CGI/PHP/JSP)
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 代码
相关日志:
下一篇: 网址转向301重定向方法大全(HTML/ASP/ASPX/CGI/PHP/JSP)
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 代码
相关日志:
评论: 0 | 引用: 0 | 查看次数: 13104
发表评论