如何实现asp批量定时生成html?

2024-11-29 11:54:30
推荐回答(3个)
回答1:

  随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。

  下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成ndex1.htm,index2.htm,index3.htm存在根目录下面:

<%
dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
Html_Temp="

    "
    For i=1 To 3
    Html_Temp = Html_Temp&"
  • "
    Item_Classid = i
    FileName = "Index"&Item_Classid&".htm"
    FilePath = Server.MapPath("/")&"\"&FileName
    Html_Temp = Html_Temp&FilePath&"
  • "
    Do_Url = "http://"
    Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/main/index.asp"
    Do_Url = Do_Url&"?Item_Classid="&Item_Classid
    strUrl = Do_Url
    dim objXmlHttp
    set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
    objXmlHttp.open "GET",strUrl,false
    objXmlHttp.send()
    Dim binFileData
    binFileData = objXmlHttp.responseBody
    Dim objAdoStream
    set objAdoStream = Server.CreateObject("ADODB.Stream")
    objAdoStream.Type = 1
    objAdoStream.Open()
    objAdoStream.Write(binFileData)
    objAdoStream.SaveToFile FilePath,2
    objAdoStream.Close()
    Next
    Html_Temp = Html_Temp&"
      "
      %>
      <%
      Response.Write ( "成功生成文件:" )
      Response.Write ( "
      " )
      Response.Write Html_Temp
      %>

      不要定时,自己手动,太耗资源了,这玩意.

回答2:

asp是后台脚本,运行于服务器上,而服务器是无人值守运行的机器。
要想达到定时运行某个操作,单是靠asp是无法达到的,除非你网站
每时每刻都有人在访问。
假设你设定定时在某一时间,如果恰好那一个时间没人访问,那定时
无法执行;如果你设定是访问达多长时间后定时执行,要是多个访问
者都达到这个时间长,就多次生成,对服务器造成负担。
----------------------------------------------------
个人觉得非要定时生成,只有在服务器上运行一个可执行程序,定时
访问你的asp。
----------------------------------------------------
批量生成是有可能达到的,思路:把要生成的文件列表储存于数组或者

据库中,然后循环生成就可以了

回答3:

批量不难,写个函数,循环调用就好了
定时嘛,建议不要,你要为服务着想啊,有必要再生成`