如何提高Asp生成静态分页的速度
使用xmlhttp生成分页速度比较慢,数据量大了更是慢的可以。这里所说的 用fso来生成就是平时说的模板生成。很多人喜欢生成一页遍历一下数据表,和浏览分页模式差不多,这种生成方法网上有很多文章介绍的,以前本人就是用这种方法生成的。其实只要遍历一般数据表就可以生成全部分页了
我的思路是先把分页弄一个模板 如 mb_list.html
内容:
。。。
列表数据 [list]
分页 [page]
。。。
body=getmb("mb_list.html")
'------------总页数
sql1="select count(ID) from [table] where classid="&classid&" "
set rs=server.CreateObject("adodb.recordset")
rs.open sql1,conn,1,1
PageSize=20 '每页多少条
recordcount=rs(0)
pagecount=Abs(Int(rs(0)/PageSize*(-1)))
rs.close
'------------列表
sql="select * from [table] where classid="&classid&" "
strTemp=""& vbcrlf
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
i=0
k=0
while not rs.eof
i=i+1
'数据
strTemp=strTemp & rs("id") &"<br/>"
if i mod PageSize =0 or i=recordcount then
k=k+1
if k=1 then
path="/"&fs&"/index.html"
else
path="/"&fs&"/index"&k&".html"
end if
'获得数据
list_show=strTemp
page_show=showpage_fun(pagecount,k,3)
'替换和保存数据
body1=replace(body,"[list]",list_show)
body1=replace(body1,"[page]",page_show)
call savefun(path,body1)
strTemp=""& vbcrlf
'报告结果
response.Write("<a href="""&path&""" target=""_blank"">"&path&"</a><br/>")
response.Flush()
rs.movenext
wend
rs.close
set rs=nothing
这样的话table表之遍历一遍就可以生成全部分页了,速度自然快多了。