比較不錯的asp模板引終極講解(WEB開發之ASP模式)

來源:互聯網
上載者:User

作者: 孫立 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 迴圈也一樣處理,是不是覺得很簡單呢,
9 '對邏輯進行html注釋,在DW(Dreamweaver)下就不會應為邏輯控制的asp預留位置產生變形,對於其他的變數將顯示一個asp標記,便於修改
10 IF Catalog="music" Then
11 %>-->
12 <%=music%>
13 <!--<%Else%>-->
14 <%=book%>
15 <!--<%End If%>-->
16 </body>
17 </html>
1 <!--Template.asp-->
2 <%
3 title="asp模板引擎終結者"
4 Catalog="music"
5 music="音樂"
6 book="書"
7 %>
8 <!--#include file="template.html"-->思路:asp檔案進行常規的邏輯處理,運算,不用管顯示層,當然需要顯示的變數需要和顯示層結合(PHP也一樣),在模板檔案中用<%%>直接控制變數的顯示和邏輯的控制,不顯示的邏輯控制符用html注釋符<!---->注釋掉,當然,不注釋也是可以的.這樣在ASP檔案的最後"<!--#include file="template.html"-->"就實現了模板和ASP檔案的結合,實現了代碼和表現層的分離,這裡並沒有用ASP去Load模板,然後替換,浪費不必要ASP資源.這些處理全部都省去了。你會發現寫ASP檔案變得更加方便,因為你再也不需要在其中控制替換,邏輯顯示的行為。在ASP中直接執行肯定比替換要來得迅速和穩定.況且,載入模板的時候你必須還要載入一個組件.
寫到這裡,你也許明白了這種模板的精髓了,它只是一種設計模式,不是一個用模板類來處理的模板引擎。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.