4

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

所以我的问题是:您使用哪个与服务器/客户端通信(可能是为什么)?或者,您听说过哪些“最佳实践”(以及为什么)?

谢谢大家!

4

10 回答 10

5

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

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

另一方面json本身也有它的优势:

  • json更简单
  • 在客户端处理更容易
  • 当出现问题时,调试会变得轻而易举

最后,这取决于您要开发的内容,对于面向数据的东西,我更喜欢 json。

于 2009-02-14T16:35:54.263 回答
5

哪个更好用取决于应用程序/要求。在浏览器端 JSON 是更好的选择,而在服务器端的文件 XML 是更好的选择。为正确的工作使用正确的工具。JSON 更倾向于数据,而 XML 更倾向于文档。浏览器 Javascript 代码原生支持 JSON。

有关这篇文章的更多和详细信息,请参阅一个链接,该链接对每个示例都有更好的比较。http://codebucket.co.in/which-one-is-better-xml-or-json/

于 2012-11-04T19:27:59.607 回答
3

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

您可以在JSON 或 XML,选择哪种格式?AJAX 响应:XML、HTML 还是 JSON?

于 2009-02-14T16:42:13.373 回答
2

我更喜欢尽可能使用 JSON:

  1. 它已经以 Javascript 对象的形式出现,因此您只需在其上调用 eval() 即可获取其所有数据。
  2. JSON 是 Javascript,因此对于已经了解 JS 但不了解 XML 复杂性的人来说,理解起来会更快。
  3. 在浏览器中,您不必经历解析 XML 对象的痛苦。(您也不必在服务器上构建一个,尽管无论如何您都必须创建 JSON。)
  4. 这是一种更紧凑的数据传输方法。
于 2009-02-14T16:26:59.260 回答
1

这些天,我尽可能倾向于使用 JSON。与客户端编码结合起来,它肯定感觉更轻,更“自然”。

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

Douglas Crockford在使用 JSON 时编写了一套很好的安全原则。

于 2009-02-14T16:28:38.600 回答
1

当我看到 AJAX 这个词时,我总是微笑。我微笑是因为我早在 XMLHTTP 出现之前就开始使用相同的技术,更不用说 AJAX。

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

于 2009-02-14T16:36:21.343 回答
1

从理论上讲,由于验证和其他原因,XML 会很快很好。在实践中,您无法在客户端验证 DTD 或架构是否合理(或在大多数情况下)。试试看你就知道了。

XML 还受到其冗长和客户端消耗的影响。除非您打算使用 XSLT 或其他东西并直接使用接收到的数据包,否则您必须像制作的 DOM 一样将数据切碎。

最后,XML 在完成之前无法合理查看(至少在客户端),因此您无法进行部分检查。虽然公平地说,JSON 在那里也会遇到挑战,这取决于它的结构。

鉴于消费环境(主要是 JavaScript)JSON 具有明显的优势。在 Ajax: The Complete Reference ( http://ajaxref.com )的第 4 章中对这种选择以及 YAML、CSV、base64 编码数据、HTML 片段等其他内容进行了大量讨论,其中仅针对数据类型。示例证明不易于处理,特别是在鲜为人知的情况下。如果我必须选择一个 JSON 就可以了,但坦率地说,对于 Ajax 小 HTML 片段的某些用途(因为它是 slap and go)是这样做的方法。

于 2009-04-18T00:12:24.073 回答
0

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

没有真正的“最佳实践”,就个人而言,如果我要在 JSON 和 XML 之间进行选择,我会使用 JSON。尽管如果您使用 XML,您将有一些有趣的查询可能性。

于 2009-02-14T16:26:39.357 回答
0

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

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

于 2009-02-14T18:36:47.403 回答
0

我的选择是 JSON。

因为:

  • 它要快得多。您只需要从响应中评估 JSON 代码,而不是解析 XML。
  • 它需要更少的代码。eval() 小于 XML 解析器代码。
  • 客户端和服务器之间的流量(要传输的数据量)更少,因此处理速度更快
  • 它更具可读性
于 2009-02-15T13:51:51.017 回答