Прогресс бар

Тема в разделе "Как сделать...", создана пользователем SocMaster, 30 апр 2014.

  1. SocMaster

    SocMaster aka Hakerok

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

    ivan.petrov Постоялец

    Регистр.:
    12 апр 2013
    Сообщения:
    94
    Симпатии:
    41
    Посмотрите как сделано в готовых скриптах. Например
     
  3. Simply

    Simply Писатель

    Регистр.:
    11 янв 2008
    Сообщения:
    7
    Симпатии:
    4
    Я в подобной ситуации использовал счетчик цикла, соответственно общее число запросов представлял в виде 100% а счетчиком эти проценты увеличивал.

    Условно:
    PHP:
    $querysCount 999;
    $onePercent round($queryCount 100)
    $currentPercent 0;
    for(
    $i=0$i<$queryCount$i++) {
    // do some query...
    if($queryCount >= $currentPercent)
      
    $currentPercent +=$onePercent;
    }
    "Кодер" из меня еще тот, так что не уверен в правильности подхода...
     
    Последнее редактирование: 5 май 2014