Прогресс бар

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Есть скрипт, там обычно огромный цикл, иногда 1 минуту иногда и больше. Показывать юзеру 5 минут пустую страницу не вариант. Пробовал поставить в цикл запрос в бд который записывает % выполнения,написал страничку html там аякс обращается каждую секунду к пхп скрипту который отдает % с бд. Толком это не работает, запись в бд нормально идет только последние 100%, если поставить sleep(1) после запроса в бд, тогда еще да все работает как надо, но долгое время выполнения скрипта, много очень запросов в бд. Есть иной выход?
 
Есть скрипт, там обычно огромный цикл, иногда 1 минуту иногда и больше. Показывать юзеру 5 минут пустую страницу не вариант. Пробовал поставить в цикл запрос в бд который записывает % выполнения,написал страничку html там аякс обращается каждую секунду к пхп скрипту который отдает % с бд. Толком это не работает, запись в бд нормально идет только последние 100%, если поставить sleep(1) после запроса в бд, тогда еще да все работает как надо, но долгое время выполнения скрипта, много очень запросов в бд. Есть иной выход?

Посмотрите как сделано в готовых скриптах. Для просмотра ссылки Войди или Зарегистрируйся
 
Я в подобной ситуации использовал счетчик цикла, соответственно общее число запросов представлял в виде 100% а счетчиком эти проценты увеличивал.

Условно:
PHP:
$querysCount = 999;
$onePercent = round($queryCount \ 100)
$currentPercent = 0;
for($i=0; $i<$queryCount; $i++) {
// do some query...
if($queryCount >= $currentPercent)
  $currentPercent +=$onePercent;
}

"Кодер" из меня еще тот, так что не уверен в правильности подхода...
 
Последнее редактирование:
Назад
Сверху