本次StringTempletReplet.dll組件更新了一些演算法。主要是更依賴記憶體裡靜態變數內的數值。
做到了在不改變模板的條件下。緩衝模板,緩衝委託,緩衝標籤解析資料。但是這會更消耗一些記憶體。
為了可以動態更換模板,不得不每次檢測檔案的時間。在這個上消耗了不少時間。也許將來應該去掉
動態更換模板的功能,只提供一個通知模板類重新讀哪個模板檔案的介面。取消了這個頁面 (RetuenString.aspx --接受標籤字串 返回解析結果)
畢竟標籤不會做成一種指令碼語言。這個功能沒有意義。有人說不知道總麼用這個模板類在此簡要說一下:
模板類主要作用讀的不是整頁的模板。主要是讀頁面片段模板。就是讀片段,解析,顯示。
在web2.0網站,比如blog開發。使用者自訂皮膚的頁面。或者說全靜態頁新聞系統更新中
是有很大作用的。
標籤的功能是通過標籤解析函數來擴充的。所以模板類的速度不光是StringTempletReplet.dll組件
本身執行的速度。還要加上標籤解析函數執行的時間。我例子提供的標籤解析函數只是返回簡單的字串。
是為了方便說名一下。模板類做的只是提供一個舞台。並盡量讓模板類執行的時間快一些。至於標籤解析
函數是總麼執行。用多少時間。那就是使用人的事情了。 正則替換模板類也寫過。但是自己測試在長度為200多萬的字串上進列標籤定位分析。比指標定位
要慢8倍以上。當模板字串長度不斷減小的時候。也許差距會漫漫減小。但是即使兩個的標籤定位時間
一樣。根據字串不可改變性,對一個字串不斷的替換會產生新的字串。太消耗資源了。 Business.cs可以放在UI層 也可以放在邏輯層。只要繼承了FunctionList類就可以。繼承這個類只要
重寫靜態建構函式就可以了。在靜態建構函式內建立標籤和標籤執行函數的對應。
其實在以前的版本裡寫過一種執列標籤。就是在標籤名前加"執行_"標記
{$執行_標籤名:參數1:參數2:參數3::字元10$}
這樣就不用重寫靜態建構函式。是通過反射來執行。但是速度很慢。後來就取消了。畢竟對模板類來說
速度是很關鍵的。 我沒有固定的位置可以讓大家下載,以前是把壓縮檔該為gif圖片。傳到網易的設定檔裡。但是
後來網易對圖片進行檢測了。讓大家下不了。我在找新位置吧。圖片位置會多變。 現在是 http://www.93913.com/Edit_html/UploadFile/20065/200652205536669.gif 只要圖片還沒有被刪除。可以下這個位置的圖片 改為 Templet.rar 檔案就好(不好意思,圖片被刪除了。現在項目組二期項目要上線我太忙了。老闆太黑壓力太大。我快受不了了。看了信箱才知道有下不了了。謝謝提醒)
link
/Files/vitality2007/TemplateWeb.rar