今天算是把动转静动手做了一下,发现了一个问题。
就是分页的实现。
首先是一级页面上的前几条数据是调用一个XML文件上,这个XML文件是通过手动刷新一个程序,用来动态生成XML文件。
然后有一个后台程序,例如文章发布系统,如果每发布一篇文章,则生成一个静态页面。
另外,修改一篇文章,则将以前生成的静态页面重新生成一遍,采用一个模板,毕竟页面不仅仅是数据的事,还有一些图片啊,什么的。
然后就是一个分页程序,将所有的文章标题列出,这里暂时还不会做成纯静态的。
附部分程序代码:
由于网易的博客对代码的处理不是太好,致使一些代码省略掉,例如标签的ID等。
有可能致使程序不能正常运行。
——Victor.Yan 07.5.16 更新
<%If session("admin")<>"" then%>
<head>
<meta http-equiv="refresh" content="1;URL=add_info.asp" />
<!--#include virtual="/dtos/conn/conn.asp"-->
<%
set rsa=server.CreateObject("Adodb.recordset")
rsa.open "Select *from article",conn,1,2
rsa.addnew
rsa("classid")=request("infoclass")
rsa("title")=trim(request("title"))
rsa("content")=trim(request("content"))
rsa.update
%>
<%
Set rsg=conn.execute("select id from article order by id desc")
%>
<%
'如果对记录做了添加,那么相应的静态页面应该重新生成一遍!
set rs=conn.execute("select *from article where id"))
session("dd")=rsg("id")
Set fso=server.CreateObject("scripting.filesystemobject")
t=server.mappath("/dtos/listinfo/"& year(rs("datetime"))& "-" & Month(rs("datetime")) &"-" & Day(rs("datetime")))
If fso.folderexists(t) Then '稍微判断一下, 只将新日期生成文件夹
'Set folder=fso.createfolder(t & "ad")
else
Set folder=fso.createfolder(t)
End If
path1= t & ""
'If fso.fileexists(path1 & hour(rs("datetime")) & Minute(rs("datetime")) & Second(rs("datetime")) & ".html") Then '只有新记录才生成静态页面
'else
'Set file=fso.createtextfile(path1 & hour(rs("datetime")) & Minute(rs("datetime")) & Second(rs("datetime")) & ".html")
'end if
'end if
%>
<%
response.charset="gb2312"
dim objXmlHttp
set objXmlHttp = Server.createObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET","http://localhost:8080/dtos/listinfo/template/template.asp?id="&session("dd"),false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.createObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Mode=3
objAdoStream.Open()
objAdoStream.Write binFileData
objAdoStream.SaveToFile path1 & hour(rs("datetime")) & Minute(rs("datetime")) & Second(rs("datetime")) & ".html",2
objAdoStream.Close()
set objAdoStream=nothing
set objXmlHttp=Nothing
%>
<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
-->
</style>
</head>
<table width="519" height="197" border="0" align="center" cellpadding="0" cellspacing="0" style="border:1px solid #CCCCCC;">
<tr>
<td height="23" align="center"><span >添加成功!1秒钟后将自动跳转!<%=session("dd")%></span></td>
</tr>
</table>
<%else%>
有错误发生
<%End if%>
修改记录则重新生成静态页面
<%If session("admin")<>"" then%>
<head>
<meta http-equiv="Refresh" content="1;URL=manage_info.asp" />
<!--#include virtual="/dtos/conn/conn.asp"-->
<%
'对数据库记录进行修改
set rsg=server.createobject("adodb.recordset")
rsg.open "Select *from article where id"),conn,1,2
rsg("classid")=request("infoclass")
rsg("title")=trim(request("title"))
rsg("content")=trim(request("content"))
rsg.update
%>
<%
'如果对记录做了修改,那么相应的静态页面应该重新生成一遍!
set rs=conn.execute("select *from article where id"))
Set fso=server.CreateObject("scripting.filesystemobject")
t=server.mappath("/dtos/listinfo/"& year(rs("datetime"))& "-" & Month(rs("datetime")) &"-" & Day(rs("datetime")))
If fso.folderexists(t) Then '稍微判断一下, 只将新日期生成文件夹
else
Set folder=fso.createfolder(t)
End If
path1= t & ""
'If fso.fileexists(path1 & hour(rs("datetime")) & Minute(rs("datetime")) & Second(rs("datetime")) & ".html") Then '只有新记录才生成静态页面
'else
'Set file=fso.createtextfile(path1 & hour(rs("datetime")) & Minute(rs("datetime")) & Second(rs("datetime")) & ".html")
'end if
'end if
%>
<%
response.charset="gb2312"
dim objXmlHttp
set objXmlHttp = Server.createObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET","http://localhost:8080/dtos/listinfo/template/template.asp?id="&session("id"),false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.createObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Mode=3
objAdoStream.Open()
objAdoStream.Write binFileData
objAdoStream.SaveToFile path1 & hour(rs("datetime")) & Minute(rs("datetime")) & Second(rs("datetime")) & ".html",2
objAdoStream.Close()
set objAdoStream=nothing
set objXmlHttp=Nothing
%>
<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
-->
</style>
</head>
<table width="519" height="197" border="0" align="center" cellpadding="0" cellspacing="0" style="border:1px solid #CCCCCC;">
<tr>
<td height="23" align="center"><span >修改成功!1秒钟后将自动跳转!</span></td>
</tr>
</table>
<%else%>
有错误发生
<%End if%>
前N条记录
createtoplist.asp
<!--#include virtual="/dtos/conn/conn.asp"-->
<%
Set rs=conn.execute("select top 6 * from article order by datetime desc")
Dim id(10)
Dim title(10)
Dim author(10)
Dim content(10)
Dim datetime(10)
Do until rs.eof
id(line)=rs("id")
title(line)=rs("title")
content(line)=rs("content")
datetime(line)=rs("datetime")
line=line+1
rs.movenext
Loop
%>
<%
Set fso=server.CreateObject("scripting.filesystemobject")
Set file=fso.createtextfile(server.mappath("xml/top8.xml"))
file.writeline("<?xml version=""1.0"" encoding=""gb2312""?>")
file.writeline("<articles>")
For i=0 To line-1
file.writeline("<article>")
file.writeline("<id>" & id(i) & "</id>")
file.writeline("<title>" & title(i) & "</title>")
file.writeline("<datetime>" & datetime(i) & "</datetime>")
file.writeline("</article>")
next
file.writeline("</articles>")
%>
<table width="596" height="218" border="0" align="center" style="border:1px solid #CCCCCC;">
<tr>
<td width="484" align="center">
<%response.write "XML文件生成成功!"
response.write "<a href='/dtos/listinfo/xml/top8.xml'>点击查看</a>"
%></td>
</tr>
</table>