vevo1992 Skrevet 21. mai 2012 Del Skrevet 21. mai 2012 Hei! Jeg lager et kommentar system med PHP og jQuery. Har kodet det ferdig og det fungerer kjempe bra, men eneste problemet er at folk kan ikke se kommentaren som blir lagt inn live. De må ut og inn på kommentar system for å oppdatere alt. Jeg har brukt Ajax for å få flyt på systemet. Her er litt av koden i jQuery som jeg bruker når noen skal legge inn kommentar: var entry = $(.textarea).val(); $.ajax({ type: "POST", url: "postcomment.php", data: {kommentar: entry}, success: function(data) { $(".field").append(data) } }); Her er koden av jQuery som henter alle kommentarer $.ajax({ type: "GET", url: "getcomments.php", data: "commentsid="+postid success: function(data) { $(".field").append(data) } }); Men hvordan kan de lages slik at alle kommentarer bli oppdatert pr 5 sekund f.eks. uten bruk av load funksjonen i jQuery. Jeg ønsker at den sjekke om de finnes nye kommentarer å legger til de siste uten å måtte oppdatere alle 500 kommentarer. Takk for svar! Lenke til kommentar
Milktea Skrevet 21. mai 2012 Del Skrevet 21. mai 2012 Du kan holde i gang en forbindelse mellom nettleseren og serveren. Serveren kan da si fra når nye kommentarer legges inn. Det finnes nok JavaScript-biblioteker som gjør dette for deg, men noe arbeid må til på serveren også. Kan være vanskelig, avhengig av i hvor stor grad du vil bruke eksisterende løsninger og hvor flink du er! Den andre måten du kan gjøre det på er å bruke en timer som kjører en forespørsel hvert femte sekund og lagrer hva som er lastet inn. Du kan f. eks. holde styr på antall kommentarer som er lastet inn hos klienten med JavaScript og sende en AJAX-forespørsel der du kun ber om de nyeste meldingene. Går ut fra at commentsid er nøkkelen mellom artikkel og kommentarer her? * Klienten starter med 0 kommentarer og sender en AJAX-forespørsel "getcomments.php?commentsid=123&last=0". * Serveren sender alle kommentarene (la oss si det er 32 kommentarer) * Klienten venter fem sekunder * Klienten sender en AJAX-forespørsel "getcomments.php?commentsid=123&last=32" * Serveren henter kommentarer "SELECT * FROM xyz WHERE commentsid=123 OFFSET 32" * Klienten får alle de nye kommentarene (la oss si 5) og oppdaterer antall kommentarer lastet inn (32 + 5) * Osv, osv. Denne løsningen er noe mer ressurskrevende for både klient og server, men burde gå greit for mindre nettsider og er altså svært lett å implementere. 1 Lenke til kommentar
vevo1992 Skrevet 22. mai 2012 Forfatter Del Skrevet 22. mai 2012 Dette hørtes kjempe bra ut! Skal prøves ut! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå