asp定时生成静态HTML的代码

2018-09-06 11:39

阅读:350

  复制代码 代码如下:
<%
判断是否要生成新的HTML
if Application(cache_asptohtml_date)= then
Application.Lock
Application(cache_asptohtml_date)=now()
Application.Unlock
Call aspTohtml
Response.Redirect(index.html)
end if
if DateDiff(s, Application(cache_asptohtml_date),Now)> 100 then 比较上次更新时间与当前时间相差多少秒
Application.Lock
Application(cache_asptohtml_date)=now()
Application.UnLock
Call aspTohtml
Response.Redirect(index.html)
Else
Response.Redirect(index.html)
End if

获取当前目录!
function getpath
if Request.ServerVariables(SERVER_PORT)<>80 then
UserUrl =
else
UserUrl =
end if
getpath=left(UserUrl,InstrRev(UserUrl,/))
end function

sub aspTohtml
----------------------------------------------------------
使用XMLHTTP生成静态首页的代码
Curl 为你的首页地址,确保你的空间支持FSO
-----------------------------------------------------------
dim read,Curl,content
Curl=getpath&home.asp
read=getHTTPPage(Curl)
if read<> then
content=read
Set Fso = Server.CreateObject(Scripting.FileSystemObject)
Filen=Server.MapPath(index.html)
Set Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Write content
Site_Config.Close
Set Fso = Nothing
end if
End sub
Function getHTTPPage(url)
dim http
set http=Server.createobject(Microsoft.XMLHTTP)
Http.open GET,url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
set http=nothing
if err.number<>0 then err.Clear
End Function

Function BytesToBstr(body,Cset)
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 = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
%>

ASP定时生成静态页(HTML)2
复制代码 代码如下:
<%
set fs=server.createobject(scripting.filesystemobject)
file=server.mappath(time.txt)
set txt=fs.opentextfile(file,1,true)
if not txt.atendofstream then
times=txt.ReadLine
Else
response.write <br /><!--有没有发现time.txt 开始生成!-->
HtmlPage = time.txt //生成的HTML文件名
Template = NOW()
Set FSO = Server.CreateObject (Scripting.FileSystemObject)
Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage))
FileOut.WriteLine Template
FileOut.Close
Set FSO = Nothing
end If


If datediff(s,times,NOW()) > 3600 Then //上次更新到现在的时间 大于 3600秒 则 更新
response.write <br /><!--时间过了开始更新-->

code = 这里是需要生成的html代码 //如何得到代码的方式有很多

//用FSO生成HTML页面
HtmlPage = index.html //生成的HTML文件名
Template = code
Set FSO = Server.CreateObject (Scripting.FileSystemObject)
Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage))
FileOut.WriteLine Template
FileOut.Close
Set FSO = Nothing

//用FSO生成time.txt文件
HtmlPage = time.txt //生成的HTML文件名
Template = NOW()
Set FSO = Server.CreateObject (Scripting.FileSystemObject)
Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage))
FileOut.WriteLine Template
FileOut.Close
Set FSO = Nothing

Else

response.write <br /><!-- 已经过去&datediff(s,times,NOW())&秒!-->

End If
%>


评论


亲,登录后才可以留言!