快捷搜索:  88888  E語言  as  test  asp  C語言  www.dnf97.com  php

使用模板實現ASP代碼與頁面分離

每個進行過較大型的ASP-Web應用程序設計的開發人員大概都有如下的經歷:ASP代碼與頁面HTML混淆難分,業務邏輯與顯示方式絞合,使得代碼難以理解、難以修改;程序編寫必須在美工之后,成為項目瓶頸;整合的程序代碼和HTML靜態頁面時,花費大量的時間才能得到理想的效果,兼作了美工。的確,用腳本語言開發Web應用不容易將數據的處理和數據的顯示分開,但在多人合作的情況下,如果無法將數據和顯示分開,將大大影響開發的效率,專業分工的發揮。

其它的腳本語言,如JSP、PHP都有自己的解決方案,ASP的后一代產品ASP.NET也實現了代碼與頁面,似乎直接過渡到ASP是不錯的選擇。但是總有這樣或那樣的原因讓我們不能或暫時不能放棄ASP直奔.NET大營。從公司角度來看,轉換語言是一筆不少的投資,包括雇傭熟手.NET程序員、培訓原有程序員、開發工具的轉型、開發風格的轉型、界面風格轉變、接口風格、軟件架構、文檔、開發流程等等;這還意味著原有的代碼必須在新語言環境里重寫以實現最佳的效果和穩定性;同時將直接影響這段時間內項目的進度,更有可能導致個別程序員出走。由此看來在您決定轉換語言之前,在原基礎上尋求一種解決方案,才是最好的選擇。

PHP通過模板實現代碼與頁面,可供選擇的有FastTemplate、PHPLIB、Smarty等多種,其中PHPLIB的影響最大、使用最多。既然如此,我們直接把它搬到ASP來,對于同時使用PHP和ASP的公司還有很有好處:一、美工處理頁面時,不管將要套用PHP還是ASP,處理方式是一樣,無須經過培訓;二、程序員編寫代碼時,兩種語言間的思路接近或一致,相同功能在兩種語言實現時,只需拷貝過來略作修改即可,保證了工作效率和項目進度。

1、模板類的設計

實現代碼封裝成為模板類,即是為了與PHPLIB兼容,也使得代碼方便管理與擴展。
模板類要實現的目標為:從模板文件中讀入顯示的HTML代碼,將這些顯示代碼中需要動態數據的地方替換為ASP程序運算所得出的數據,然后按照一定的順序輸出。其中,替換的部分可以自由的設定。因此它必須完成如下任務:

    ·從模板文件中讀取顯示用的HTML代碼。
    ·將模板文件和實際生成的數據結合,生成輸出的結果。
    ·允許同時處理多個模板。
    ·允許模板的嵌套。
    ·允許對模板中的某個單獨的部分進行處理。

實現方法:

采用FSO讀取模板文件
采用正則替換實現模板文件和數據的結合
處理多個模板用數組存儲來實現。

模板的嵌套的實現主要的想法是:將模板和輸出(任何中間的分析結果)一視同仁,都可拿來做替換,即可實現。

單獨部分的處理的通過在模板文件中設定標注,然后在正則替換中結合標注來控制,實現部分替換。

2、模板類的實現

給出具體代碼之前,先把主要函數列出,用過PHPLIB的朋友應該對此很熟悉了:


1)Public Sub set_root(ByVal Value) 設定模板默認目錄
2)Public Sub set_file(ByVal handle,ByVal  filename) 讀取文件
3)Public Sub set_var(ByVal Name, ByVal Value, ByVal Append) 設置映射數據-替換變量
4)Public Sub unset_var(ByVal Name) 取消數據映射
5)Public Sub set_block(ByVal Parent, ByVal BlockTag, ByVal Name) 設置數據塊
6)Public Sub set_unknowns(ByVal unknowns) 設定未指定映射的標記處理方式
7)Public Sub parse(ByVal Name, ByVal BlockTag, ByVal Append) 執行模板文件與數據的結合
8)Public Sub p(ByVal Name) 輸出處理結果
 

您可能還會對下面的文章感興趣:

25选5开奖结果走势图