首先我们要创建一个数据库表news包括字段
id title contect date
接着我们设置一个ASP数据显示页shownew.asp
代码如下:
<%@codepage=936%>
<%
dim connstr,dirs
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("text.mdb")&";Jet OLEDB:Database "
set conn=server.createobject("ADODB.CONNECTION")
if conn.state=1 then
conn.Close
end if
conn.Open connstr
new_id=Request.QueryString("new_id")
if not new_id="" then
set rs=Server.CreateObject("Adodb.RecordSet")
rs.Open "select * from news where id="&new_id,conn,1,1
do while not rs.eof
Response.Write("<table><caption>"&rs(1)&"</caption>")
Response.Write("<tr><td>"&rs(2)&"</td></tr><tr><td> 发布时间 :"&rs(3)&"</td></tr></table>")
rs.MoveNext
loop
rs.Close
set rs=Nothing
end if
conn.Close
set conn=Nothing
%>
最后就是关键的静态页生成页了dytost.asp
代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<base target="_blank" />
<iframe id="myiframe" style=" display:none"></iframe>
<%
dim connstr,dirs
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("text.mdb")&";Jet OLEDB:Database Password=qgyqgyqgy"
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.Clear
else
conn.Open connstr
end if
if request("page")<>"" then
page=cint(request("page"))
else
page=1
end if
set rs=Server.CreateObject("Adodb.RecordSet")
rs.Open "select * from new ",conn,1,1
mpage1=rs.Recordcount
rs.move (page-1)*1
url="http://localhost/example/asp生成静态页/shownew.asp?new_id="&rs(0)//这里一定要是完整URL
fvfile="new"&rs(0)&".html"
response.write"<b><font color=""#FF0000"">"&page&"</font>/<font color=""#FF0000"">"&mpage1&"</font> 正在生成新闻页面,请等待......</b><span id=showImport></span><IE:Download ID=""oDownload"" STYLE=""behavior:url(#default#download)"" />"
Response.Write"<script>document.getElementById('myiframe').src='"&url&"'</script>"
savefile url,fvfile
rs.Close
set rs=Nothing
if page<mpage1 then
Response.Write"<meta http-equiv=""refresh"" content=""0;url=dytost.asp?page="&page+1&"'"">"
end if
function savefile(url,fvfile)
on error resume next
url=url//这一定要用完整URL地址
wstr = GetPage(url)+url
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set CrFi=fs.CreateTextFile(server.MapPath(fvfile))
Crfi.Writeline(wstr)
set CrFi=nothing
set fs=nothing
//Response.Write("<script> alert('"&fvfile&"生成成功')</script>")
end function
Function GetPage(url)
dim Retri
Set Retri = CreateObject("Microsoft.XMLHTTP")
With Retri
.Open "Get", url, False
.Send
GetPage = BytesToBstr(.ResponseBody)
End With
Set Retri = 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
%>
好了现在就可了,
不过有一点大家一定要注意啊!因为这个是先将代码静态化然后,再将静态化的代码生成静态页的,所以由于生成的速度太快,可能第一次生成的文件是显示不正常的,这是我们只要在运行一下这个dytost.asp文件就可以了,大家也可以在程序中添加时间间隔摄者的代码来避免这个情况的出现
ASP非模板生成静态页
原创
©著作权归作者所有:来自51CTO博客作者shenymce的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:ASP编码设置
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
不用模板只用ASP+FSO生成静态HTML页的一个方法
另建一个makehtml.asp的页面,加入一个textarea域,假设为name="body",将index.asp在
asp html 数据库 服务器 file