[ Ovomojela @ 29.06.2010. 18:13 ] @
Dakle, prilikom otvaranja stranice treba da imam na kraju deo koji će odložiti izvršenje upita za npr. 3 sekunde i tek potom izvršiti upit. Za funkcijom sleep(3) ne ide jer ta funkcija "uspava" čitavo otvaranje stranice, a meni treba da se stranica normalno otvori i kad dodje do kraja stranica da ga saceka taj deo što meni treba koji će tek nakon 3 sekunde da bude "aktivan" i izvrši upit. dakle nešto tipa:

Code:
<?php

echo "Ovaj deo se normalno učita i ispiše";

// e sada ide to što meni treba na ovom mestu da stoji a to je da se tek nakon
// npr. 3 sekunde po učitavanju stranice izvrši npr. ovaj upit: mysql_query("UPDATE...");

?>


Hvala svima!

[Ovu poruku je menjao Goran Rakić dana 29.06.2010. u 19:34 GMT+1]
[ Goran Rakić @ 29.06.2010. 18:38 ] @
PHP se izvršava na serveru tako što korisnikov preglednik pošalje HTTP zahtev veb serveru. Veb server izvrši PHP skriptu i rezultat pošalje nazad.

Za taj efekat "rezultat poslat, a PHP još uvek radi" moraš da prebegneš nekom triku. Jedna varijanta je da iz javascripta nakon tri sekunde pošalješ novi AJAX zahtev i izvršiš PHP skriptu koja će sada samo da pokrene upit.

Druga varijanta je da nateraš PHP da kroz veb server pošalje odgovor iako skripta i dalje radi. Zavisno od toga kako je preglednik (engl. browser) napisan ovo može da radi kako očekuješ (stranica se otvorila i onda stiže rezultat upita) ili može da bude prikazan prazan ekran (preglednik čeka ceo rezultat, što uključuje i te tri sekunde).

Da forsiraš ispis koristi funkciju flush().
[ Ovomojela @ 29.06.2010. 20:20 ] @
Citat:
Goran Rakić:
Za taj efekat "rezultat poslat, a PHP još uvek radi" moraš da prebegneš nekom triku. Jedna varijanta je da iz javascripta nakon tri sekunde pošalješ novi AJAX zahtev i izvršiš PHP skriptu koja će sada samo da pokrene upit.


OK, hvala, može li neko uputstvo za ovo, neki koristan link ili bilo šta, tražio sam na netu i sve sam našao neke js funkcije koje vrše redirekciju nakon određenog perioda ili izbacuju Alert ali nigde nisam našao kako konkretno neku drugu radnju poput izvršavanja upita i sl. Hvala!

[ kazil @ 29.06.2010. 20:31 ] @
Za ovo pogledaj setTimeout() javascript funkciju i kako se prave ajax zahtevi. Jednostavno, nakon x sekundi, koje postavis sa setTimeout(), pozoves neku svoju javascript funkciju, koja dalje pravi ajax zahtev ka nekom php skriptu koji dalje radi to sto zelis da uradi.

Za rad sa ajaxom preporucujem da pogledas jQuery - http://jquery.com (ajax deo u dokumentaciji: http://docs.jquery.com/Ajax)

P.S.: Najverovatnije da je neko pitao isto ili slicno, tako da pretrazi Javascript i AJAX forum. Da nekim cudom ne nadjes odgovor, postavi novo pitanje na taj forum sa delom koda gde je zapelo :)