波斯马BOSSMA Information Technology

ASP生成静态html页面实现

发布时间:2007年2月12日 / 分类:ASP.NET / 11,198 次浏览 / 评论

网上找到的一个生成静态页面的方法,我简单加工了一下,方便测试集成:
以简单新闻系统为例:添加新闻 生成静态页面 删除新闻
[程序示例下载]

2007-3-5更新:
1、自动检测创建“/年/月/”格式目录存档生成的静态页面
2、将newsview.asp挪出/news文件夹

核心代码:

sub asp2html()
'如果文件已经存在,则替换原来的文件
'可以集成到信息发布、修改页面,及时生成静态页面
dim strUrl,Item_Classid,id,FileName,FilePath
nstrsql="select * from news order by news_id desc"
set nrs=server.createobject("adodb.recordset")
nrs.open nstrsql,conn,1,1
if not nrs.eof then
'循环数据库记录
For i=1 To nrs.recordcount
'可以修改为需要生成静态页面的信息id,只需传递要生成的信息id的范围
Item_Classid = nrs("news_id")
FileName = "news_"&Item_Classid&".htm"
'生成页面存放的目录
FilePath = Server.MapPath("news/")&"\"&FileName
'需要生成的页面
strUrl="http://"&Request.ServerVariables("SERVER_NAME")&"/asp2html/news/newsview.asp?newsid="&Item_Classid
dim objXmlHttp
'建立一个对象,解析传递过来的strUrl页面的html代码
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
'将解析到的html加到binFileData中
Dim binFileData
binFileData = objXmlHttp.responseBody
'将binFileData写入文件
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
Next

objXmlHttp.close
set objXmlHttp=nothing
objAdoStream.close
set objAdoStream=nothing
end if
Response.Write "<script language='javascript' type='text/javascript'>alert('生成静态页面成功!');this.location.href='newslist.asp';</script>"
nrs.close
set nrs=nothing
end sub
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《ASP生成静态html页面实现

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

目前有1 条评论

  1. 林子 0楼:

    这种方法实现HTML化的问题比较多,如果单独实现某页HTML的可行,复杂的方法行不通

发表评论