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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
javascript 通用简单的table选项卡实现
May 07 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
Apr 14 Javascript
JS动态添加option和删除option(附实例代码)
Apr 01 Javascript
使用Bootstrap打造特色进度条效果
May 02 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
Jul 13 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 Javascript
浅析vue.js数组的变异方法
Jun 30 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
Jan 08 Javascript
浅析Vue 中的 render 函数
Feb 28 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 Javascript
vue中data里面的数据相互使用方式
Jun 05 Vue.js
用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安装攻略:常见问题解答(二)
2006/10/09 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
使用eslint和githooks统一前端风格的技巧
2020/07/29 Javascript
改进Django中的表单的简单方法
2015/07/17 Python
numpy自动生成数组详解
2017/12/15 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Random 在 Python 中的使用方法
2018/08/09 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
Python文件操作基础流程解析
2020/03/19 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
学习型家庭事迹材料
2014/12/20 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
《春酒》教学反思
2016/02/22 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
同学聚会开幕词
2019/04/02 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python