讨论一下,XML在动态网站中到底有多大用?(100分)

  • 主题发起人 主题发起人 左轻侯
  • 开始时间 开始时间

左轻侯

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在用JSP来直接生成html
如果要用XML,就要用JSP生成XML,然后用XSL或taglib来格式化成html,
多此一举有什么好处呢?
据说这样可以强制把页面和代码分离。但我自己注意一点也可以做到,
何用它来强制?
这样也可以实现skin。但我用css也可以实现,再说我现在根本不需要skin
我想到的就是,象dfw那样,把xml放到客户端解析,这样可以减轻服务器
的负担。但是我不能那么干,因为我不能保证每个访问者都装着XML parser
给我个用XML的理由先?
 
老大呀,数据与显示分离的好处你应该明白呀。
其实我感觉用XML提高服务器的速度并不是解析。你想如果用HTML,也不可能在服务
器解吸HTML吧?我认为主要是XML通过XSL来解析界面,那么大量的界面数据就可以省略下
载,是通过这样来减轻服务器的负担的。比如我们浏览DFW的N多个帖子,然后用到的XSL
就那么几个,只需要浏览器一次下载,而以后的浏览都只需要下载XML的信息数据就可以了
这是我的个人看法,不知正确不。
还有用CSS的确有限制的呀,CSS对文件是一个修饰作用,而XSL对数据是一个格式化显
示的作用。
 
其实我对这个问题也有疑问.
我觉得吧,做动态网页其实ASP足够了,XML只是为了不同系统之间的数据
交换进行统一格式罢了,所以做网站,不用也罢.
 
运通,你说的也有道理
不过,大多数时候是不会把XML放在客户端解析的
 
XML 要在行业形成规范,结合Web Application 比较好.
便于"活"数据的查询.
但是XML的垃圾太多.
MS 在 .not 平台上到处都用,连数据结构都用它定义.
 
可以在客户端使用脚本来操作XML数据,也是一个优点
 
将数据/逻辑/显示的最大好处是便于维护和扩充修改。这一点对于越大规模的网站好处越大。
这个理念直接导致了cocoon的生成。说远了。
大家好象只注意到xml可以把显示和数据相分离。忽视了它可以有助于分离逻辑和显示的能力,
举个列子,我们接受到用户端的请求,然后根据用户请求进行一系列逻辑运算,期间比如要查询
数据库,整个逻辑运算步骤不需要考虑显示的问题,只和数据打交道,最后得到的结果也是一系
列xml数据。然后根据事先定义好的XSL进行转换,可以转换为HTML/WML/PDF。。,同样的数据可
以被转换为任何你想要的显示形式。(值得一提的是,格式化是由xsl-fo来完成的,你甚至可以
把同样的xml格式化为音频流) 特别重要的是,此后,我们就可以任意的修改运算逻辑而不
必修改显示(只要你的逻辑运算结果为期望的xml形式的数据),也可以任意修改显示而不必理会
逻辑部件(只需为同样的逻辑运算生成的xml数据编写不同的xsl文件)。
还有一个显而易见的好处是,有许多应用是不需要显示的,这样它可以只和WEB服务器通讯得到
xml数据文件,不需要xsl。特别是当XSD为xml数据带来类型化能力后,极大的加强了这方面的能
力,典型的列子就是WEB Service技术。
因此,结论就是同样由逻辑运算生成的xml文件,可以经由事先定义的xsl转换为各种显示形式
(这种转换可以在服务器端也可以在客户端完成,如大富翁所做的就是在客户端转换为html)
也能经由xsd成为完整的数据,为不同平台的应用系统间的通信/数据交换带来好处。并且
数据/逻辑/显示的分离也给维护和扩充带来极大方便。
——the end.
 
oskiller:
您说得非常好!!!
请教一下,xml如何入门?如何提高?
 
我觉得使用xml最大的好处是便于维护和开发的时候便于调试.
最大的缺点是:无形之中,将数据扩大了1/3.
 
XML在动态网站中到底有多大用?其实没多大用处。
理论上的优势,和实际中的有效,还差得十万八千里。
就好象大家都喜欢说MVC模式如何如何的好,
结果在VB或者delphi里直接在一个form上扔控件、写代码
大家也不都用的好好的。
XML本来就是种替代性技术,没有XML,各种功能也照样完成。
CSDN不知道出于什么原因在网页上用了XML,结果从投票的情况
看来,反对的人居多,起码它使得把网页另存为的功能,不怎么好用。
很多人喜欢说XML的扩展性,那这种扩张性到底在多大程度上被需要,
实在是天知道。
 
看你做什么了,如果做到WEBSERVICES你就要用到XML,具体的可到java.sun.com下一个
web services的指南看看
 
虽然看不明白,听听,可以吗?
 
赫赫,oskiller已经说得非常好了。我再多此一举,说一点实际的应用。
比如说,大家在编写CS结构程序的时候常常会用到这样的界面设计:用户输入一个客户编号,
在一个label中就可以显示出这个客户的详细名称。这一点用C/S结构很容易实现,重新做query
一次就可以了。但是如果用b/s结构来写的话,就够头疼的了。整个叶面刷新一次?用户填表还
只填了一半呢,不能刷新;那你想到用iframe?比如说xici的留言飞语那样的做一个iframe,每隔
20秒钟刷新一次,然后再更新主叶面里面的内容?那编程也够复杂的,而且用户会时不时地看到
IE窗口下面的进度条刷一下,很不舒服。这个时候,就需要用可以直接建立连接的技术了。
实际上这时候用不用XML都无所谓,直接用inet控件取回一个结果叶面也是可以,但是如果用XML,
你至少有如下的好处:
- IE已经内置XML解析器,你可以很容易的分离出你传递回来的结果,不需要自己去写分析程序分析;
- 有类型的XSD可以帮助你处理不同的格式;
- IE内置XMLHTTP,可以方便的上传/得到结果。
例子:
function backgroundGet(homeClass,getListMethod,filterStr,retrieveFields,callback)
{
var xmlHttp = XmlHttp.create();
var async = true;
xmlHttp.open("POST", "../share/provider.jsp?home="+homeClass
+"&getList="+getListMethod
+"&retrieve="+retrieveFields, async);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4)
{
alert(xmlHttp.responseText);
eval (callback+"(xmlHttp.responseXML);");
//or onXMLReturn(xmlHttp.responseXML);
// responseXML : XmlDocument
}
}
xmlHttp.send(filterStr);
}
- 这样以后还很容易升级到web service.因为其实原理都是一样的。
 
曹晓钢:
您的例子写得挺好的,但是,我看了半天了,还是不懂,能否
再讲的简单一些啊?
 
由于最近在研究FLASH,发现XML的价值
对于动态的HTML也许XML表现还是可有可无
但如果你要作个动态的FLASH页面则XML则是太有价值了
FLASH - XML对象 <-->request,response - ASP,JSP等动态页面 -数据库
这中间XML成为了一座桥梁,将FLASH与ASP或者说,是将FLASH与数据库连接了起来
 
XML是不错,不过在LINUX下的解析实在太糟糕了!例如本站我在LINUX下完全不能访问,只有一堆无格式的词语放在那里。当然这可能跟XML技术无关,是和浏览器有关,可是这样总是让人不舒服。
 
xml技术对于webserver最直接的体现就是SOAP
SOAP(简单对象访问协议)是一种利用XML编码数据的有线协议。它是同类协议中要求最低的一个规范,只定义了有线协议所要求的最关键的部分,有意地忽略了垃圾收集、对象激活等方面的细节。
SOAP对于Java开发者来说尤其重要,因为它让平台无关和可移植的Java程序更容易协同操作,使得Java的宝贵特性进一步增值。事实上,如果Java 2平台企业版(J2EE)的下一个版本让SOAP成为一种必须遵循的有线协议,规定所有遵从J2EE规范的应用服务器都必须支持SOAP协议。
 
我觉得有一点大家忽略了,XML不是给人看的,是给机器用的。
比方说我要通过一个动态网站来获得信息并输入到我的系统中,而这个网站每天更新的信息很多(我也不多说1000条好了),而我需要的信息只有其中的1/10(也就100条[:)]),如果这个网站是html的,我看我只有手工作,即便可以编程来作也会累死[:(],可以用xml的话就省事多了[^]。(注:因为有的用户可能1年才要更新10条数据,所以web现实必不可少)
 
sigh
这个问题就好象delphi和vc一样
delphi完全可以做到,一样好,甚至效率更高,但不明白为什么
偏要用vc做
 
多一层转换,就会增加开销和出错的几率,为了用XML而XML我认为不很是;逻辑和界面分离,不是XML的专利;XML为什么这么火?因为它提供了在不同的数据源(不同OS、不同访问方式、不同DBMS)之间无差别数据交换能力!
故,我认为对于XML最好只是拿来作数据交换(实际上我们的系统一直是这么作的),至于其他方面,只选合适和顺手的,至于时髦的就不一定需要了
 
后退
顶部