首页 > JavaScript > Ajax 选择合适的数据格式
2009七月5

Ajax 选择合适的数据格式

之前的一系列jQuery实现Ajax的日志里面,一共提到了4种外部数据的格式,分别是:html,javaScript,json,xml。每种格式都可以通过jQuery的Ajax函数加以处理。而且,我们也验证了这4种格式都能够用来方便地处理任务,来实现我们想要的效果或者获取我们想要的数据。那么,当确定在应用程序中使用哪种格式时,应该考虑哪些因素呢?

HTML数据格式:

优点:HTML片段实现起来很是简单,基本上不需要啥太大的工作量,所以使用此方式人一般不会很累。只需要写静态页面就行了。这种格式的外部数据可以通过一种简单的方法加载并插入到页面中,甚至连回调函数也不必使用,因为使用此种方式无需遍历数据。

缺点:外部的HTML文件必须与目标容器(现有页面)的代码紧密结合,包括div标签啥的。例如,你在这个返回的外部html文件中,第一条语句就写</div>这是很容易造成页面飞掉的。基本是不可重用的。

JSON数据格式:

优点:JSON文件的结构使其可以方便的被重用。而且,它们非常简洁,易阅读,易维护。因为调用JavaScript的eval()函数就能解析此种格式的文件,所以在速度方面那是“PIA,PIA地”。

缺点:必须通过遍历来提取数据信息。并且eval()函数会带来固定的风险。并且如果JSON文件有错误,那么您的程序可以会自动终止执行的,所以此种数据必须有心腹小弟仔细进行人为的构建。(大家有好的自动生成的JSON工具可以推荐给我)

JavaScript数据格式:

优点:JavaScript文件能够提供极大灵活性。能够加载JavaScript,则意味着可以将很少乃至的行为提取到外部文件中,从而在加载该文件之前有效地减少页面的代码量。

缺点:这并不是一种真正的数据存储机制,因为此种文件针对特定的语言,所以不能通过它们将同样的信息提供给完全不同的系统。所以个人认为这并不是常规套路

XML数据格式:

优点:XML文档的可移植性是毋庸置疑的。并且其为Web服务领域的“世界语”,所以此种格式提供的数据使它极有可能在其他地方被重用。

缺点:XML文件体积相对较大,所以同其他文件格式相比,解析和操作它们的速度肯定要相对慢一些了。这是时间和空间上共同占用多的资源,呵呵。

总结:

通过以上分析,我们知道,在不需要与其他应用程序共享数据的情况下,以HTML片段提供外部数据一般来说是最简单的。如果数据需要重用,而且其他应用程序也可能因此受到影响,那么在性能和文件大小方面具有优势的JSON通常是不错的选择。而当远程应用程序未知时,XML则能够为良好的互操作性提供最可靠的保证。(直接无视JavaScript数据格式)。萝卜白菜,各有所爱,不管黑猫白猫,会抓“杰克”就是好猫。

感谢:

感谢《jQuery基础教程》的作者Jonathan Chaffer及翻译李松峰等,上面一大部分语言是直接摘录。勿怪。另特别感谢Google大妈,虽然您搜到的内容均出自同一人之手,但是内容和本文基本一致,看来不是这本书的读者就是这本书的作者。嗯。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/07/05/1082/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

20 Responses to “Ajax 选择合适的数据格式”

  1. #1 LAONB 回复 | 引用 Post:2009-07-05 22:13

    我来了,JSON我还没听过,JavaScript和XML见得多,XML的确够大,我的数据导出有10万行代码。

    [回复]

  2. #2 simaopig 回复 | 引用 Post:2009-07-05 22:25

    @LAONB
    晕。已经10W了啊?有些恐怖。。
    我其实很讨厌XML的,尤其用php处理XML,很烦人。嗯。

    [回复]

  3. #3 卢松松 回复 | 引用 Post:2009-07-05 23:18

    小子现在走高难度技术路线了!

    [回复]

  4. #4 simaopig 回复 | 引用 Post:2009-07-05 23:19

    @卢松松
    呃,没有啊。。只是这本书看到这里了。呵呵 :D

    [回复]

  5. #5 Lxhome 回复 | 引用 Post:2009-07-06 00:30

    都是些看不懂的天书,不关我的事,我是路过的!

    [回复]

  6. #6 Deloz 回复 | 引用 Post:2009-07-06 00:36

    Lxhome :都是些看不懂的天书,不关我的事,我是路过的!

    难以理解啊.

    [回复]

  7. #7 神兽 回复 | 引用 Post:2009-07-06 03:15

    @Lxhome :x 同感 :cry:

    [回复]

  8. #8 simaopig 回复 | 引用 Post:2009-07-06 05:47

    @Lxhome
    。。。打酱油请走左边。

    [回复]

  9. #9 simaopig 回复 | 引用 Post:2009-07-06 05:47

    @Deloz
    慢慢消化,理解不了没关系,别消化不良就好。

    [回复]

  10. #10 simaopig 回复 | 引用 Post:2009-07-06 05:47

    @神兽
    。。。。我做俯卧撑去了。

    [回复]

  11. #11 小明猪 回复 | 引用 Post:2009-07-06 08:30

    完蛋,发现我的知识越来越不够了
    PS:昨晚做梦我买了本英文版的jQuery基础教程,一边读一遍翻译 :evil:

    [回复]

  12. #12 micogle 回复 | 引用 Post:2009-07-06 09:24

    Lxhome :都是些看不懂的天书,不关我的事,我是路过的!

    咱俩是一个界别的

    [回复]

  13. #13 看海 回复 | 引用 Post:2009-07-06 11:25

    我用JSON+XML!!!!!!!!!!!!!!!!!!!! :o 谁用谁知道啊

    [回复]

  14. #14 simaopig 回复 | 引用 Post:2009-07-06 11:27

    @小明猪
    呃,我喜欢你的梦。。。呵呵。

    [回复]

  15. #15 simaopig 回复 | 引用 Post:2009-07-06 11:27

    @micogle
    呼,如果学编程的话你就能懂了,呵呵。

    [回复]

  16. #16 simaopig 回复 | 引用 Post:2009-07-06 11:27

    @看海
    我用的最多的也是JSON。呵呵。

    [回复]

  17. #17 bolo 回复 | 引用 Post:2009-07-06 12:07

    感觉最好的是xml

    [回复]

  18. #18 simaopig 回复 | 引用 Post:2009-07-06 12:08

    @bolo
    得看具体实际应用,一般如果请求PHP,从服务器返回的话,我喜欢用的数据类型是JSON。

    [回复]

  19. #19 看海 回复 | 引用 Post:2009-07-06 12:36

    10万行的XML。已经超出XML使用范围了。。再导出应该用SQL文件或者.dat文件

    [回复]

  20. #20 simaopig 回复 | 引用 Post:2009-07-06 15:29

    @看海
    从内心不喜欢XML,用不习惯。

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)