防止表元素崩溃

时间:2012-10-01 06:22:23

标签: javascript jquery html css

我有一个重新加载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"
    );

}

1 个答案:

答案 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只更改一次。