English 中文(简体)
Ajax:定义 vs 实现?(XML vs JSON vs 其他)
原标题:
  • 时间:2009-02-14 16:21:55
  •  标签:

AJAX实际上是“异步JavaScript和XML”的意思。这个术语的来源是因为(据我所知的故事),最早开始这个过程的人通过XML将数据从服务器传输到客户端。最近(自从我开始使用它以来),JSON已经出现了,并且似乎是XML的真正替代品。根据我的(可能是有限的)测试和经验,JSON更小,更易于使用,更适合传输数据。

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

谢谢大家!

最佳回答

JSON与XML的争论似乎是个不断的话题——我更喜欢使用JSON,因为它更适合驱动混搭和AJAX小部件的Web服务,它本质上是序列化的Javascript对象(因此很容易与Javascript一起使用)。

你可以在JSON或XML,哪个格式更好选择?AJAX响应:XML,HTML或JSON?找到JSON和XML优缺点的广泛比较。

问题回答

通常我们倾向于使用XML,因为它具有一些JSON所没有的优势,例如:

  • Xml can be validated while json has no validator
  • No namespaces in json
  • Xml is extensible unlike json
  • Json is generally considered insecure

另一方面,JSON本身有它的优点:

  • Json is simpler
  • It s easier to process on the client side
  • Debugging can be a breeze when something goes wrong

In the end it depends on what you are trying to develop, for data-oriented stuff I prefer json.

哪个更好使用取决于应用/需求。在浏览器方面,JSON是更好的选择,而在服务器端处理文件时,XML是更好的选择。用正确的工具做正确的工作。JSON更加偏向于数据,而XML则更偏向于文档。JSON是浏览器Javascript代码的本地支持。

有关此帖子的更多详细信息,请参考链接,其中有更多漂亮的比较和示例。http://codebucket.co.in/which-one-is-better-xml-or-json/

在可行的情况下,我更喜欢使用JSON。

  1. It already comes as a Javascript object, so all you need to do call eval() on it to grab all its data.
  2. JSON is Javascript, so it s faster to grok for people who already know JS but don t have the intricacies of XML down.
  3. In the browser, you don t have to go through the pain of parsing an XML object. (You also don t have to build one on the server, though you do have to create the JSON anyways.)
  4. It s a more compact method of transferring data.

我现在尽可能地倾向于使用JSON。与客户端编码结合起来,它感觉更轻量和更“自然”。

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

道格拉斯·克罗克福德编写了一份关于使用 JSON 时的良好安全原则集

每当我看到“AJAX”这个术语时,我总是会微笑。 我微笑是因为在XMLHTTP甚至AJAX出现之前,我就开始使用了同样的技术。

我们在内网应用程序中使用VBScript和Java小程序来替代XMLHTTP,来实现类似于AJAX的功能。我们使用了类似于JSON的东西,但使用VBScript语法。

从理论上讲,由于XML具有验证等特性,所以XML在使用上应该会很快速和出色。然而,在实际使用时,你无法在客户端有效和合理地使用DTD或模式进行验证(或在大多数情况下根本无法使用)。试着用一下,你就会发现。

XML也面临它的冗长和客户端消耗问题。除非你打算使用XSLT或类似的东西,并直接使用接收到的数据包,否则你需要像进行DOM操作一样将数据拆分开。

最终,XML在完成之前(至少在客户端)无法进行合理的查看,因此您无法进行部分检查。尽管公平地说,JSON在这方面也会面临挑战,这要视其结构而定。

Given the environment of consumption (JavaScript mostly) JSON has the obvious leg up. There is a massive discussion of this choice plus other things like YAML, CSV, base64 encoded data, HTML fragments, etc. in Chapter 4 of Ajax: The Complete Reference (http://ajaxref.com) which is just on data types. Examples prove disprove ease of handling particularly in the lesser known cases. If I had to pick one JSON would be it but frankly for some uses of Ajax small HTML fragments (since it is slap and go) is the way to do it.

您还可以只生成HTML并将其直接用于您的应用程序。 XML非常冗长,而JSON由于安全性需要额外注意处理。

其实没有最佳实践,个人而言,如果我在JSON和XML之间选择,我会使用JSON。虽然使用XML可以获得一些有趣的查询可能性。

我认为关于JSON与XML的辩论表明,JSON可以成为最佳实践之一。我不认为客户端与服务器传输速度很快就会成为一个不再受关注的问题,甚至可能永远都不会。因此我认为JSON将凭借其比XML更小的尺寸而在这个问题上胜出(我相信JSON还具有发送到哪个服务器的灵活性,但这自然会涉及到安全问题,如上所述)。

也许我们应该开始称它为 "AJAWX"(没有 XML 的异步 JavaScript)。

我的选择是 JSON。

因为:

  • it is much faster. You need just evaluate JSON code from response instead of parsing XML.
  • it require much less of the code. eval() is less than XML parser code.
  • less traffic (amount of data to transfer) between client and server as result faster handling
  • it more readable




相关问题
热门标签