首页 > 编程 > ASP > 正文

asp定时生成静态HTML的代码

2024-05-04 11:08:30
字体:
来源:转载
供稿:网友
asp定时生成静态HTML的代码,对于缓解服务器压力有很大帮主,需要的朋友可以参考下。
 
 
 

 

复制代码代码如下:

<% 
'判断是否要生成新的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 = "http://"&Request.ServerVariables("SERVER_NAME")& ":" & Request.ServerVariables("SERVER_PORT")& Request.ServerVariables("URL") 
else 
UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& Request.ServerVariables("URL") 
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 
%> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表