初學ASP,程式是能勉強寫出來了,但若每進行一次網站頁面的改版,所有的來源程式都將進行一次移植手術。為此所耗費的人力精力不計其數,甚至一不小心得不償失、前功盡棄。
所以,夢想著那麼大段的程式碼變成幾個簡單的字元代替,這樣只要設計好頁面把該功能插入就OK了。其實這也簡單,只需將實現該功能的程式碼做成子程式,然後首頁調用就可以了。
很多時候,在部落格中國,你會選擇到很多的模板,甚至有可能自己來設計;或者採用豬飛飛BLOG的各大站長都將其網站改得不近相同……這些,我們都歸功於ASP採用模板的功能。
那下面偶就借花獻佛,將模板拿來分析,以饋各位朋友。
首先,模板需要線上修改,則應採用資料庫儲存模板代碼
所謂的模板,就是設計完工的標準的HTML代碼,其中需要由程式實現的功能部分將採用特殊字元串代替。然,這些特殊字元串需要在顯示的時候被編譯為對應的功能。
1,設計資料庫testmb.mdb
建立表moban:欄位m_id(自動編號,主關鍵字);欄位m_html(備忘類型)
2,假設第一模板內容代碼
將下列代碼拷貝到m_html欄位中
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>testmb</title> </head> <body leftmargin="0" topmargin="0"> <table width="100%" height="100%" border="0" cellpadding="5" cellspacing="2"> <tr align="right" bgcolor="#CCCCCC"> <td height="20" colspan="2">$cntop$</td> </tr> <tr valign="top"> <td width="25%" bgcolor="#e5e5e5">$cnleft$</td> <td width="74%" bgcolor="#f3f3f3">$cnright$</td> </tr> </table> </body> </html> |
注意$cntop$、$cnleft$、$cnright$,它們將要實現某些具體的程式功能
3,建立資料庫連接檔案conn.asp
<% set conn= Server.CreateObject("ADODB.Connection") connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("testmb.mdb") conn.Open connstr %> |
4,建立特殊字元串轉換所需要的庫檔案lib.asp
該檔案的主要作用是將實現某些功能的ASP程式做成字程式,以方便調用。
<% dim topcode sub cntop() topcode="現在時間是:" topcode=topcode&now() end subdim leftcode,i sub cnleft() for i = 1 to 5 leftcode=leftcode&"<p>cnbruce.com" next end sub dim rightcode sub cnright() for i = 1 to 9 rightcode=rightcode&"<hr color="&i&i&i&i&i&i&">" next end sub %> |
5,最後,調用資料庫中的模板代碼,將特殊字元串轉換。
<!--#include file="conn.asp" --> <!--#include file="lib.asp" --> <% sql="select * from moban where m_id=1" set rs=Server.CreateObject("adodb.recordset") rs.open sql,conn,1,1 mb_code=rs("m_html") rs.close set rs=nothingcntop() mb_code=replace(mb_code,"$cntop$",topcode) cnleft() mb_code=replace(mb_code,"$cnleft$",leftcode) cnright() mb_code=replace(mb_code,"$cnright$",rightcode) response.write mb_code %> |
該頁主要作用是將模板代碼進行顯示,並將其中的特殊代碼轉變為相對應子程式功能。
至此,ASP的模板功能基本完成,剩下的就是:建立具備編輯模板功能的程式頁面,將庫檔案改變為自己所需要程式功能……