1、WITH TEMPLET意思是,生成的頁面架構將采用某個已設定的模板,在此之前我的一篇教程中介紹過,希望各位在看本教程之前對ASP采用模板應熟悉下。
2、ASP轉變為HTML。不要我再說ASP轉變成HTML的好處了吧,其中最值得知道的就是:靜態HTML頁和動態頁對服務器的要求承受能力小得多,同樣,靜態HTML搜索幾率遠比動態頁面的多得多。
那麼,我現在需要處理的技術問題就是:
1、如何實現模板技術?
2、如何實現2HTML技術?
3、如何讓模板技術與2HTML技術結合?
一、先進行技術原理分析 1、模板技術參看
2、如何使得ASP頁面轉變為HTML?一般都會想到FSO組件,因為該組件能新建任何文件格式。
那麼其整個運行過程是怎麼樣的呢?
a、提供信息輸入頁面進行信息收集;
b、接受信息值先保存數據庫,再FSO生成文件;
c、技術性完成任務,顯示剛被創建的HTML文件的路徑地址。 該技術的實現過程中有如下幾個難點:
i、FSO生成的文件是直接放在一個大文件夾下,還是單獨放在某個每日更新的子文件夾中?可能表述不准確,這樣理解吧:相信通過FSO生成的文件隨著時間的推移,文件會越來越多,管理也會越來越亂……通常你可能看到一些地址諸如 www.xxx.com/a/2004-5-20/200405201111.html 可以分析得出應該是建立了當前日期的文件夾。這樣,一天就是一個文件夾的頁面內容,查看管理也就顯得比較合理。
ii、我在試圖通過以上方法建立文件夾的時候,又發現了第二個問題。第一次通過FSO建立以當前日期命名的文件夾,沒有問題。當我有新的文件需要生成時,因為是同一個程序,所以,其又將會執行建立同樣的文件夾。此時,FSO組件會發現該路徑已存在……卡殼-_-! 繼續處理,在首行添加代碼:
引用:
On Error Resume Next
達到自欺欺人、掩耳盜鈴的效果。
當然規矩的用法是判斷文件夾的有無
引用:
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if (fso.FolderExists(Server.MapPath(folder))) then
'判斷如果存在就不做處理
else
'判斷如果不存在則建立新文件夾
fso.CreateFolder(Server.MapPath(folder))
end if
%>
iii、文件夾是建立了,文件該如何建立呢?主要也就是文件名的生成。當然這個就需要自己來寫個函數,功能就是如何生成文件名:
引用:
<%
function makefilename(fname)
fname = fname '前fname為變量,後fname為函數參數引用
fname = replace(fname,"-","")
fname = replace(fname," ","")
fname = replace(fname,":","")
fname = replace(fname,"PM","")
fname = replace(fname,"AM","")
fname = replace(fname,"上午","")
fname = replace(fname,"下午","")
makefilename = fname & ".html"
end function
%>
引用函數則:
<%fname = makefilename(now())%>
其實嘛,就是以年月日時分秒命名的文件。
iv、最後,生成的文件該如何查看到?當然需要把生成文件的路徑保存的數據庫中,並且添加到相對應的記錄集中了。當然,這在下面的數據庫設計時會提及到。
3、模板技術和2HTML技術的結合:將模板中特殊代碼的值替換為從表單接受過來的值,完成模板功能;將最終替換過的所有模板代碼生成HTML文件。需要注意的是:替換應能將輸入數據的格式或者支持UBB的代碼徹底改變。