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

html-css010

如何实现asp批量定时生成html?,第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="<UL>"

For i=1 To 3

Html_Temp = Html_Temp&"<LI>"

Item_Classid = i

FileName = "Index"&Item_Classid&".htm"

FilePath = Server.MapPath("/")&"\"&FileName

Html_Temp = Html_Temp&FilePath&"</LI>"

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&"<UL>"

%>

<%

Response.Write ( "成功生成文件:" )

Response.Write ( "<BR>" )

Response.Write Html_Temp

%>

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

一般分这几步:

1、通过URL传递一个参数(ID);

2、然后根据此ID查询数据库;

3、取得数据后根据需要修改显示内容;

4、assign需要显示的数据;

5、display模板文件。

请找任何一个“文本模版引擎”即可

其实net本身就自带一个T4文本模版引擎,你写好模版页面,然后读取遍历数据,丢个模版引擎让他生成就是

ps:使用模版引擎意味着你必须使用标准的html控件实现模版,服务器控件有自己的生存周期,模版引擎很难对这个生效