我有一个函数可以重新加载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"
);
}
如果你这样做:
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 只更改一次。