2013-11-11 3 views
1

У меня есть две страницы. Я отправляю ajax-вызов с первой страницы на вторую страницу для выполнения php-кодов внутри него.
Выполнение требуется долгое время (1-2 мин.). Как я могу создать индикатор выполнения и показать процент прогресса на первой странице.
Я могу рассчитать процент прогресса, но как показать его в реальном времени на первой странице.
реализация в режиме реального времени для php

firstpage.php

$.ajax({ url: 'secondpage.php', 
     data: {'q': data}, 
     type: 'post', 
     success: function(output) { 
        //some code 
      } 

secondpage.php

<?php 

    // I have some codes here that can calculate progress percent 
    // but how to show real time progress percent in firstpage.php 

echo $result; //final result(for ajax callback) 
    ?> 

ответ

0

Я хотел бы использовать JQuery прогресс бар UI. http://jqueryui.com/progressbar/

И я бы использовал вызовы ajax, чтобы получить процент завершен и использовать заполненное значение, чтобы обновить индикатор выполнения, находясь на той же странице. Вы могли бы назвать прогресс каждые 10 секунд или около того, получить обновление и соответствующим образом обновить индикатор выполнения.

+0

Спасибо, я проверил ваш ответ – user2511140

1

заподлицо() и ob_flush() является вашим другом здесь. Используя их вместе, можно отправить вывод в буфер.

Попробуйте этот пример я взял из php.net

header('Content-type: text/html; charset=utf-8'); 
echo 'Begin ...<br />'; 
for($i = 0 ; $i < 10 ; $i++) 
{ 
    echo $i . '<br />'; 
    flush(); 
    ob_flush(); 
    sleep(1); 
} 
echo 'End ...<br />'; 

http://php.net/manual/en/function.ob-flush.php

+0

С уважением. Создайте реальное время? – user2511140

Смежные вопросы