Avatar billede hansjacob Nybegynder
19. februar 2003 - 19:17 Der er 3 kommentarer og
1 løsning

Please wait besked

Hej

Jeg er igang med at lave et script, hvor afviklingen på serveren godt kan tage et stykke tid. Det er noget med at lave om på størrelsen af nogle billeder osv.

For at mine besøgende ikke forsvinder eller sidder og tæsker løs på opdater knappen, er der så ikke en måde hvorpå man kan afvikle noget af scriptet, sende det til browseren og så afvikle videre? Noget i stil med følgende:

<?
if($skalLaveThumb){
  echo "Vent venligst. Gerne 1 minut";
  sendOvenforFunktion();

  minLavBilledOmFunktion($billedFil);
  echo "<img src=blabla>";
}
?>

Så mangler jeg bare at vide hvad sendOvenforFunktion() hedder... og så lidt finpudsning ;-)
Avatar billede Thomas Nybegynder
19. februar 2003 - 20:35 #1
Umiddelbart er der 2 løsninger:
1) Brug flush() (www.php.net/flush). Det giver dig mulighed for at skrive output til browseren selvom dit script ikke er afsluttet.

2) Lav et script som du kalder - dette script laver så din vente-side. Scriptet skal så kalde det script som du reelt vil afvikle.... Så vil din browser stå som om den henter en side, mens der vises en venteside.

Der er en funktion der hedder register_shutdown_function (www.php.net/register_shutdown_function). Måske den ville kunne bruges i dit tilfælde? (har aldrig selv brugt den).
Avatar billede rzj Nybegynder
19. februar 2003 - 23:17 #2
det jeg gør (i mit tilfælde i forbindelse med upload) er at jeg med JavaScript åbner et 'Please Wait' vindue. Sker der fejl under script eksekvering så lukkes vinduet, når scriptet afsluttes med korrekt resultat så lukkes vinduet.
Vinduet lægger sig konsekvent ovenpå vinduet der er igang med at eksekvere upload scriptet.
Hagen ved det er at hvis brugeren har slået JS fra, ja så opstår der jo ikke noget 'Please wait' vindue....
Problemet er jo nemligt at du ikke kan eksekvere noget, der output'er til browseren da dette først afsendes fra server når HELE scriptet er færdigt med at eksekvere...
/raz
Avatar billede olebole Juniormester
20. februar 2003 - 02:41 #3
<ole>

Læs, hvad der skrives: brug flush():
  http://www.php.net/manual/en/function.flush.php  ;o)

/mvh
</bole>
Avatar billede hansjacob Nybegynder
20. februar 2003 - 07:31 #4
Tak for hjælpen. Det var lige det jeg manglede.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester