AJAX响应:数据(JSON,XML)还是HTML片段?

par*_*ier 12 html xml ajax json client-server

我只是想知道AJAX响应的"理想"输出格式是什么?使用一些客户端JavaScript模板引擎将纯数据(JSON,XML)呈现到页面中?或者"按原样"呈现到页面中的HTML片段?

你的偏好是什么?为什么?

ale*_*emb 11

在大多数情况下,您只需要发送JSON(或者适当的XML,我使用JSON作为示例).

  • 如果要发送股票报价等数据,请使用JSON.
  • 如果您希望保持网络层非常精简,那么发送纯JSON数据并让客户端完成添加标记的繁重工作.
  • 如果客户端页面是持久的,则发送JSON.然后,客户端可以向Person.Name发送问候语.它可以刷新Person.Score或显示一个表单来编辑Person.Status,它们只处理一个Person对象.
  • 如果您公开Web API,显然使用JSON,以便客户端可以随心所欲地使用它.

既然如此,我真的不喜欢从JavaScript生成HTML.这是一场维护噩梦,我根本不喜欢混合两者.那么如果您发送的所有内容都是JSON,那么如何避免在JavaScript中生成HTML?如果您正在处理Person(s)对象,那么当您首次渲染页面时,您将按原样呈现它:

...
<div class="person display">
    <div class="name"></div>
    <div class="status"></div>
    <div class="score"></div>
</div>
...
Run Code Online (Sandbox Code Playgroud)

当您通过AJAX获取人员数据时,只需填充上面的DOM结构.

如果您希望显示多个人的信息,那么您应该直接填充它,然后填充它,而不是直接填充DOM结构.这样,您的模板保持不变,您可以重复使用它.


e-s*_*tis 6

这在很大程度上取决于将要使用的数据:

用于mashup和Web服务

对于将在您的应用程序和外部使用的数据,永远不要使用HTML:难以解析,难以使其适合其他结构.

如果它只是少数数据,比如一些小部件更新,请使用JSON,因为它快速且易于使用.

如果它可以是很多数据,比如搜索查询的结果,则使用XML,因为它对于大量数据分析更加灵活.

仅限内部使用

不要打扰使用纯XML.无论如何,总是在输出之前完成批量分析.

大多数情况下,您会希望使用JSON,因为它比HTML更灵活,但实施起来相当快.

如果您知道之后不需要处理数据并且布局复杂,请使用HTML.在服务器端编写复杂的HTML比使用DOM容易得多.