對模板引擎的思考

2021-06-23 08:02:11 字數 1375 閱讀 9905

當前,web開發已經變得非常火爆,因為各種應用,已經約來越要求表現層和邏輯層的分離.asp和html夾在一起程式將變得難於維護,可讀性也差。在php領域,模板引擎已經非常普遍,如phplib,smarty,等等.有使用替換方式的,也有編譯方式的(smarty),它們都較好的實現了邏輯層和表現層的分離.由於php的影響,在asp界有人借鑑phplib等使用替換的方法開發出asp的模板類,由於asp在字元處理上效能並不是很強大,所以在速度上受到影響,這樣的模板在目前的應用也不是很廣泛。如:

//如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不註明出處的人 seven1

2367

8912<%

3templatecode=load("template.html")'自定義函式,裝載模板檔案到templatecode

4templatecode=replace(templatecode,"","asp模板引擎終結者")'替換模板

5templatecode=replace(templatecode,"","asp模板引擎終結者內容")'替換模板

6response.write templatecode

7%> 上面的例子只是初步展示了當前asp模板的思想,有asp版的cms系統已經嵌入了對模板的邏輯控制,雖然能夠實現邏輯和介面的分離,但是這種模板存在的問題就是模板需要每次都用asp解析一次,程式相當於解析兩次,而且當要替換的內容很多的時候,將會降低效能.而且裝載模板需要伺服器支援一種元件(fso,adodb,xmlhttp均可實現).

借鑑於編譯型的模板,我在asp中引進這種思路.提出一種應用在asp中的功能和效能都很優良的模板體系.下面用**表示: 1

2 36

7 12 <%=music%>

13 14 <%=book%>

15 16

17 1

2 <%

3 title="asp模板引擎終結者"

4 catalog="music"

5 music="**"

6 book="書"

7 %>

8 思路:asp檔案進行常規的邏輯處理,運算,不用管顯示層,當然需要顯示的變數需要和顯示層結合(php也一樣),在模板檔案中用<%%>直接控制變數的顯示和邏輯的控制,不顯示的邏輯控制符用html注釋符注釋掉,當然,不注釋也是可以的.這樣在asp檔案的最後""就實現了模板和asp檔案的結合,實現了**和表現層的分離,這裡並沒有用asp去load模板,然後替換,浪費不必要asp資源.這些處理全部都省去了。你會發現寫asp檔案變得更加方便,因為你再也不需要在其中控制替換,邏輯顯示的行為。在asp中直接執行肯定比替換要來得迅速和穩定.況且,載入模板的時候你必須還要載入乙個元件.

寫到這裡,你也許明白了這種模板的精髓了,它只是一種設計模式,不是乙個用模板類來處理的模板引擎。

對無效思考的思考

昨天思考了乙個無聊的問題,並且打算用它來練習markdown文件編寫。但是聊著聊著發現場子鋪的太大,無法收場不說,連自己都感覺很無聊。所以想到了無效思考這個話題。在思考了乙個沒有結論的無聊的話題之後,我感覺生活中的八卦新聞 十萬個為什麼這些也是無效思考。雖然我又想到乙個無聊的話題,去談談是否應該讓小...

PHP原生模板引擎 最簡單的模板引擎

複製 如下 php a array a b c require template demo.php 引用模板 程式設計客棧 模板檔案 複製代gkugmrgq碼 如下 程式設計客棧ype html 模板測試 a 程式設計客棧1 複製 如下 陣列的迭代 smarty 鍵值 對於php程式設計師那個更好理...

模板引擎的存在

以前學習php的時候不清楚模板引擎的作用,看別人使用了,呢麼自己也用了。後來我做了幾個專案覺得模板引擎存在的意義沒有啊,我經常都是直接使用原生的php自己做。我一度不明白,模板引擎存在的意義是什麼。最近,我想了想,以前程式和前台都是乙個人做的,所以使用引擎沒什麼用。但是如果程式在後期維護的時候,還是...