對asp.net1.1開發(fā)模板類的修改說明
本次StringTempletReplet.dll組件更新了一些算法。主要是更依賴內(nèi)存里靜態(tài)變量內(nèi)的數(shù)值。這樣進(jìn)行asp.net1.1開發(fā)模板類,做到了在不改變模板的條件下。緩存模板,緩存委托,緩存標(biāo)簽解析數(shù)據(jù)。但是這會(huì)更消耗一些內(nèi)存。
為了可以動(dòng)態(tài)更換模板,不得不每次檢測文件的時(shí)間。在這個(gè)上消耗了不少時(shí)間。也許將來應(yīng)該去掉動(dòng)態(tài)更換模板的功能,只提供一個(gè)通知模板類重新讀哪個(gè)模板文件的接口。
取消了這個(gè)頁面 (RetuenString.aspx?。邮軜?biāo)簽字符串 返回解析結(jié)果)
畢竟標(biāo)簽不會(huì)做成一種腳本語言。這個(gè)功能沒有意義。
在講解asp.net1.1開發(fā)模板類之前先簡單介紹一下。有人說不知道怎么用這個(gè)模板類,其實(shí)模板類主要作用讀的不是整頁的模板。主要是讀頁面碎片模板。就是讀碎片,解析,顯示。
在web2.0站點(diǎn),比如blog開發(fā)。用戶自定義皮膚的頁面。或者說全靜態(tài)頁新聞系統(tǒng)更新中是有很大作用的。
標(biāo)簽的功能是通過標(biāo)簽解析函數(shù)來擴(kuò)展的。所以模板類的速度不光是StringTempletReplet.dll組件本身執(zhí)行的速度。還要加上標(biāo)簽解析函數(shù)執(zhí)行的時(shí)間。我例子提供的標(biāo)簽解析函數(shù)只是返回簡單的字符串。是為了方便說明一下。模板類做的只是提供一個(gè)舞臺(tái)。并盡量讓模板類執(zhí)行的時(shí)間快一些。至于標(biāo)簽解析函數(shù)是怎么執(zhí)行,用多少時(shí)間。那就是使用人的事情了。
正則替換模板類也寫過。但是自己測試在長度為200多萬的字符串上進(jìn)行標(biāo)簽定位分析。比指針定位要慢8倍以上。當(dāng)模板字符串長度不斷減小的時(shí)候。也許差距會(huì)漫漫減小。但是即使兩個(gè)的標(biāo)簽定位時(shí)間一樣。根據(jù)字符串不可改變性,對一個(gè)字符串不斷的替換會(huì)產(chǎn)生新的字符串。太消耗資源了。
Business.cs可以放在UI層,也可以放在邏輯層。只要繼承了FunctionList類就可以。繼承這個(gè)類只要重寫靜態(tài)構(gòu)造函數(shù)就可以了。在靜態(tài)構(gòu)造函數(shù)內(nèi)建立標(biāo)簽和標(biāo)簽執(zhí)行函數(shù)的對應(yīng)。
其實(shí)在以前的版本里寫過一種執(zhí)行標(biāo)簽。就是在標(biāo)簽名前加"執(zhí)行_"標(biāo)記
- {$執(zhí)行_標(biāo)簽名:參數(shù)1:參數(shù)2:參數(shù)3::字符10$}
這樣就不用重寫靜態(tài)構(gòu)造函數(shù)。是通過反射來執(zhí)行。但是速度很慢。后來就取消了。畢竟對模板類來說速度是很關(guān)鍵的。
我沒有固定的位置可以讓大家下載,以前是把壓縮文件該為gif圖片。傳到網(wǎng)易的個(gè)人資料里。但是后來網(wǎng)易對圖片進(jìn)行檢測了。讓大家下不了。我在找新位置吧。圖片位置會(huì)多變。
只要圖片還沒有被刪除??梢韵逻@個(gè)位置的圖片改為 Templet.rar 文件就好。
以上就是對asp.net1.1開發(fā)模板類的一些修改說明,希望對大家有所幫助。
【編輯推薦】