哪个更高性能:XmlHttpRequest响应为HTML还是JSON?

时间:2011-09-10 10:51:26

标签: javascript ajax performance xmlhttprequest

在一个高度AJAX网站中,网页内容部分由AJAX更新,基本上是更改HTML标签或网页的一部分。

所以,我们需要做出决定:

  1. 服务器端呈现HTML标记并在XmlHttpRequest响应中返回。浏览器JavaScript只是使用XHR响应更改容器的innerHTML;

  2. 服务器端以JSON格式返回数据。浏览器JavaScript根据JSON呈现HTML,然后更改容器的innerHTML。

  3. 从绩效角度来看,哪种方法更好?

    在性能方面,我指的是最终用户的感知性能,这受到服务器端花费的时间,网络和客户端浏览器上花费的时间的影响。

4 个答案:

答案 0 :(得分:3)

JSON版本很可能更快,因为有了它,你必须通过网络传输更少的位。与可能的网络延迟相比,在浏览器中呈现HTML是快速的。只需使用一些预编译模板的客户端模板语言。与Handlebars.js一样。

如果你想用它做其他事情,JSON也是更通用的。我会毫不怀疑地使用JSON。

答案 1 :(得分:2)

如果我们将客户端性能排除在外,那么您可能需要测量两件事:

  1. 传输数据的长度(由于网络到目前为止是瓶颈,因此从客户端和服务器实现的更短的请求将更具性能。)
  2. 在服务器端生成所述数据所花费的时间。
  3. 这些指标听起来就像是使用JSON或HTML非常接近,以至于“只是忘掉它并做更方便的事情”。但是,如果您认真考虑获得最后一滴性能,那么这些指标就是您应该用来决定的。

答案 2 :(得分:1)

如果您需要发送html格式的数据,我会选择直接的HTML响应。

使用JSON,您必须以这样的方式创建它,即属性将告诉它是哪个标记,以及它包含的数据的另一个标记。如果您有许多嵌套标签,它将开始变得不可读并且容易出错。

或者,您可以发送一个只包含包含所有HTML字符串的属性的JSON。但是,简单的HTML仍然是最好的。

我认为无论如何你都不会看到任何性能差异。

答案 3 :(得分:0)

我认为这里的表现不是问题,而是你应该遵循的最佳做法 如果你有一个高度ajax网站,你应该考虑SOA架构 REST在这里特别有用,因为您实际上可以在您请求的MIME类型上请求两种格式的depanding 您应该使用Accept和Content-Type HTTP标头来请求正确的格式并检查它是否被正确接收 因此,这可以使您灵活变通,并根据您的需要选择最合适的代表 您应该阅读有关REST herehere

的信息