javascript - JQuery:更新表内容花费太长时间

标签 javascript jquery ajax

我使用 JQuery Ajax 从服务器获取表的内容,使用如下代码:

success: function(data)
{
    //once I get the data, remove the old content from table
    $('.tableBody').empty();

    // then repopulate the table
    $.each(data, function(key,val) {
        //process the data, add different icons, texts...,append it to my table
        showTable(key, val);
   });
}

这很好用。但问题是表有很多行,所以重新填充大约需要 300 毫秒,(empty() 只需要大约 10 毫秒),所以有一瞬间,表是空白的。

我是否可以在 "empty()""showTable()" 之间添加一些动画以避免出现空白屏幕,从而实现无缝过渡?

最佳答案

如果showTable()正在做的是“处理数据,添加不同的图标,文本......,将其附加到[您的]表格”,那么它可能看起来像这样:

$.each(data, function(key, val){
    $('.tableBody').append(key +' - '+ val);
});

您首先应该知道的是,将 HTML 尽可能长时间地保留在字符串中,然后将其放入 jQuery 对象并将其附加到 DOM,而不是创建要附加到的多个 jQuery 对象,这样会更快DOM 也多次。 所以你最好这样做:

var tableContents = '';
$.each(data, function(key,val){
    tableContents += key +' - '+ val; // generate whatever HTML you need
});
$('.tableBody').append(tableContents);

它允许您在重新填充表之前清空表:

var tableContents = '';
$.each(data, function(key,val){
    tableContents += key +' - '+ val; // generate whatever HTML you need
});
$('.tableBody')
    .empty()
    .append(tableContents);

关于javascript - JQuery:更新表内容花费太长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11799132/

相关文章:

jquery-plugins - 从服务器加载 jQuery 插件默认值 (AJAX)

javascript - 评分小部件未显示在 ajax 调用中

javascript - 从服务器加载jqgrid结构,不仅仅是数据

javascript - 为什么RxJS运算符过滤和映射大尺寸数组比Javascript数组方法更快?

javascript - 用于更改 iFrame 的单选按钮不起作用

javascript - 如何处理 "Unhandled ' 错误事件”错误 - NodeJS

javascript - 将 Canvas 缓存在对象中(在内存中)

javascript - 如何在 jquery 中通过 url 发送 json 并在下一个 html 页面上解析它?

javascript - 安全的 .php 文件,通过 JavaScript 调用

ajax - 网站抓取 : Waiting until site is completly loaded