jquery ajax – 更好地返回json或普通html

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

或者最好以html文本的forms返回?

例,

$.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']) ); }

或者我应该这样做?

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

修改…抱歉我的语法不好

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

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

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

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

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

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

请指教。

塞巴斯蒂安和扎因都有效点。 这取决于你所谈论的是什么的表现。

如果要减少服务器的带宽,则应返回JSON并使用客户端javascript创建显示。

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

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

不,我不建议从php页面返回html 。 只返回json数据并在客户端解析它并在UI上显示。 因为html总是比json重。 所以,如果你使用json,它将节省你的bandwidth

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