Dim start ''該變量爲指針將要指向的記錄集位置,通過參數動態獲得
Dim Template ''模板文件將以字符串讀入該變量 Dim content ''替換後的字符串變量 Dim objConn ''連接對象 Dim ConnStr ''連接字符串 Dim sql ''查詢語句 Dim cnt:cnt = 1 ''本輪循環計數器初始化 start = request("start") ''獲取本輪指針的開始位置 If IsNumeric(start) Then start = CLng(start) Else start=1 If start=0 Then start = 1 ''如果start ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath("DataBase.mdb") sql = "select * from table_name" Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open ConnStr set rs = Server.CreateObject("ADODB.Recordset") rs.open sql,objConn,1,1 ''打開數據集 rs.AbsolutePosition = start ''最關鍵的一步,將指針指向start,start通過參數動態獲得 Template = getTemplate(Server.MapPath("template.html"))'' template.html爲模板文件,通過函數getTemplate讀入到字符串,模板文件中要替換的內容均以{...}括起來 While Not rs.eof And cnt<= 500 ''500是設定一次請求生成頁面的循環次數,根據實際情況修改,如果太高了,記錄集很多的時候會出現超時錯誤 content = Replace(Template,"{filed_name_1}",rs("filed_name_1")) ''用字段值替換模板內容 content = Replace(content,"{filed_name_2}",rs("filed_name_2")) ...... content = Replace(content,"{filed_name_n}",rs("filed_name_n")) genHtml content,Server.MapPath("htmfiles/"&rs("id")&".html") ''將替換之後的Template字符串生成HTML文檔,htmfiles爲存儲靜態文件的目錄,請手動建立 cnt = cnt + 1 ''計數器加1 start = start + 1 ''指針變量遞增 rs.movenext wend If Not rs.eof Then ''通過刷新的方式進行下一輪請求,並將指針變量start傳遞到下一輪 response.write "<meta http-equiv=''refresh'' content=''0;URL=?start="&start&"''>" Else response.write "生成HTML文件完畢!" End if rs.Close() Set rs = Nothing objConn.Close() Set objConn = Nothing Function getTemplate(template)''讀取模板的函數,返回字符串,template爲文件名 Dim fso,f set fso=CreateObject("Scripting.FileSystemObject") set f = fso.OpenTextFile(template) getTemplate=f.ReadAll f.close set f=nothing set fso=Nothing End Function Sub genHtml(content,filename)''將替換後的內容寫入HTML文檔,content爲替換後的字符串,filename爲生成的文件名 Dim fso,f Set fso = Server.CreateObject("Scripting.FileSystemObject") Set f = fso.CreateTextFile(filename,true)''如果文件名重複將覆蓋舊文件 f.Write content f.Close Set f = Nothing set fso=Nothing End Sub %> |
ASP批量生成靜態HTML
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.