10. september 2001 - 07:44Der er
45 kommentarer og 1 løsning
NoOpdate View!
Hey Jeg er igang med at lave mig min egen chat sådan for øvelsen :)
Den bliver lavet i PHP og mit problem er nu at jeg ikke kan finde ud af hvordan man laver sådan så det opdatere flydende.. Altså hvor den ikke blinker sådan og hvor den ikke siger *KLIK* hver gang!
Jeg ved det kan lade sig gøre via javascript og noget parent.frames noget.. Men ikke hvordan
En god start på at løse problemet er at gennemtænke (grundigt) hvad dit system består af og hvordan data skal flyttes rundt i det.
Det system du beskriver i spørgsmålet består af: 2 eller flere chattere med hver sin browser din server. datastrømmen består af med uforudsigelige mellemrum inputter chatterne en linie der sendes til serveren serveren adderer linierne til en fil efterhånden som de kommer. med jævne mellemrum beder browserne om opdatering. serveren sender hele filen ved hver opdatering. browseren modtager den opdaterede fil og viser den.
Det virker, men som du selv siger giver det også en del \'henter ny side\' blink.
Det system du vist ønsker består af: 2 eller flere chattere med hver sin browser din server. datastrømmen består af med uforudsigelige mellemrum inputter chatterne en linie der sendes til serveren serveren tidsstempler de ankomne liner og husker dem. med jævne mellemrum beder browserne om opdatering. serveren sender de nye linier der er modtaget siden sidste gang DEN browser fik en opdatereing. browseren tilføjer de ny-modtagne linier efter dem den allerede har.
Der er et par forskelle: Serveren skal nu skelne, Hvilken browser er det der beder om opdatering. hver gang serveren sender opdatering skal serveren huske at nu er DEN browser opdateret (så den næste gang kan udvælge de linier den browsere endnu ikke har fået). browserne skal ikke genloade filen, men istedet tilføje til de linier de allerede har. browserne skal på en eller anden måde \'kvittere\' for de linier de har modtaget, så serveren ved det ikke er nødvendigt at sende dem igen.
Så: browsernes \'send en ny linie til serveren\' funktion er uændret. serverens \'modtag en ny linie fra browser\' funktion skal ændres så linierne gemmes hver for sig og sammen med information om hvad rækkefølge de kom i, og med lidt ekstra plads så serveren efterhånden kan notere hvilke browsere de er blevet sendt til (når en linie er sendt til \'Alle\' kan den slettes). browserens \'bede om opdatering\' funktion skal fortælle serveren hvilke linier den browser allerede har modtaget (fx ved at sende et ID for den sidst modtagne linie). serverens \'send opdatering\' funktion skal markere linier fremtil \'sidste modtaget ID\' som \'sendt til DEN browser\'. og så sende de linier der er ankommet siden da. browsernes \'modtage opdatering\' funktion skal tilføje linierne til de linier den allerede har og hvuske hvilken ID den sidst modtagne linie har.
Der skal laves ændringer både i dit php program på serveren og i dit javascript program i browserne.
du har sandsynligvis allerede en session variabel for hver browser, den kan bruges til at identificere DEN browser. linierne kan gemmes i hver sin fil eller som records i en database hvor der til hver record er tilføjet et sekventielt ID og et antal extra felter til at huske hvem de er blevet sendt til. liniernes ID felt skal sendes med ved opdatering så browseren kan returnere \'det sidste ID\' browserne henter opdateringen ind i en skjult ramme fx i form af en .js fil med liniernes ID og tekst skrevet som javascript variable (det kan gøres på mange måder). brovserne opdaterer ved fx en linie: document.body.innerHTML += de_ekstra_linier; (det er nemt, men IE-only, kan også gøres på mange andre måder)
Jeg vil anbefale spiser dette spm og leger lidt videre med det. Og så spørger igen når du kan stille lidt mere specifikke spørgsmål.
Jeg har lige snakket med en af dem som er med på textchat.dk og de har bare et standard webhotel, så de kan jo ikke have lavet om i deres php og javascript opsætning
men pointen er at du ikek behøver alt det der javascript men du kan lave det i PHP
altså en uendelig løkke som tjecker om der er kommet ngoet nyt i databasen hvis der er printer den kun det nye og ikke også det gamle det slipper databasen for overbelasning og så opdatere den uden klik hvert 1sek
netsrac har tilbudt en færdig chat. jiggypoof har tilbudt at hjælpe med at sætte den op. jeg har tilbudt en algoritme struktur så du kan lave det selv. fireworld og pornstars har tilbudt opdateringsfunktioner.
Hvad er det du ønsker siden intet af ovennævnte er nok?
du fatter da bare minus!!!! en uendelig løkke vil sige siden ikke skal opdateres for at hente ny data den bliver bare ved og ved og ved med at hente ny data
nej nej nej du acceptere bare ikke til dig selv.. for fucked da!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.