Mám dve stránky. Pošlem ajax volanie z prvej stránky na druhú stránku, aby sa v ňom spustili php kódy.
(1-2 minúty). Ako môžem vytvoriť pruh priebehu a zobraziť percentuálny pokrok na prvej stránke.
Môžem vypočítať percento pokroku, ale ako to zobraziť v reálnom čase na prvej stránke.
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)
?>
odpovede:
0 pre odpoveď č. 1Použil by som jquery ui progress bar. http://jqueryui.com/progressbar/
A ja by som použil ajax hovory na získanie percentadokončiť a použiť dokončenú hodnotu na aktualizáciu lišty priebehu, kým ste na tej istej stránke. Môžete asi zavolať pokrok každých 10 sekúnd, získať aktualizáciu a podľa toho aktualizovať panel postupu.
1 pre odpoveď č. 2
flush () a ob_flush () je váš priateľ tu. Pomocou týchto programov môžete odoslať výstup do vyrovnávacej pamäte.
Vyskúšajte tento príklad, ktorý som získal z 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