JSON非常通用且轻巧, 足以使你将所有响应都转换为JSON, 但是考虑一下事情将如何完成, 如何变得更容易以及哪些方法可以完美满足你的项目需求是一个好主意。
本文的主要要点是, 在响应中使用json时, 你可以清除一个常见问题的思想。
什么时候不好的做法是接收HTML
- 如果要终止将HTML解析为数据, 则接收HTML是个坏习惯, 例如:
$.get("http://url.com/response-service", function(html){
var myObject = JSON.parse(html);
console.log(myObject);
});
什么时候不好的做法是接收JSON
- 使用此JSON数据在DOM上呈现某些内容, 而不是发送html响应, 以将其附加到我们想要的div。因为这样做会使你的工作更加困难, 例如:
// the response structure will be something like
// [{article_id:"oijqw8", content:"my content", title:"My title"}, {article_id:"oijswee9", content:"my other content", title:"My title 2"}]
$.getJSON("http://myurl.com/response-service", function(data){
for(var i = 0; i < data.length;i++){
var article = data[i];
var html = '<div id="article-'+article.article_id+'">'+article.title+'</div>';
html += '<div class="content">'+article.content+'</div>';
$('#list-div').append(html);
}
});
许多后端开发人员倾向于发送html的一部分作为响应, 然后将其呈现在DOM中, 但是他们不这样做, 因为这是一种很好的做法, 一些开发人员并不精通javascript并决定在其中进行所有处理。服务器, 因为这使他们的工作变得容易。
要考虑的要点
你需要分析何时每种情况都可以满足你的需求, 有时你需要多次渲染, 哪种更好?在你的服务器上处理1次, 然后在很多地方使用它(这使代码更易于维护), 或者在每个视图中都使用javascript进行渲染。
如果你知道为什么发送该消息以及如何按照良好做法正确处理, 从响应中返回html或json数据在任何情况下都不会是坏消息。
根据你应用程序需要的”性能”, 例如, 你可能选择发送json而不是较长的html响应(例如, 在移动设备中)的加载时间, 正如我之前所说的, 这完全取决于你的需要以及你需要如何处理它。
开发时间是要考虑的另一重要事项, 请注意最适合你的情况, 进行JSON响应并使用javascript处理?或从后端发送html响应, 然后将其附加javascript?