程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 關於Asp代碼與頁面的分離模板技術第1/3頁

關於Asp代碼與頁面的分離模板技術第1/3頁

編輯:關於ASP編程
在使用ASP制作一個站點的時候,常常會出現一個ASP文件中,程序代碼和HTML代碼混合的情況。這樣子做有許多缺點:
  1.編程時就要對頁面布局進行設計和編排,造成代碼混亂難懂,不規范;
  2.當需要改變頁面外觀時,你不僅要改變HTML部份,也需要改變ASP代碼,不易維護。
  那麼,要如何才能避免這些麻煩呢?
  答案就是使用模板文件,將ASP代碼和HTML頁面分開,一切問題就都解決了。使用模板有以下好處:
  1.在很短的時間內可以替換整個站點的外觀;
  2.使程序員可以抽象編程,而無須接觸HTML代碼;
  3.可以重復利用以前的模板。
  使用過PHP的程序就會知道,PHP有個模板程序(FastTemplate),現在的問題是如何在ASP中實現類似的功能。
  Microsoft的ASP帶有兩種腳本:VBScript和JScript。它們都帶有一個正則表達式對象(RegExp),利用字符串對象和RegExp對象,就可以輕松的實現模板功能。沐楓以此編寫了一個Template.JScript.INC文件,此文件的內容附在文章後面。有能力的讀者可以根據自己的需要進行改進。
  下面介紹一下使用方法。由於此文件是使用JScript編寫的(當然要轉成VBScript也很容易),因此,缺省腳本語言要設為JScript,即ASP程序第一行應為:%@Language=JScript%,然後再包含模板程序文件:!#includefile=Template.JScript.INC。
  先介紹一下Template類的使用:
  1.建立Template對象:Template(Path)
  參數:Path(字符串類型)HTML模板文件的存放路徑。
  使用new操作符建立Template對象。
  例子:
以下是引用片段:
  vartpl=newTemplate(c:\template); 

  在程序中可以用tpl.TplPath來取得模板路徑,也可以通過tpl.TplPath來改變模板路徑。
  如:
以下是引用片段:
  tpl.TplPath=d:\template; 

  2.裝載模板文件:Template.Load(Name,File)
  參數:Name(字符串類型)是一個模板變量名。
  File(字符串類型)模板文件名。此文件存放在HTML模板路徑下。
  讀取文件File到模板變量Name中。
  例子:
以下是引用片段:
  tpl.Load(Main,TEST.HTM); 

  此時,模板變量Main就包含了文件TEST.HTM的內容。
  你可以用tpl.Main來訪問模板變量Main。
  例子:
以下是引用片段:
  %=tpl.Main% 

  將顯示剛才讀進來的TEST.HTM文件內容。
  3.模板分拆:Template.Split(Name)
  參數:Name(字符串類型)是一個模板變量名。
  將Name中的子模板分解。
  例子:
以下是引用片段:
  先假設上例中的TEST.HTM內容為: 
  - 
  這是主模板。接下來是:!#TPLDEFSUBSUB子模板,還有 
  !#TPLDEFTHIRDTHIRD模板。!#TPLENDTHIRD 
  !#TPLENDSUB 
  - 

  那麼:
以下是引用片段:
  tpl.Split(Main); 

  執行以後,就會生成新的模板變量SUB,和THIRD,它們的內容就是!#TPLDEFSUB和!#TPLENDSUB之間語句。
  而且Main模板變量的內容也會發生改變:
  tpl.Main的內容為:這是主模板。接下來是{SUB}
  tpl.SUB的內容為:SUB子模板,還有{THIRD}
  tpl.THIRD的內容為:THIRD模板。
  TPLDEF和TPLEND定義的語句塊充許多重嵌套。
  4.模板處理:Template.Parse(Name)
  參數:Name(字符串類型)是一個模板變量。
  將模板中用花括號括起來的字串用同名的模板變量的內容替換。
  例子:續上例

以下是引用片段:
  %=tpl.Parse(Main)% 
當前1/3頁 123下一頁閱讀全文
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved