作者: 孫立 Email: 17bizAT126.com
寫于:2006/3/5
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
http://sunli.cnblogs.com/archive/2006/03/05/343095.html
關鍵詞:ASP 模板
摘要: 闡述一種全新的ASP模板引擎,實現代碼(邏輯)層與HTML(表現)層的分離.這種模板實現方法避免了一 般ASP模板加載模板文件(加載組件)和替換所浪費的資源,實現編譯型的模板引擎,提高程序的執行速度和穩定性。
摘要: 闡述一種全新的ASP模板引擎,實現代碼(邏輯)層與HTML(表現)層的分離.這種模板實現方法避免了一般ASP模板加載模板文件(加載
組件)和替換所浪費的資源,實現編譯型的模板引擎,提高程序的執行速度和穩定性。
內容:
當前,WEB開發已經變得非?;鸨?因為各種應用,已經約來越要求表現層和邏輯層的分離.ASP和HTML夾在一起程序將變得難于維護,可讀性也差。在PHP領域,模板引擎已經非常普遍,如phplib,SMARTY,等等.有使用替換方式的,也有編譯方式的(SMARTY),它們都較好的實現了邏輯層和表現層的分離.由于PHP的影響,在ASP界有人借鑒phplib等使用替換的方法開發出asp的模板類,由于ASP在字符處理上性能并不是很強大,所以在速度上受到影響,這樣的模板在目前的應用也不是很廣泛。如:
1<!--template.html-->
2<html>
3<head>
4<title>{$title}</title>
5</head>
6<body>
7{$body}
8</body>
9</html>
1<!--Template.asp-->
2<%
3TemplateCode=Load("template.html")'自定義函數,裝載模板文件到TemplateCode
4TemplateCode=Replace(TemplateCode,"{$title}","asp模板引擎終結者")'替換模板
5TemplateCode=Replace(TemplateCode,"{$body}","asp模板引擎終結者內容")'替換模板
6Response.Write TemplateCode
7%> 上面的例子只是初步展示了當前ASP模板的思想,有ASP版的CMS系統已經嵌入了對模板的邏輯控制,雖然能夠實現邏輯和界面的分離,但是這種模板存在的問題就是模板需要每次都用ASP解析一次,程序相當于解析兩次,而且當要替換的內容很多的時候,將會降低性能.而且裝載模板需要服務器支持一種組件(FSO,ADODB,XMLHTTP均可實現).
借鑒于編譯型的模板,我在ASP中引進這種思路.提出一種應用在ASP中的功能和性能都很優良的模板體系.下面用代碼表示:
1 <!--template.html-->
2 <html>
3 <head>
4 <title><%=title%></title>
5 </head>
6 <body>
7 <!--<%
8 'If邏輯控制,當然這里對于FOR,While 循環也一樣處理,是不是覺得很簡單呢,