Ajax:定义与实现? (XML vs JSON vs Other)

时间:2009-02-14 16:21:56

标签: xml ajax json definition

AJAX实际上意味着异步Javascript和XML。这个术语的衍生是因为(据我所知),第一批启动此过程的人员通过XML将数据从服务器传输到客户端。最近(自从我开始实际使用它以来),JSON已经存在并且似乎是XML的真正替代品。从我的(可能是微薄的)测试和经验来看,JSON更小,更容易,更好地传输数据。

所以我的问题是:你用来与服务器/客户端进行通信(也可能是为什么)?或者,您听说过的“最佳实践”(及其原因)是什么?

全部谢谢!

10 个答案:

答案 0 :(得分:5)

我们通常更喜欢xml,因为它比JSON有一些优势,如:

  • 可以验证Xml,而json没有验证器
  • json中没有名称空间
  • 与json
  • 不同,Xml是可扩展的
  • Json通常被认为是不安全的

另一方面,json本身也有其优势:

  • Json更简单
  • 在客户端处理更容易
  • 出现问题时,调试可以轻而易举

最终,这取决于你想要开发什么,面向数据的东西我 喜欢json。

答案 1 :(得分:5)

哪一个更好用的是特定应用/需求。在浏览器端,JSON是更好的选择,而在服务器端,文件XML是更好的选择。使用正确的工具正确的工作。 JSON更倾向于数据,而XML更倾向于文档。浏览器Javascript代码本身支持JSON。

有关此帖子的更多详细信息,请参阅一个链接,其中每个示例都有更好的比较。 http://codebucket.co.in/which-one-is-better-xml-or-json/

答案 2 :(得分:3)

JSON与XML似乎是一个持续的争论 - 我宁愿选择JSON,因为它更适合支持mashup和AJAX小部件的Web服务,因为它本质上是序列化的Javascript对象(因此很容易使用Javascript )。

您可以在JSON or XML, Which Format to Choose?The AJAX response: XML, HTML, or JSON?上找到JSON和XML的优缺点的广泛比较

答案 3 :(得分:2)

我更喜欢在可能的情况下使用JSON:

  1. 它已经作为一个Javascript对象出现了,所以你需要做的就是在它上面调用eval()来获取它的所有数据。
  2. JSON是Javascript,所以对于那些已经了解JS但没有复杂的XML的人来说,这是一个很快的事。
  3. 在浏览器中,您不必经历解析XML对象的痛苦。 (您也不必在服务器上构建一个,但无论如何都必须创建JSON。)
  4. 这是一种更紧凑的数据传输方法。

答案 4 :(得分:1)

这些天我尽可能地倾向于JSON。与客户端编码相结合,它确实感觉更轻,更“自然”。

安全性最佳实践:永远不要盲目地评估JSON而不对接收的字符串执行检查,因为您可能正在执行某人已经“放置”到JSON字符串中的任意代码。

道格拉斯·克罗克福德在使用JSON时写了一篇好文章set of security principles

答案 5 :(得分:1)

当我看到AJAX一词时,我总是微笑。我笑了,因为我甚至在XMLHTTP存在之前很久就开始使用相同的技术,更不用说AJAX了。

我们在IE中的Intranet应用程序上做了与AJAX相同的事情,但是使用VBScript和Java applet而不是XMLHTTP。我们使用类似于JSON的东西,但是使用VBScript语法。

答案 6 :(得分:1)

理论上,由于验证和非验证,XML会很快。在实践中,您不能在客户端对DTD或模式进行合理的验证(或者在大多数情况下根本不验证)。尝试一下,你会看到。

XML也受到客户端冗长和消费的影响。除非您计划使用XSLT或其他东西并直接使用收到的数据包,否则您必须使用像生成的DOM一样砍掉数据。

最后XML无法合理地查看,直到它完成(至少客户端),所以你不能做部分检查。虽然公平,JSON也将面临挑战,具体取决于它的结构。

考虑到消费环境(主要是JavaScript),JSON有明显的优势。有关此选择的大量讨论以及其他内容,如YAML,CSV,base64编码数据,HTML片段等,在Ajax的第4章:完整参考(http://ajaxref.com),它只是关于数据类型。实例证明不易于处理,特别是在较不为人知的情况下。如果我必须选择一个JSON就可以了,但坦率地说,对于Ajax小型HTML片段的一些用法(因为它是slap and go)是实现它的方法。

答案 7 :(得分:0)

您也可以生成html并将该输出直接用于您的应用程序。 XML非常冗长,由于安全性,JSON在处理它时需要特别注意。

没有真正的'最佳实践',就个人而言,如果我在JSON和XML之间做出选择,我会使用JSON。虽然如果使用XML,您有一些有趣的查询可能性。

答案 8 :(得分:0)

我认为关于JSON与XML的争论表明JSON可以是 最佳实践。如果永远,我认为客户端 - 服务器传输速度不会很快消失。所以我认为JSON将在小型单独的问题上获胜(我相信JSON在它可以发送到哪个服务器方面也具有灵活性,但这自然会涉及所提到的安全问题)

也许我们应该开始称它为“AJAWX”(不带Xml的异步JAvascript)。

答案 9 :(得分:0)

我的选择是JSON。

由于:

  • 它快得多。您只需要从响应中评估JSON代码,而不是解析XML。
  • 它需要更少的代码。 eval()小于XML解析器代码。
  • 在客户端和服务器之间减少流量(要传输的数据量),从而加快处理速度
  • 更具可读性