我有一个分页的数据表,我想在客户端缓存它,我试图弄清楚如何最有效地切换页面。
这样做会更好:
A. 通过对 DOM 的一次修改来重建和替换表
var pageLength = 50;
var cache; //array of some objects from database
function changePage(index) {
var $table = $("<table>");
$.each(cache, function (i, row) {
var $tr = $("<tr>");
if (i < index || i > index + pageLength) $tr.hide();
$tr.append($("<td>", { text: row.ID }));
$tr.append($("<td>", { text: row.Name }));
$table.append($tr);
});
$("#targetDiv").html($table);
}
或者
B. 插入 DOM 后显示和隐藏行
function changePage(index) {
var $table = $("#targetDiv table");
$table.find("tr:visible").hide();
$table.find("tr").each(function (i, row) {
if (i > index && i < index + pageLength) $tr.show();
});
}
我按照第一个的思路写了一些东西,并在 Chrome vs IE8 中运行它,发现 IE 明显慢了很多,而 Chrome 没有问题。不幸的是,我们的标准仍然是 IE7,所以我正在尝试优化 IE7 中的 JS 引擎在性能方面比 IE8 更差的情况。