Механизм обратной связи должен отличаться на время ожидания пользователя. Менее 0,1 секунды и пользователь не заметит.
От 1 до 10 секунд вы можете просто отобразить символ, такой как анимированный GIF-файл, который указывает, что ваше приложение обрабатывает. Смотри http://www.ajaxload.info/
Я использую div с идентификатором «processing» и стилизую его с помощью прядильщика и использую следующий код jquery для отображения и скрытия его до и после процесса.
function showProcessing(){
$("#processing").fadeIn("fast");
}
function hideProcessing(){
$("#processing").fadeOut("fast");
}
По истечении 10 секунд было бы идеально предоставить оценку времени обработки.
См. Обзор времени отклика для определения источника этих чисел.
Следующий код немедленно меняет цвет ссылки на красный и вызывает метод добавления через доли секунды. По сути, это позволяет браузеру выполнить отдельный поток, прежде чем зацикливаться. Время ожидания может потребоваться изменить в зависимости от браузера. Проверьте Threading в JavaScript 1.7 от Neil Mix, если вам нужно отказаться от контроля более общим способом.
function startAppend(){
for (var i = 0; i < 1500; i++){
appendContent();
}
}
clickLink.onclick = function(){
clickLink.style.color = "red";
setTimeout('startAppend()', 10)
};