Ajax中XML和JSON格式的优劣比较

上一篇 / 下一篇  2008-03-07 16:00:45 / 个人分类:LAMP

!g&@ g/@W,x A0y0来源:http://blog.csdn.net/heiyeshuwu/archive/2006/04/20/670713.aspx木铎校园 BBS 社区*J9[~WB/H

5wc[V,t$O0刚做完一个小的使用Ajax的项目。整个小项目使用Javascrīpt做客户端,使用PHP做服务器端、利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式。做完后基本做一个简单总结,简单分析一下使用XML作为传输格式的优劣

1{`ws?.hB|J0木铎校园 BBS 社区I bn/`(q)z I

[  XML ]木铎校园 BBS 社区5OI5~n9O8v%n2A
使用XML作为传输格式的优势:木铎校园 BBS 社区(f!_-e Wo {
1. 格式统一, 符合标准
3{ P9x#Jei02. 容易与其他系统进行远程交互, 数据共享比较方便木铎校园 BBS 社区g!~1F/j(Bm i W

木铎校园 BBS 社区 n j(O v3ICF6\

缺点:
B_Nma.sx*xY1C01. XML文件格式文件庞大, 格式复杂, 传输占用带宽木铎校园 BBS 社区X4q7FC1]
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护木铎校园 BBS 社区?C0[!t C2\ p
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码木铎校园 BBS 社区 Q+E5jk u0m
4. 服务器端和客户端解析XML花费资源和时间

~0o0f-b(XE7A\ p0木铎校园 BBS 社区P R \h?Kfy


$b%\#[ Ig0[ JSON ]
` }KWe/t0那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (Javascrīpt Object Notation) 的轻量级数据交换格式能够替代XML的工作.

~utcFPzP0

PSl K"xo,R Oeo0优点:
"u4PSV j8W01. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小木铎校园 BBS 社区kA0I9`%y.l8I%V
2. 易于解析这种语言, 客户端Javascrīpt可以简单的通过eval()进行JSON数据的读取
4qK PJ1{$hI5h03. 支持多种语言, 包括Actionscrīpt, C, C#, ColdFusion,Java, Javascrīpt, Perl, PHP, Python, Ruby等语言服务器端语言, 便于服务器端的解析
'c yJ#s:v04. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.木铎校园 BBS 社区)A4q'lE3\W
   另外PHP的PEAR类已经提出了支持 (http://pear.php.net/pepr/pepr-proposal-show.php?id=198)
pz,DN b05. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护木铎校园 BBS 社区 y M&KR Z*sP:m+U

WuZ(F(E0缺点:
_t ]G+}'S01. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性木铎校园 BBS 社区:LB6V x:y-Z;_
2. JSON格式目前在Web Service中推广还属于初级阶段

6{"Gk tH0

@8Sza`7o b;|B)fsU0PS: 据说Google的Ajax是使用 JSON+模板 做的

'GzDog%c0木铎校园 BBS 社区:kRg8A1X$m,af,w3G6m


+^h(c n3A!p)\0[  JSON相关链接 ]
!k R}-?ehN0官方网站:http://www.json.org/
G{x _U0官方网站中译:http://blog.patterns.cn/json/木铎校园 BBS 社区kb(Y!\TB7sN+V OX\i
PEAR::HTML_AJAX:http://pear.php.net/package/HTML_AJAX(相当成熟的Ajax框架, 使用JSON进行数据传输, 包含丰富的客户端和服务器端)
!g-v-n+y[ E7G0Services_JSON:http://pear.php.net/pepr/pepr-proposal-show.php?id=198木铎校园 BBS 社区,GE$H aq|ji
PHP JSON扩展:http://www.aurore.net/projects/php-json/木铎校园 BBS 社区!mc g8kgp6n8w+Y
PHP和Javascrīpt使用JSON交换数据:http://www.flyinghail.net/archives/10木铎校园 BBS 社区&z4x5A8n+Nev8@!~-]
Ajax Using JSON:http://www.x2blog.cn/lulei/3851.html
%U~m2RjKwR0XML跟JSON相应比较文章:http://blog.hexun.com/dulao5/912477_d.html木铎校园 BBS 社区B$X v4zw+iv
让Service_JSON支持中文:http://blog.sina.com.cn/u/55acd28f01000113

3_HJd'{0s?0

;hV4LEZ DMu0
m*_XJ)b M P3o|#w0He0[  目前成熟的客户端框架]木铎校园 BBS 社区*V S)jTA0X8@
Xajax:http://xajax.sourceforge.net(目前在国内使用比较广泛,跟Smarty模板结合良好)木铎校园 BBS 社区*jYG3n(a5YT"g&F
Sajax:http://www.modernmethod.com/sajax/(框架比较复杂,支持语言较多)

0o*i#OR|0木铎校园 BBS 社区W]r5o/Y+D T}I

AJAX框架汇总:http://www.huihoo.com/web/ajax/ajax-frameworks.html木铎校园 BBS 社区/Z q#uGK%Jr Osa


TAG: ajax Ajax XML JSON 优劣 blog

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

关于作者