目前內容管理系統,展現給用戶端具體資料的方式主要是:XML+XSL 或者 Html 兩種方式。以CSDN為例,目前這兩種方式都存在。比如:論壇,我們用的是XML+XSL 方式,文檔中心我們用的是SHTML 方式。
根據我的使用心得。XML+XSL 的方式,優點在於:資料層跟展現分開了。XML定義資料,XSL定義顯示。比較明顯的缺點就是 1、有些使用者在裝了某些XML編輯器後,用戶端解析XML+XSL就會出問題,使用者直接看到的就是XML代碼,不時總有人抱怨自己沒法看CSDN的論壇了。原因基本上都是這些。(這個問題難以克服)2、進行複雜邏輯運算XML+XSL 比較差,一些複雜的邏輯運算會佔用用戶端很大的資源。比如在目前CSDN 論壇基礎上實現支援UBB的功能。就很複雜。如果這個UBB的展現運算是用戶端進行的,是任何人都無法忍受的。3、Google 不支援對XML 檔案的檢索。
使用Html的方式,優點很簡單,給的使用者就是需要展現的東西。缺點就是提取有效資料比較複雜。
今天在跟 “風之子” 交流內容、新聞系統如何展現的時候,我突然想起,我們可以同時利用XML+XSL和HTML的優點來做。具體做法就是把一些複雜的邏輯運算進行伺服器段轉換,把這些轉換為HTML代碼,然後把這些轉換後的內容儲存到XML資料的 <![CDATA[ ]]> 節。而展現給使用者的是XML+XSL方式,但是這種方式用戶端沒有複雜的邏輯運算。使用者端解析的壓力不是很大,一些複雜的功能這樣就可以實現,比如在CSDN論壇上支援UBB等複雜功能。
以前我一直反對在CSDN論壇支援UBB,一個重要原因就是會給客戶段增加壓力。現在可以通過上面提到的整合進HTML的XML+XSL 方案應對這個問題。下一代的CSDN 論壇就可以這麼做了。不過另外一個原因是,技術交流的BBS,有必要做那麼花哨嗎??尤其是很多人在自己的簽名中,增加很大的字型,很特殊的圖片,會不會帶來跟多的問題??
HTML中整合進XML的方式,就是資料島的方式,這個的應用範例可以看大富翁論壇。那就是一個很有代表性的應用資料島的方式。開啟某個CSDN 論壇,左邊的樹會自動同步功能,也是用的資料島記錄需要同步到那個節點的資料。
另:Shtml 的方式,其實就是支援Include 的Html。 你可以在Shtml中使用Include 包含一些htm檔案。
百度可以找到CSDN論壇的XML文章:
http://www.baidu.com/baidu?lm=0&si=&rn=10&ie=gb2312&ct=0&word=site%3Aexpert%2Ecsdn%2Enet+%BD%AF%EA%C9&cl=2