2009-01-24 96 views
2

在處理用戶輸入的標記時,您可以使用任何建議。 wiki或降價。我有兩個CPU &數據庫空間成本,所以我不知道要走哪條路。在數據庫&即時渲染標記或存儲html?

  1. 商店標記渲染 HTML服務器爲每個網頁瀏覽上。 (較少的數據庫空間,但更多的CPU使用率)的數據庫&

  2. 商店標記渲染 HTML使用JavaScript在客戶端上。 (可能更難以實現)

  3. 商店只是在 數據庫&轉換回如果需要 編輯來標記呈現的HTML。 (再一次,可能很難實現)。

  4. 將兩個html &標記存儲在 數據庫中。 (雙倍數據庫空間)。

  5. 別的東西。

(我正在使用MFC & Linqtosql)。

回答

7

我會將它作爲Wiki標記存儲在數據庫中,然後將轉換後的HTML輸出保存在Web服務器緩存中的內存中。無論您使用哪種Web技術,都應該支持這一點 - 一個基本的元組(hashtable),用於輸入url,或id或類似內容。

+0

擊敗我,爲你+1。 – 2009-01-24 13:08:09

1

我會存儲標記並呈現html服務器端。您可以使用服務器端緩存來減少您執行的實際計算量,並且您可以保留具有合理語義的表示,並且可以在需要時將其呈現爲text/html/pdf。

1

最簡單的方法是在渲染時間戳中存儲標記並將其按需顯示在緩存中(可能在磁盤上或在memcached中)。這樣,您可以檢查是否需要再次渲染,因爲標記已更改或僅提供緩存的HTML。這是大多數Ruby on Rails應用程序/ CMS的工作方式。

1

我會將它作爲RST標記存儲在數據庫中,並根據需要轉換爲HTML。由於您可能使用前端(例如JSP,PHP,Django或其他呈現模板語言的其他語言),因此額外的RST處理不會引入太多開銷。

在決定實現一個複雜的緩存機制之前,實際上會測量將標記渲染爲HTML的實際開銷。

「(更少的數據庫空間,但更多的CPU使用率)」不是一個衡量的事實,這是一個假設,可能會變成不正確。