目前内容管理系统,展现给客户端具体数据的方式主要是: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数据的 节。而展现给用户的是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
