2010-03-11 61 views
0

我們正在開發一個在線訂購網站,我們計劃在這個意義上是完全靈活的佈局可以改變,顏色,字體,並在頁面中的組件(div)可以添加。內容管理系統內容需要駐留

在這種情況下,我們是否需要存儲我們所有的查看代碼

例如

<div id="MenuContent"> 
    <div> 
     <h4> 
      Your Order</h4> 
     <hr /> 
     <%if (Model != null) 
      { %> 
     <table width="100%"> 
      <thead> 
       <tr> 
        <th> 
         Item 
        </th> 
        <th> 
         Quantity 
        </th> 
        <th> 
         Price 
        </th> 
        <th> 
         Remove 
        </th> 
        <th> 
         Total 
        </th> 
       </tr> 
      </thead> 

......

數據庫

,或者我們可以只存儲DIV ID並基於該加載文件系統中可用的視圖。 任何指針非常感謝。

回答

0

這真的取決於靈活性。如果yopu只想簡單地應用站點範圍的主題,那麼您可以使用標準類名創建HTML代碼並構建一個或多個組成您主題的CSS文件。然後添加一個新的主題,複製你的CSS文件並修改。

另一方面,如果您希望個人用戶創建自己的外觀,那麼將其存儲在數據庫中將會更合適。

0

請說明你正在嘗試做什麼以及你想要做什麼系統。

一般情況下,你不希望被保存HTML到數據庫...

+0

爲什麼你聲稱在數據庫中存儲HTML不需要? – Sonny

+0

我需要的原因是爲了讓用戶界面更加靈活。但我需要知道將內容存儲在數據庫中的不利之處。我們希望將所有視圖和局部視圖存儲在數據庫中。但是,至少不知道它的缺點是什麼。 – lee

+0

這聽起來像你正在考慮爲每個用戶在數據庫中存儲預生成的HTML,以便他們可以自定義某些頁面的外觀......是嗎? 這會導致數據庫中的條目非常多,並且每次用戶請求頁面時都會產生昂貴的I/O操作。 – MHarrison

0

什麼李某試圖做的是實際存儲,否則這將是ASPX文件在他的數據庫中的內容。如果您需要最大限度的靈活性以允許用戶(或至少非開發人員)能夠在不更改代碼的情況下自定義網站,這可能是有益的。還要注意他的'文件'中有ASP.NET標記。通常,ASP.NET系統會在請求時從磁盤加載這些文件,並將其編譯爲CLR。編譯完成後,對相同內容的進一步請求將引用編譯的代碼,而不是再次加載文件;至少在文件再次更改之前。這帶來了一些需要克服的技術障礙,比如如何使系統能夠覆蓋在aspx文件中查找文件系統的內置行爲,而不是從數據庫中自己檢索數據。網上有關於如何做到這一點的討論。那麼如何讓系統仍然緩存已編譯的程序集以及其他幾個想到的問題。

但是,如果可以解決這些技術障礙,如果靈活性是最終目標,這看起來像是一個非常靈活的方法。就將數據存儲在數據庫中而言,即使有很多條目,這也是數據庫的作用。 DB文件I/O可以通過緩存內容來緩解,因爲任何高性能系統可能已經在使用其他內容。是否已有系統的例子將系統的所有用戶界面存儲爲內容?我認爲一些更靈活的CMS系統必須這樣做。