Re: Order/Timing of Execution of PHP [message #176154 is a reply to message #176152] |
Sun, 27 November 2011 14:43 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 11/27/2011 7:01 AM, Jeff Gaines wrote:
>
> A comment in this group made me look at a website again. It has a couple
> of 'photo albums on it and when the visitor clicks on either of the
> album pages it uses
> imagecreatefromjpeg/imagecreatetruecolor/imagecopyresized/imagejpeg to
> create thumbnails from the full sized images with links to them.
>
> I decided that I should create the thumbnails locally and then upload
> them to save visitors wondering why there was a delay when visiting the
> pages. I use the following code:
>
> <div id="content">
> <article>
> <section>
> <br />
> <br />
> <p>
> Select Album To Create
> <br />
> </p>
>
> <hr>
> <a href="?run=all">All</a>
> <br>
> <a href="?run=album">Album Only</a>
> <br>
> <a href="?run=george">George\'s Album Only</a>
> <br />
> <br />
>
> <?php
>
> if (isset($_GET['run']))
> $linkchoice=$_GET['run'];
> else $linkchoice='';
>
> switch($linkchoice)
> {
> case 'album' :
> echo('<b>Creating Thumbnails For Album...</b>');
> echo('<br /><br />');
> createalbum();
> echo ('Album Thumbs Created');
> echo ('<br /><br />');
> break;
>
> case 'george' :
> echo('<b>Creating Thumbnails For George\'s Album...</b>');
> echo ('<br /><br />');
> creategeorge();
> echo ('George\'s Thumbs Created');
> echo ('<br /><br />');
> break;
> }
> ?>
>
> </section>
> </article>
> </div>
>
> What this does is show links for 2 options and then re-post the page.
>
> It works but doesn't echo 'Creating Thumbnails' etc. until it has called
> the function and returned from it.
>
> Is there a way to get these statements echoed before it calls the
> function or is this just the way php/server side functions work, in
> which case perhaps I should use Java?
>
No guarantee as long as you're using HTTP.
When you output something to the client, it goes in a PHP buffer. Once
the buffer fills up, the contents are forwarded on.
Now - you can use flush() to force the PHP buffer to be emptied.
However, it can still be buffered by the server, depending on the server
and its settings. And once it has been sent, the client may or may not
display the data immediately, depending on the client and its settings.
Changing to java won't help with the server and client settings, unless
you have an applet running on the client and using other than http (i.e.
another tcp/ip socket) to perform the communications.
But then I also wouldn't do this online - I'd just have a CLI script
which does them all, logging results to a file. Then as new pictures
are uploaded, create the thumbnails right then. It doesn't take that long.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|