This is a discussion on php script appearance in the time within the PHP Language forums, part of the PHP Programming Forums category; Hello, This is a simple script I test in a browser (firefox & opera) : echo "test 1<br /&...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hello,
This is a simple script I test in a browser (firefox & opera) : echo "test 1<br />" ; sleep(3); echo "test 2<br />" ; I expected to see "test 1" appearing first and then "test 2" 3 sec after. Still, I got "test 1" & "test 2" appearing "in one shot" after 3 seconds. How can I get what I expected (I precised in a browser because there's no pb in a command line execution) ? Thanks in advance, Lionel |
|
|||
|
lionel wrote:
> Hello, > > This is a simple script I test in a browser (firefox & opera) : > > echo "test 1<br />" ; > sleep(3); > echo "test 2<br />" ; > > I expected to see "test 1" appearing first and then "test 2" 3 sec after. > Still, I got "test 1" & "test 2" appearing "in one shot" after 3 seconds. > How can I get what I expected (I precised in a browser because there's no pb > in a command line execution) ? > > Thanks in advance, > > Lionel Try this echo "test 1<br />" ; ob_flush(); flush(); sleep(3); echo "test 2<br />" ; Arjen www.arjenkarel.nl |
|
|||
|
> Try this
> > echo "test 1<br />" ; > ob_flush(); > flush(); > sleep(3); > echo "test 2<br />" ; > > Arjen > www.arjenkarel.nl It nearly works, I got a notice message. Adding "on_start();" at the beginning makes it disappear. Thank you. Lionel |
|
|||
|
On 15.08.2007 08:42 Arjen wrote:
> lionel wrote: >> Hello, >> >> This is a simple script I test in a browser (firefox & opera) : >> >> echo "test 1<br />" ; >> sleep(3); >> echo "test 2<br />" ; >> >> I expected to see "test 1" appearing first and then "test 2" 3 sec after. >> Still, I got "test 1" & "test 2" appearing "in one shot" after 3 seconds. >> How can I get what I expected (I precised in a browser because there's >> no pb in a command line execution) ? >> >> Thanks in advance, >> >> Lionel > > Try this > > echo "test 1<br />" ; > ob_flush(); > flush(); > sleep(3); > echo "test 2<br />" ; > > Arjen > www.arjenkarel.nl > not ob_flush, just flush() -- gosha bine makrell ~ http://www.tagarga.com/blok/makrell php done right ;) http://code.google.com/p/pihipi |
|
|||
|
lionel wrote:
> Hello, > > This is a simple script I test in a browser (firefox & opera) : > > echo "test 1<br />" ; > sleep(3); > echo "test 2<br />" ; > > I expected to see "test 1" appearing first and then "test 2" 3 sec after. > Still, I got "test 1" & "test 2" appearing "in one shot" after 3 seconds. > How can I get what I expected (I precised in a browser because there's no pb > in a command line execution) ? > > Thanks in advance, > > Lionel > > You can't do it reliably. You can control what your code does. You can even control the PHP buffering. But you can't control buffering in the web server, which may delay the output until the buffer fills or the entire page is sent. You also cannot control the browser, which may delay displaying the data until the entire page is received. You can flush buffers and get it to work much of the time. But not necessarily all the time. -- ================== Remove the "x" from my email address Jerry Stuckle JDS Computer Training Corp. jstucklex@attglobal.net ================== |
|
|||
|
> You can't do it reliably.
> > You can control what your code does. You can even control the PHP > buffering. But you can't control buffering in the web server, which may > delay the output until the buffer fills or the entire page is sent. You > also cannot control the browser, which may delay displaying the data until > the entire page is received. > > You can flush buffers and get it to work much of the time. But not > necessarily all the time. Thanks for this precision. Lionel |