當網站數據巨大(dà)時(shí),一次生成許多(duō)靜态頁,會導緻生成頁面超過20分(fēn)鐘(zhōng)後報錯,以至于後面的(de)靜态頁不能生成。
即使使用(yòng)了(le)Server.ScriptTimeout = 9999,程序運行後,也(yě)會出現假死現象。
這(zhè)裏介紹一種方法,每次生成100個(gè)靜态頁面,不停地生成,直到全部生成完畢
注意:這(zhè)裏使用(yòng)的(de)是模塊替換生成靜态頁面的(de)方法。
代碼如下(xià):
<%
Dim cnt:cnt = 1 '本輪循環計數器初始化(huà)
start = request("start") '獲取本輪指針的(de)開始位置
If IsNumeric(start) Then start = CLng(start) Else start=1
If start=0 Then start = 1 '如果start爲空,從第一條開始
num = 100 '每次生成的(de)數量
content = "fso獲取的(de)模闆頁面代碼,這(zhè)裏就省略了(le)"
sql = "se1ect * from 表名"
rs.Open sql,conn,1,1
rs.AbsolutePosition = start '這(zhè)是此程序最關鍵的(de)一步,将指針指向start,start通(tōng)過參數動态獲得(de)
Do While Not rs.eof And cnt < num
content = Replace(content,"{要替換的(de)内容1}",rs("字段名1")) '用(yòng)字段值替換模闆内容,下(xià)同
content = Replace(content,"{要替換的(de)内容2}",rs("字段名2"))
……
cnt = cnt+1
start = start + 1
rs.movenext
Loop
If Not rs.eof Then '通(tōng)過刷新的(de)方式進行下(xià)一輪請求,并将指針變量start傳遞到下(xià)一輪
response.write "<meta http-equiv='refresh' content='0;URL=?start="&start&"'>"
Else
response.write "生成HTML文件完畢!"
End if
rs.Close()
Set rs = Nothing
%>