XML+XSL 与 HTML 两种方案的结合


Posted in Javascript onApril 22, 2007

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

Javascript 相关文章推荐
xml和web特殊字符
Apr 28 Javascript
跨域表单提交状态的变相判断代码
Nov 12 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
js前台分页显示后端JAVA数据响应
Mar 18 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
JS常用字符串方法(推荐)
Jan 15 Javascript
AngularJS 服务详细讲解及示例代码
Aug 17 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
Jan 11 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
Javascript ParentNode和ChildNode接口原理解析
Mar 16 Javascript
jQuery 动画与停止动画效果实例详解
May 19 jQuery
用javascript实现的图片马赛克后显示并切换加文字功能
Apr 21 #Javascript
JS Timing
Apr 21 #Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
Apr 21 #Javascript
JS 建立对象的方法
Apr 21 #Javascript
如何做到打开一个页面,过几分钟自动转到另一页面
Apr 20 #Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
Apr 20 #Javascript
在textarea中显示html页面的javascript代码
Apr 20 #Javascript
You might like
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP加密解密类实例代码
2016/07/20 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
Javascript 面向对象之重载
2010/05/04 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
python模块导入的细节详解
2018/12/10 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
python实现翻译word表格小程序
2020/02/27 Python
详解python变量与数据类型
2020/08/25 Python
男方父母证婚词
2014/01/12 职场文书
提拔干部考察材料
2014/05/26 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
代办出身证明书
2014/10/21 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
收银员岗位职责
2015/02/03 职场文书
吃通javascript正则表达式
2021/04/21 Javascript