【发布时间】:2011-05-09 10:36:00
【问题描述】:
当时间从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('table'); document.createElement('tr');
而不是(以 HTML 形式返回并添加到容器中)
对我来说,我认为第二种格式(返回 HTML)更容易。
但不确定性能方面,哪个更好?
请指教。
【问题讨论】:
-
JSON。因为它会减少您的带宽并将您的数据与您的演示文稿分开。此外,硬编码样式也是个坏主意。
-
我不认为它会减少带宽。 uniqsign 说“当然,这只是一个例子,实际情况下它会有很多数据,可能是html表格格式。”,您建议将HTML封装成JSON,实际上会占用更多带宽。
-
对不起,我的错,我不是说要封装HTML到JSON,我的意思是如果它有很多数据,可能我写起来更容易
而不是 document.createELement.
-
除此之外,如果你写了很多
document.createElement,$('#xx').append(data),你的代码会比较长并且难以阅读,相比简单的html标记<table>?我明白了吗?