我有一个巨大的表(我相信),该表有728行,每行13列。我正在尝试使用下面的函数对表格进行排序,但是页面崩溃了,Chrome浏览器显示了以下消息:
您可以等待其响应或退出页面。
排序功能:
w3.sortHTML = function(id, sel, sortvalue) {
var a, b, i, ii, y, bytt, v1, v2, cc, j;
a = w3.getElements(id);
for (i = 0; i < a.length; i++) {
for (j = 0; j < 2; j++) {
cc = 0;
y = 1;
while (y == 1) {
y = 0;
b = a[i].querySelectorAll(sel);
for (ii = 0; ii < (b.length - 1); ii++) {
bytt = 0;
if (sortvalue) {
v1 = b[ii].querySelector(sortvalue).innerHTML.toLowerCase();
v2 = b[ii + 1].querySelector(sortvalue).innerHTML.toLowerCase();
} else {
v1 = b[ii].innerHTML.toLowerCase();
v2 = b[ii + 1].innerHTML.toLowerCase();
}
/******* custom *******/
if (v1 === '-') {
v1 = 'zzzzz';
}
if (v2 === '-') {
v2 = 'zzzzz';
}
/******* custom *******/
if ((j == 0 && (v1 > v2)) || (j == 1 && (v1 < v2))) {
bytt = 1;
break;
}
}
if (bytt == 1) {
b[ii].parentNode.insertBefore(b[ii + 1], b[ii]);
y = 1;
cc++;
}
}
if (cc > 0) {
break;
}
}
}
};
它在较小的桌子上工作得很好。
是否有一种编码方法可以使其在大型表上工作?