我想知道 AJAX 响应的“理想”输出格式是什么?是使用客户端 JavaScript 模板引擎将纯数据(JSON、XML)呈现在页面上,还是作为 HTML 片段“按原样”呈现在页面上?
您更偏向于哪种方式,为什么?
我想知道 AJAX 响应的“理想”输出格式是什么?是使用客户端 JavaScript 模板引擎将纯数据(JSON、XML)呈现在页面上,还是作为 HTML 片段“按原样”呈现在页面上?
您更偏向于哪种方式,为什么?
在大多数情况下,您只需要发送 JSON 数据(或适当的 XML 数据,以下以 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>
...
当您通过AJAX获取个人数据时,只需填充上述DOM结构即可。
如果您希望显示多个人的信息,则应该制作其副本然后填充它,而不是直接填充DOM结构。这样,您的模板保持完整并可以重复使用。
这很大程度上取决于数据将用于什么:
对于将在您的应用程序内部和外部使用的数据,永远不要使用HTML:难以解析,难以适应其他结构。
如果只涉及少量数据,如小部件的更新,请使用JSON,因为它快速且易于使用。
如果可能有大量数据,例如搜索查询结果,请使用XML,因为它更灵活,适合处理大量数据。
不要费心使用纯XML。输出之前总是会进行批量分析。
大多数情况下,您将希望使用JSON,因为它比HTML更灵活,但放置起来相当快。
如果您知道数据不需要后续处理并且布局复杂,请使用HTML。在服务器端编写复杂的HTML比使用DOM容易得多。
对我来说,没有一种"理想的"方法。 当需要分页且已经有客户端模板时,使用纯JSON和jTemplates进行客户端呈现,并结合jQuery进行操作。
当需要实现简单的服务器调用时,如自动完成、原地编辑、保存草稿等,也会使用JSON。
当需要创建全新的页面片段时,则使用HTML呈现:加载模板、向页面添加面板、呈现自定义控件。
顺便提一下,如果可以的话,我更喜欢使用JSON,因为这样我们就可以切换到客户端对象操作,而不仅仅是“更新面板”。
这取决于情况,我更喜欢将数据发送给客户端,并使用客户端框架更新页面,因为我有一个可用的框架。如果我要自己编写程序,而且代码片段足够小,我可能会选择在服务器端执行,尽量保持 js 尽可能简洁。