我应该使用 JSON 还是 AJAX 作为响应数据?
Posted
技术标签:
【中文标题】我应该使用 JSON 还是 AJAX 作为响应数据?【英文标题】:Should I use JSON or AJAX for response data? 【发布时间】:2010-11-03 15:09:06 【问题描述】:为什么是 JSON?今天做了一些测试,无论是JSON,还是普通的AJAX请求的请求时间都是一样的。在“正常请求”中,我返回了完整的 text+html 标签,在 JSON 请求中,逻辑上我返回了“json 返回类型”,并使用客户端 javascript 创建了 HTML。
我不明白,为什么大型网站(Google Reader 等)甚至小型网站都使用 JSON?还是我不明白什么时候应该使用 JSON?
【问题讨论】:
见When to use Ajax vs Json for Javascript events? 几乎相似。 【参考方案1】:你可能有点困惑。
JSON 和 AJAX 不是非此即彼的选择。
JSON 和 XML 是一种选择。
JSON 和 AJAX 是不同的,并且在很大程度上是不相关的,虽然 AJAX 经常使用 JSON,但它可以很容易地使用 XML、HTML 或纯文本。
或者您指的是 AJAX (XML) 中的 X?如果是这样,JSON 的参数基本上是:
JSON 的负载比同等的 XML 更小;和 JSON 在 Javascript 中更容易处理(比较评估 JSON 对象与遍历 XML 片段)。除此之外,这主要是个人喜好。
【讨论】:
另外,如果你使用的是firebug,json也可以帮助你调试,因为你可以直接读取来回发送的数据【参考方案2】:JSON 只是一种数据交换格式。它描述了数据在传输过程中以何种方式表示。不能用 JSON 代替 Ajax。
Ajax 代表异步 JavaScript 和 XML,但在使用 JSON 时,您可以说您使用的是 AJAJ(异步 JavaScript 和 JSON)。
也许您正在考虑 jQuery 方法 $.getJSON()
和 $.get()
?
不同之处在于 $.getJSON()
自动假定它是 JSON 数据,而 $.get()
只会以纯文本形式获取数据。
使用$.getJSON()
时,您还可以在域之间获取数据。
【讨论】:
我喜欢认为 AJAX 代表异步 JavaScript 和 X,其中 X 是某种结束格式。 -1:JSON 根本没有描述以任何方式传输数据的方式。 JSON 描述了数据在传输时的表示方式。 (另外,关于“AJAJ”的部分完全是在转移注意力,因为在现实的历史上从来没有人使用过这个词。) @Tomalak 你是绝对正确的,两年后发现很好:) 关于“AJAJ”,在使用 json 讨论异步 javascript 时,至少有 18 个问题确实包含“AJAJ”一词。 @alexn:这几乎不是现实。我可以看到三个与“AJAJ”相关的 Google 搜索结果,其中之一是 acronymfinder.com。我根本不使用“AJA*”;省事。无论如何,downvote 变成 upvote :)以上是关于我应该使用 JSON 还是 AJAX 作为响应数据?的主要内容,如果未能解决你的问题,请参考以下文章