将动态aspx页面转换成为静态html页面的几种方法
1.???????? 模版法
該方法歷史悠久,具體處理流程為采用一個html模版,將其中的關鍵字替換為我們希望的信息。
優點:
缺點: 所有的信息都要采取字符串批湊的方式來實現,比如需要一個列表,就需要拼湊字符串。問題是開發周期長,可擴展性非常差,而且不易維護,難修改。
2.???????? 截取Control.Render()中的HtmlTextWriter的數據。
優點:
該方法比較方便而且靈活,在開發中不必顧慮動態和靜態頁面的統一處理模式。基本上按照動態頁面的處理過程處理就Ok了。
并可在轉換為靜態html頁面的時候過濾掉一些多余的數據及在適當的地方插入數據。
數據插入可考慮采取在靜態頁面中做標記的處理方式,如<!—Content Beginà一些正文<!--Content End ?--> ,采取判斷<!-- Content End ?-->標記的方式將需要加入的數據加入到該標記的前面,也可利用該方法替換掉一些在動態頁面中做好<!-- -->標記的原本用于動態回發等處理的邏輯。
?
方案架構一:
l???????? 通過一個動態aspx轉換html生成器頁面來負責生成靜態的頁面。針對帖子Topic和論壇列表都有各自的Generator程序。Generator程序為aspx類型!執行時,將通過一定的驗證模式驗證操作是否合法。
l???????? 通過一個后臺線程或者Windows服務來跟蹤數據庫中已經標記好的尚未生成或者已經更新的但是也尚未靜態化的數據列表,通過WebRequest來訪問靜態頁面生成器程序,通過一定的參數形式將欲生成的數據標識和生成動作通知給生成器Generator。
l???????? Generator驗證請求是否合法,然后執行生成動作,將動態網頁生成為靜態html頁面。
方案架構二:
l???????? 論壇下的大部分動態aspx頁面其實都繼承自一個頁面生成器基類,該基類正常狀態下是不激活的。該基類含有能夠生成靜態html的操作函數。
l???????? 通過一個后臺線程或者Windows服務來跟蹤數據庫中已經創建或更新的數據,根據數據的內容通過WebRequest來訪問動態網頁的內容,并加上特殊的啟動生成器基類生成數據的標記(該標記可為加密的驗證邏輯)。
l???????? 動態頁面根據請求啟動生成html的功能,通過指定的處理類將相應的靜態文件生成到與其路徑完全相同的路徑下。
如處理TopicView.aspx的生成靜態html的類通過TopicViewHtmlGenerator類來處理。
l???????? 該架構設計靈感參照淘寶的架構而來。
?
與動態網頁結合,開發上的顧慮減輕,代碼重復勞動減少,保持面向對象特征。
轉載于:https://www.cnblogs.com/sntetwt/archive/2011/04/28/2031993.html
總結
以上是生活随笔為你收集整理的将动态aspx页面转换成为静态html页面的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一步一步实现自己的模拟控件(9)——消息
- 下一篇: Javascript获取页面、屏幕尺寸大