У меня есть таблица данных, сортируемая в алфавитном порядке, и это довольно большая таблица. Поэтому сортировка занимает 2-3 секунды. Проблема заключается в том, что этот скрипт сортирует данные, которые блокирует страница. Поэтому я хотел бы отобразить анимацию загрузки (или просто загрузить текст) за это время. Прямо сейчас, моя загрузка gif появляется только ПОСЛЕ завершения скрипта - несмотря на то, что я использую setInterval или setTimeout. Должно быть, чего-то не хватает. Как я могу отобразить загрузку текста или изображения перед запуском скрипта? код ниже:Загрузка анимации во время сортировки JavaScript
$("#rotateArrowA").click(function() {
$(function() {
$("#loadingTwo").css("display","block");
$("#rotateArrowA").css("display","none");
$("#rotateArrowDownA").css("display","block");
setInterval(timeOut(), 1000);
});
function timeOut() {
var rows = $("#tableTwo tbody tr").get();
rows.sort(function(a, b) {
var A = $(a).children("td").eq(1).text().toUpperCase();
var B = $(b).children("td").eq(1).text().toUpperCase();
if(A > B) {
return -1;
}
if(A < B) {
return 1;
}
return 0;
});
$.each(rows, function(index, row) {
$("#tableTwo").children("tbody").replaceWith(rows);
$("#tableTwo tbody tr:odd").css("background-color", "#E6E6E6");
$("#tableTwo tbody tr:even").css("background-color", "white");
});
}
});
Кроме того, я не могу использовать любой HTML 5 функций для многопоточности ... это должно работать для клиентов старых версий (IE 7-8).
Очень близко ... Это работает. Теперь у меня возникла новая проблема - страница зависает после сортировки данных. – mdance
@mdance: Вы изменили 'setInterval' на' setTimeout'? – ruakh
Просто заметил, что и сделал. Работает сейчас! Большое спасибо! – mdance