Веб-интерфейс и отображение прогресса
progress bar примитивный написан для asp.net и php точно.1. Последовательный вывод квадратиков (каждый квадратик - спан с нужным стилем).
2. Последовательный вывод дивов с фиксированной позицией и увеличивающейся шириной.
3. Последовательный вывод кусочков javascript'a, меняющих ширину выведенного ранее элемента.
Наверняка есть еще около 35213 способов.
Какой из них более кошерный? Или можно смело брать любой?
—
Я буду долго гнать велосипед,
В глухих лугах его остановлю...
Какой из них более кошерный?имхо, более кошерный - это сервис гонит счетчик, а на морде этот счетчик java script-ом конвертиться в ширину.
<style type="text/css">
.progress-container { width: 200px; height: 11px; border:1px red solid; }
.progress { background-image: url( http://www.tmtsoftware.com/Portals/8/Containers/TMTSoftware/little_square.gif ); background-repeat: repeat-x; }
</style>
<div class="progress-container">
<div id="bar" class="progress" style="width:0%;height:100%"></div>
</div>
<script type="text/javascript">
// initialize
window.onload = function {
var delay = 500;
setTimeout( function { showCurrentProgress( myDisplay, delay ) }, delay );
}
// polling the source of knowledge until we finish
function showCurrentProgress( display, delay ) {
var CurrentProgress = getCurrentProgress;
display( CurrentProgress );
if( CurrentProgress < 100 ) {
setTimeout( function { showCurrentProgress( display, delay ) }, delay );
}
}
// presentation
function myDisplay( progress ) {
var bar = document.getElementById( 'bar' );
bar.style.width = progress + '%';
}
// emulation of source of knowledge
{
var totalProgress = 0;
function getCurrentProgress {
return totalProgress += 10;
}
}
</script>
{
var totalProgress = 0;
function getCurrentProgress {
return totalProgress += 10;
}
}
var getCurrentProgress = (function {
var totalProgress = 0;
return function {
return totalProgress += 10;
}
};
почему не имеет? моя идея в том, что вместо этого блока кода, который я сейчас поправил, надо засунуть опрос сервера. поэтому там и написано "эмуляция".
хотя, возможно, я чего-то не понимаю
По моему прогресс в виде процентов считать лучше на сервере.
вообще-то, я про это и написал
Серверная часть тоже на JavaScript написана? Если нет, то по-моему проще использовать функцию типа setProgress.
Сорри, понял я говорил про "взять", а ты про "дать".
сервис гонит счетчик, а на морде этот счетчик java script-ом конвертиться в ширину
А это можно реализовать в пределах одного ответа сервера (отдаем страницу, потом потихоньку там же отдаем значение прогресса или придется делать отдельный, который будет запрошен javascript'ом?
--------------------------
Главное не привысить время ожидания ответа.
хехе, сразу видно, что ты не пользуешься поиском по форуму
Оставить комментарий
karkar
Есть небольшое приложение с примитивным веб-интерфейсом. Есть долгая операция - некая обработка десятков файлов. Хочется иметь возможность отобразить ее прогресс - в виде прогрессбара или текстом. Какие есть самые простые способы это сделать, желательно без привлечения тяжеловесных библиотек?