Am Dienstag, 1. März 2005 01:24 schrieb Richard Lynch:
Cajus Pollmeier wrote:
I'd like to know your opinion about how to handle events that may take
more than a minute to finish in PHP. In this case, the code is
performing a recursive action on a large LDAP tree where I'd like to
present something like a status page (Please wait, blah blah with
some animated gif or so), while the action takes place in background.
Is it possible to fork away this PHP code and set some SESSION vars to
trigger the end of the status page? Or do I have to put this action
behind a one pixel image and act when the page is really complete?
Also I'm not sure how to handle the script execution timeout problem...
Do you really expect the user wants to sit there for all the time waiting
for the process to finish?
Yes. Should be the case, because later actions would depend on a changed data
set. In this case I'm renaming entries of a complete subtree. This may last a
long time and should not be abortable in any way. While this may change the
data the user is working on, he/she should wait till it is completed.
Is there ANY way to factor out that code and do it before they get there?
Obviously not for a search where the user types in what they want, but is
that what you are doing? You don't say; I can't guess.
See above.
Basically, if I have to sit there waiting, then I'm not really all that
impressed with an animated gif or whatever...
Not you. But most people are not impressed by a spinning gear, globe or
whatever your browser shows up.
Perhaps you have them logged in already, and you could record their search
parameters and assign it an ID, and perform the search in the background,
and then have a page to deliver the results to later.
I'm not sure how I could fork away a PHP process to be not interruptible, or
behave like you're writing above.
Just thinking about a session thingie. Place a little iframe on the page which
reloads once a second and check a session variable if we're finished. If we
are, reload the parent page.
Thanks,
Cajus
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php