我有一个相当的ajax重型网站和一些3k html格式的页面插入到DOM从ajax请求。
我一直在做的是采取html响应,只是插入整个事情使用jQuery。
我的另一个选择是输出在xml(或可能的json),然后解析文档,并将其插入页面。
我注意到,似乎大多数较大的网站做事情的json / xml方式。 Google Mail返回xml而不是格式化的html。
这是由于性能?或者有另一个原因使用xml / json vs只是检索html?
从javascript的角度来看,它似乎注入直接的html是最简单的。在jQuery我只是这样做
jQuery.ajax({
type: "POST",url: "getpage.PHP",data: requestData,success: function(response) {
jQuery('div#putItHear').html(response);
}
与xml / json响应我将不得不做
jQuery.ajax({
type: "POST",success: function(xml) {
$("message",xml).each(function(id) {
message = $("message",xml).get(id);
$("#messagewindow").prepend("<b>" + $("author",message).text() +
"</b>: " + $("text",message).text() +
"<br />");
});
}
});
显然从代码的角度来看效率不高,我不能指望它是更好的浏览器性能,所以为什么第二种方式的事情?
返回JSON / XML使应用程序比返回HTML更自由,并且在不同字段(数据与标记)中需要较少的特定知识。
由于数据仍然只是数据,你可以选择如何显示它到客户端的东西。这允许许多代码在客户端而不是在服务器上执行 – 服务器端只需要知道数据结构,而不需要知道标记。所有程序员需要知道的是如何交付数据结构。
客户端实现只需要知道如何显示服务器返回的数据结构,并且不需要担心这些结构如何实际构建。所有程序员需要知道的是如何显示数据结构。
如果要构建另一个客户端(不使用HTML作为标记语言),则可以重新使用所有服务器组件。构建另一个服务器实现也是如此。