【发布时间】:2021-07-05 14:01:18
【问题描述】:
我在为我的数据库编写排序代码时遇到问题。数据很少没有问题,但此时我必须对大约 4000 个数据进行排序,并且持续大约 20 秒,时间太长了。 根据我的检查,持续时间过长的操作是 insertBefore(...,...) 函数。 你能帮帮我吗?
function sorting(list) {
var list_data = [];
var list_id = [];
for (var i = 0; i < list.length; i++) {
list_data[i] = Date.parse(list[i].cells[1].innerHTML);
list_id[i] = parseInt(list[i].cells[12].innerHTML);
}
//ordino gli array
for (var i = 0; i < list.length; i++) {
for (var j = 0; j < list.length-1; j++) {
if (list_data[j] > list_data[j+1]) {
tmp = list_data[j];
list_data[j] = list_data[j+1];
list_data[j+1] = tmp;
tmp = list_id[j];
list_id[j] = list_id[j+1];
list_id[j+1] = tmp;
}
}
}
//ordinato lista_id
var j = 0;
for (var i = 0; i < list.length; i++) {
j=i;
while (list_id[i] != parseInt(list[j].cells[12].innerHTML)) {
j++;
}
var target = list[i];
var newElement = list[j];
target.parentNode.insertBefore(newElement, target);
}
}
我的表格有 13 列 0-12。第十三列包含具有数据 ID 的隐藏单元格。我从一个冒泡排序开始,然后改变了这个,因为我认为它可以更好地工作,但它仍然持续 20 秒来排序。在 cmets 中如何建议我开始认为按服务器排序更好,但我不知道如何实现
【问题讨论】:
-
提供与您的问题相关的代码,以便人们更好地理解您的问题并提供更准确的解决方案
-
你是怎么排序的?你在内存中有一个包含数据的列表吗?你可以在后端对其进行排序吗?
-
MySql 数据库中有所有数据
标签: javascript database sorting html-table