Anonymous
SortableJS медленно на хроме с большой таблицей (записи 2000).
Сообщение
Anonymous » 01 апр 2025, 12:18
Когда у моего сортировки есть таблица из 2000+ записей, она становится действительно медленной, и страница дает мне возможность подождать или закройте вкладку.
Но эта таблица используется клиентами (нуждается в хорошем UX), так что это не может случиться с ними.
Код: Выделить всё
< /code>
var left = document.getElementById("left");
var right = document.getElementById("right");
generateTable(2000, left)
generateTable(10, right)
function generateTable(nOfRows, wrap) {
var newTable = document.createElement("table"),
tBody = newTable.createTBody(),
nOfColumns = 5,
row = generateRow(nOfColumns);
tBody.classList.add("sortable");
for (var i = 0; i < nOfRows; i++) {
tBody.appendChild(row.cloneNode(true));
}
(wrap.hasChildNodes() ? wrap.replaceChild : wrap.appendChild).call(wrap, newTable, wrap.children[0]);
}
function generateRow(n) {
var row = document.createElement("tr"),
text = document.createTextNode("cell");
for (var i = 0; i < n; i++) {
row.insertCell().appendChild(text.cloneNode(true));
}
return row.cloneNode(true);
}
Sortable.create(document.getElementsByClassName('sortable')[0], {
items: "tr",
group: '1',
animation: 100
});
Sortable.create(document.getElementsByClassName('sortable')[1], {
items: "tr",
group: '1',
animation: 100
});
Пример кода
Подробнее здесь:
https://stackoverflow.com/questions/795 ... 00-records
1743499100
Anonymous
Когда у моего сортировки есть таблица из 2000+ записей, она становится действительно медленной, и страница дает мне возможность подождать или закройте вкладку. Но эта таблица используется клиентами (нуждается в хорошем UX), так что это не может случиться с ними.[code] < /code> var left = document.getElementById("left"); var right = document.getElementById("right"); generateTable(2000, left) generateTable(10, right) function generateTable(nOfRows, wrap) { var newTable = document.createElement("table"), tBody = newTable.createTBody(), nOfColumns = 5, row = generateRow(nOfColumns); tBody.classList.add("sortable"); for (var i = 0; i < nOfRows; i++) { tBody.appendChild(row.cloneNode(true)); } (wrap.hasChildNodes() ? wrap.replaceChild : wrap.appendChild).call(wrap, newTable, wrap.children[0]); } function generateRow(n) { var row = document.createElement("tr"), text = document.createTextNode("cell"); for (var i = 0; i < n; i++) { row.insertCell().appendChild(text.cloneNode(true)); } return row.cloneNode(true); } Sortable.create(document.getElementsByClassName('sortable')[0], { items: "tr", group: '1', animation: 100 }); Sortable.create(document.getElementsByClassName('sortable')[1], { items: "tr", group: '1', animation: 100 }); [/code] Пример кода Подробнее здесь: [url]https://stackoverflow.com/questions/79548190/sortablejs-is-slow-on-chrome-with-large-table-2000-records[/url]