jquery ajax - 更好地返回json或plain html

时间:2010-11-13 05:46:21

标签: php jquery html ajax json

当从ajax返回时, 我应该以json编码的形式返回,并使用jquery.parseJSON 并使用document.createElement并将数据附加到刚刚创建的Element中。

或者最好以html文本形式返回?

例如,

<div id="contentcontainer"></div>

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John",
   success: function(msg){
     msgObj = jquery.parseJSON(msg);
     var div = document.createElement('div');
     div.style.color="red";
     $(div).append(msgObj.name);
     $('#contentcontainer').append(div);
   }
 });

 //some.php
 if($_POST['name']){
    echo json_encode( array('name'=>$_POST['name']) );
 }

或者我应该这样做?

<div id="contentcontainer"></div>

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John",
   success: function(msg){ 
     $('#contentcontainer').append(msg);
   }
 });

 //some.php
 if($_POST['name']){
    echo '<div style="color:red">'.$_POST['name'].'</div>';
 }

修改...抱歉我的语法错误

当然,这只是一个例子,真实情况下它会有很多数据,可能是html表格格式。

当然,这仅仅是一个例子,真实情况下会有很多数据。

如果它有很多数据,那么我需要编写很多document.createElement()。 并且它花费时间来写这样的 使用document.createElement( '表'); 使用document.createElement( 'TR');

而不是(以HTML格式返回并只是附加在容器中)

 

对我来说,我认为第二种格式(返回HTML)更容易。

但是对性能明智不确定,哪个更好?

请告知。

3 个答案:

答案 0 :(得分:5)

Sébastien和Zain都有有效的分数。这取决于你所谈论的 kind 性能。

如果您想减少服务器的带宽,那么您应该返回JSON并使用客户端javascript创建显示。

但是,如果您的数据集很大,则在大多数计算机上创建您的显示器客户端可能会滞后于浏览器并导致UI无响应。如果这对您很重要,那么您可以考虑从服务器返回HTML。

答案 1 :(得分:0)

是的,如果您没有操作/解释来处理AJAX调用的结果,则应该返回HTML。

答案 2 :(得分:0)

不,我不建议从php页面返回html。仅返回json数据并在客户端解析并在UI上显示。因为html总是比json重。因此,如果您使用json,它将保存您的bandwidth

如果你想要一个例子,只需去查看twitter正在做什么,他们只返回json然后在客户端操纵json。