Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izvršenje upita nakon određenog broja sekundi

[es] :: PHP :: PHP za početnike :: Izvršenje upita nakon određenog broja sekundi

[ Pregleda: 1404 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ovomojela

Član broj: 198977
Poruke: 58
*.dynamic.isp.telekom.rs.



Profil

icon Izvršenje upita nakon određenog broja sekundi29.06.2010. u 18:13 - pre 168 meseci
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]
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Izvršenje upita nakon određenog broja sekundi29.06.2010. u 18:38 - pre 168 meseci
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().
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

Ovomojela

Član broj: 198977
Poruke: 58
*.dynamic.isp.telekom.rs.



Profil

icon Re: Izvršenje upita nakon određenog broja sekundi29.06.2010. u 20:20 - pre 168 meseci
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!

 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.mbb.telenor.rs.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: Izvršenje upita nakon određenog broja sekundi29.06.2010. u 20:31 - pre 168 meseci
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 :)
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Izvršenje upita nakon određenog broja sekundi

[ Pregleda: 1404 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.