За последние 24 часа нас посетили 17148 программистов и 1835 роботов. Сейчас ищут 1607 программистов ...

progress bar

Тема в разделе "Прочие вопросы по PHP", создана пользователем writer, 24 янв 2014.

  1. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Встала задача сделать прогресс бар для выполнения запросов.
    есть форма. По нажатию активируется метод в класе , который считывает большой xml и заносит данные в БД.
    Не могу понять как сделать чтобы шла индикация прогресса.
    Начал читать вызов функций php аяксом, но думаю тут быстрее будет.

    пример кода php

    Код (Text):
    1.  
    2. class text
    3. {
    4.   function mysql()
    5.   {
    6.    $i = 0;
    7.    while()
    8.    {
    9.       mysql_query();
    10.      
    11.     $i++;
    12.     }
    13.   }
    14. }

    пример страницы

    Код (Text):
    1.  
    2.  
    3. <?php
    4. if(isset( $_POST['submit'] ))
    5. {
    6.  $main->mysql();
    7. }
    8. ?>
    9. <form action="" method="POST">
    10. <input type="submit" name="submit"/>
    11. </form>
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Пока скрипт не отработает, скорей всего, ничего не выдаст.
    Но можно его заставить каждую итерацию сохранять процент выполнения в текстовый файл. А с помощью AJAX уже считывать это значение из меняющегося файла.
     
  3. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Добавлено спустя 23 секунды:
    я щас попробую в буфер скидывать значение и во фрейме его через
    Код (Text):
    1. <meta http-equiv="refresh" content="1" />
    считывать
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Не проще написать "Подождите...". Я понимаю использовать прогрессбар на ресурсоемких операциях, но в вашем случае выполняются SQL запросы, потерпит пользователь 10 секунд )