我有一个重新加载table
内的所有内容的函数。
目前,当删除并重新添加表格行时,表格会崩溃。
有没有办法保留以前的表格大小并在操作完成后“释放”它?
function loadValues() {
$('#tableId tbody').empty(); // Table rows are being removed here
$.post("page.php?action=getValues",
{},
function(dataT) {
for ( var i in dataT) {
var data = dataT[i];
$('#tableId tbody').append(
'<tr>'
+ '<td>data.id</td>'
+ '<td>data.other</td>'
'</tr>'
);
}
}
,"json"
);
}
答案 0 :(得分:2)
如果你这样做:
function loadValues() {
$.post("page.php?action=getValues",
{},
function(dataT) {
$('#tableId tbody').empty(); // Table rows are being removed here
for ( var i in dataT) {
var data = dataT[i];
$('#tableId tbody').append(
'<tr>'
+ '<td>data.id</td>'
'</tr>'
);
}
}
,"json"
);
}
表格不会崩溃。原因是在用户脚本运行时不更新窗口。在您的第一个版本中,崩溃是可见的,因为用户脚本在等待服务器的响应时必须停止。
如果需要性能并且添加许多行的详细信息:构建一个大的html字符串并在最后只做一个追加更有效。在这种情况下,我通常会这样做:
function loadValues() {
$.post("page.php?action=getValues",
{},
function(dataT) {
var html = '';
for ( var i in dataT) {
var data = dataT[i];
html += '<tr>'
+ '<td>'+data.id+'</td>'
'</tr>'
;
}
$('#tableId tbody').html(html);
}
,"json"
);
}
然后DOM只更改一次。