Chat - hent nye fra DB

Tags:    php

Ja jeg er så igang med en chat.

http://www.udvikleren.dk/thread.php?techid=&f=16&t=150'

I dette link bliver der omtalt en funktion der kun henter nye beskeder og skal indsættes i mySQL koden. Kender i noget til den?

Frederik



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du kan lave en skjult frame, som du opdaterer. Så kan der fx være et javascript, der udskriver NYE beskeder. Lad os sige du skrive dine beskeder i en <div> nu i stedet for en iframe. giv diven et id="beskeder" og din nye iframe et name="loadframe" og lav et javascript som

var sidstehent = 0;
window.setInterval(window.loadframe.location.href = 'hentnye.php?tid='+sidstehent, 500);

hentnye.php skal så hente alle beskeder nyere end $_GET['tid'] og udskrive:

Fold kodeboks ind/udKode 


Håber du forstår hvad jeg mener, men jeg vil sige at du slet ikke bør have en chat over HTTP, så hverken din metode eller den jeg har beskrevet er gode. Desuden virker dit eksempel www.fredie89.dk/fredie89 ikke, så jeg troede det var det du spurgte om :)



Det går ud på at hente en JavaScript-kode skjult i baggrunden, og denne kode indsætter så de nye beskeder.


Men jeg vil som sædvanligt fraråde at lave chat-scripts over HTTP, da det kun er klienten (browseren) der kan starte en kommunikation. Den er derfor nødt til konstant at opdatere spørge efter nye beskeder. Hvis du vælger et interval på flere sekunder, vil chatten ikke virke flydende, og den er ikke god at bruge. Er der flere inde i chatten, vil det svare til at lave et DoS-angreb mod sin egen server (det er derfor webhoteller ikke tillader sådanne scripts).



Det går ud på at hente en JavaScript-kode skjult i baggrunden, og denne kode indsætter så de nye beskeder.


Men jeg vil som sædvanligt fraråde at lave chat-scripts over HTTP, da det kun er klienten (browseren) der kan starte en kommunikation. Den er derfor nødt til konstant at opdatere spørge efter nye beskeder. Hvis du vælger et interval på flere sekunder, vil chatten ikke virke flydende, og den er ikke god at bruge. Er der flere inde i chatten, vil det svare til at lave et DoS-angreb mod sin egen server (det er derfor webhoteller ikke tillader sådanne scripts).


Hmm.. Den fik jeg ikke helt.. se www.fredie89.dk/fredie89 og login med betatester som brugernavn og test som adgangskode.

*-)



Ja, der står ikke rigtigt noget i chatten, undtagen lige når man har skrevet noget. Du må lige skrive koden, hvis jeg skal kunne se hvad der er galt



Ja, der står ikke rigtigt noget i chatten, undtagen lige når man har skrevet noget. Du må lige skrive koden, hvis jeg skal kunne se hvad der er galt


Jeg ville bare vide om der var en bedre løsning end:

<script>
setTimeout('window.location.reload();',5000);
</script>

og om det er dumt at bruge?



t