国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

asp模板引擎終結者(WEB開發之ASP模式)

2020-07-27 13:36:12
字體:
來源:轉載
供稿:網友
闡述一種全新的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中直接執行肯定比替換要來得迅速和穩定.況且,加載模板的時候你必須還要加載一個組件.
         寫到這里,你也許明白了這種模板的精髓了,它只是一種設計模式,不是一個用模板類來處理的模板引擎。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 库伦旗| 土默特左旗| 宜州市| 八宿县| 台前县| 团风县| 清水河县| 黔江区| 新绛县| 丰台区| 犍为县| 容城县| 海淀区| 阜南县| 海南省| 乌恰县| 衡水市| 石屏县| 德阳市| 公安县| 报价| 新兴县| 崇仁县| 襄垣县| 隆子县| 新乡市| 洛川县| 阿巴嘎旗| 嵊州市| 永兴县| 厦门市| 雷州市| 安义县| 嘉兴市| 瑞安市| 城固县| 托克托县| 浦县| 达拉特旗| 宁陵县| 虎林市|