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

  %>