javascript - 加速 Ajax 成功 DOM 操作

标签 javascript jquery ajax

我在我的页面上使用 AJAX 调用返回表格行,成功后将它们添加到页面中的表格中。以下是目前使用的代码:

function GetDPRecords(Perso) {
        //alert(Perso);
        $Records = $('#DPRecords');

        //alert($PersoFileName.val()+" | "+$ProcFromDate.val()+" | "+$ProcToDate.val());
        $.ajax({
            type: "GET",
            url: "SelectDPRecords.jsp",
            data: $('form#Search_Form').serialize() + "&Personalized=" + Perso,
            beforeSend: function () {
                $Records.find("tr:gt(0)").remove();
                $("<tr><td colspan='4'><h3 style='margin: 4px 10px'> Loading... </h3></td></tr>").hide().appendTo($Records).show(400);
            },
            success: function (data) {
                $Records.find("tr:gt(0)").remove();
                $(data).hide().appendTo($Records).show(400);
            }
        });
    }

问题是我有时期望返回大量行 (1,000-5,000)。我做了一个测试运行,返回了 4,000 行数据,它导致浏览器在大约 20 秒内没有响应。

有什么方法可以优化代码并减少加载时间?

最佳答案

一种可能的解决方案是使用分页系统:不是返回 1,000-5,000 行,而是将结果分成几页,例如每页 50 个结果,并且一次只返回一页。然后,您将在表格的顶部/底部为用户提供加载其他页面的按钮。

有关我所说内容的示例,请参阅 http://luis-almeida.github.io/jPages/defaults.html .它使用图片而不是行,但它是相同的基本概念。

关于javascript - 加速 Ajax 成功 DOM 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27679839/

相关文章:

JavaScript/jQuery : get selected text's container

jquery 高亮搜索以空格分隔的多个单词

java - 检测客户端中止请求 Jersey

javascript - 电子邮件正文中的 AJAX?

javascript - Google 图表工具提示选项

javascript - ngclass 在页面加载时自动替换我的 css 设置

javascript - 使用 javascript 将参数添加到 url

javascript - Firebase 更新值的速度没有我想要的 Javascript 快

jQuery 使用下拉列表中选择的文本填充文本输入

javascript - 在 PHP 中解析 JSON_Decoded 数组