ajax html vs xml/json响应 - 性能或其他原因

ped*_*ete 29 html xml ajax json

我有一个相当ajax重的站点,一些3k html格式的页面从ajax请求插入到DOM中.

我一直在做的是采用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);
    }
Run Code Online (Sandbox Code Playgroud)

我需要做xml/json响应

jQuery.ajax({
    type: "POST",
    url: "getpage.php",
    data: requestData,
    success: function(xml) {
        $("message",xml).each(function(id) { 
            message = $("message",xml).get(id); 
            $("#messagewindow").prepend("<b>" + $("author",message).text() + 
            "</b>: " + $("text",message).text() + 
            "<br />"); 
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

从代码的角度来看显然效率不高,我不能指望它是更好的浏览器性能,那么为什么第二种方式呢?

yle*_*bre 16

与返回HTML相比,返回JSON/XML为应用程序提供了更多的自由,并且在不同的字段(数据与标记)中需要较少的特定知识.

由于数据仍然只是数据,因此您可以选择如何将数据显示到客户端.这允许在客户端而不是在服务器上执行许多代码 - 服务器端只需要知道数据结构而不需要知道标记.程序员需要知道的是如何提供数据结构.

客户端实现只需要知道如何显示服务器返回的数据结构,而不需要担心这些结构如何实际构建.程序员需要知道的是如何显示数据结构.

如果要构建另一个客户端(不使用HTML作为标记语言),则可以重用所有服务器组件.构建另一个服务器实现也是如此.


Gar*_*ler 6

它通常会减少传输的数据量,从而提高传输速度.由于任何线上通常都是一个过程中的瓶颈,减少传输时间将减少执行过程所需的总时间,从而改善用户体验.

  • 这真的是Garry问题的核心.虽然它也打开了它进一步辩论.随着2K线下线,我想知道性能上将会到来的地方?它来自管道吗?或者它是插入一个chuck而不是通过json/xml进行解析,然后逐个插入 (2认同)