Det kan du ikke på den måde.
Det du kan lave er at lave det der hedder Long Polling. Det vil sige at du har et PHP-script på serveren der har sat max_execution_time til 0 - det vil sige den kører indtil noget stopper den, den kan ikke time ud.
Derefter laver du noget ala:
while($ingen_nye_beskeder){
//lav dit query her, og sæt $ingen_nye_beskeder = false hvis der er nye beskeder
}
og så outputter du beskeden når din løkke er færdig.
med AJAX laver du så et request til dette script, og sætter den til, som callback, at lave et nyt request til samme script så snart den får et svar.
Der sker så følgende:
1: Klienten requester besked.php
2: Besked.php venter med den åbne forbindelse indtil der er kommet en besked.
3: Klienten modtager beskeden via den åbne forbindelse, og lukker den
4: Klienten åbner med det samme en ny forbindelse, GOTO 1.
Det er så tæt du kommer på PHP-baseret push. Det fungerer fint, men kan godt blive sløvt hvis du har mange simultane klienter.
Hvis du ikke er tvunget til at bruge PHP udelukkende, men kan installere ting på serveren, vil jeg snarere anbefale dig at kigge på en såkaldt comet-server, som er noget server-software der laver rigtig Ajax-push. APE har jeg hørt meget godt om.
http://www.ape-project.org/
Indlæg senest redigeret d. 29.09.2010 11:39 af Bruger #8223