Avatar billede mystiq Nybegynder
10. september 2001 - 07:44 Der 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

Bla. har jeg set at www.textchat.dk har lavet det!!

Der er 350 point til den som kan forklare mig det så selv jeg fatter det... *G*
Avatar billede netsrac Praktikant
10. september 2001 - 07:52 #1
Du kan downloade denne www.cnh.dk/eksperten/chat.zip det er en meget simpel chat i asp som benytter sig af princippet.
Avatar billede mystiq Nybegynder
10. september 2001 - 07:55 #2
Beklager men det hjælper mig intet da jeg er SÅ dårlig til asp, og jeg vil have det rådt og forklaret :)

Sorry...

Jeg har hentet den og kigget men jeg fatter seriøst nada af asp
Avatar billede jiggypoof Nybegynder
10. september 2001 - 07:55 #3
Stener, måde det er lavet på...LOL men meget snedigt brug af innerhtml og layers
Avatar billede jiggypoof Nybegynder
10. september 2001 - 07:56 #4
<SCRIPT LANGUAGE=\"JavaScript\">
if (navigator.appName==\"Microsoft Internet Explorer\")
  {
  parent.chatframe.layerIE.innerHTML=\'<FONT FACE=\"Tahoma\" SIZE=\"2\"><% =chatindhold %></FONT>\';
  parent.info.layerIEtop.innerHTML = \'<FONT FACE=\"Tahoma\" SIZE=\"1\" COLOR=\"FFFFFF\">Du loggede ind klokken: <% =application(\"logintime\" & uid) %><BR>Du har været online i: <% =datediff(\"n\", application(\"logintime\" & uid), time()) %> minutter.</FONT>\';
  }
  if (navigator.appName==\"Netscape\")
  {
  self.parent.chatframe.document.layers.layerNC.document.open();
  self.parent.chatframe.document.layers.layerNC.document.write(\'<FONT FACE=\"Tahoma\" SIZE=\"2\"><% =chatindhold %></FONT>\');
  self.parent.chatframe.document.layers.layerNC.document.close();
  self.parent.info.document.layers.layerNCtop.document.open();
  self.parent.info.document.layers.layerNCtop.document.write(\'<FONT FACE=\"Tahoma\" SIZE=\"1\" COLOR=\"FFFFFF\">Du loggede ind klokken: <% =application(\"logintime\" & uid) %><BR>Du har været online i: <% =datediff(\"n\", application(\"logintime\" & uid), time()) %> minutter.</FONT>\');
  self.parent.info.document.layers.layerNCtop.document.close();
  }
location.href = \'blank.asp\';
</SCRIPT>
Hvor <% =chatindhold %> er indholdet af chatten
Avatar billede mystiq Nybegynder
10. september 2001 - 07:57 #5
Sorry du snakker sort... Beklager.. Jeg fatter INTET asp INTET!!
Avatar billede mystiq Nybegynder
10. september 2001 - 07:57 #6
Jeg vil gerne have alt det jeg skal bruges.. Også forklare nøjagtigt hvordan jeg sætter det op

UDEN asp tags da de bare forvirre mig endnu mere
Avatar billede jiggypoof Nybegynder
10. september 2001 - 07:58 #7
mystiq  > er du på icq så kan jeg hjælpe dig, men netsrac skal ha pointsne alligevel, men er du på icq?
Avatar billede netsrac Praktikant
10. september 2001 - 07:58 #8
Du vil da vist heller ikke prøve.
Avatar billede netsrac Praktikant
10. september 2001 - 07:59 #9
jiggypoof >> Hvis du hjælper ham med at sætte det op skal du også have nogle point.
Avatar billede jiggypoof Nybegynder
10. september 2001 - 07:59 #10
netscar, klokken er også 8 am du ;)
Avatar billede jiggypoof Nybegynder
10. september 2001 - 08:00 #11
netsrac, sorry jeg er sku nok for træt til at stave,
btw vedr. points, så skylder du mig bare en ik ;9
Avatar billede jiggypoof Nybegynder
10. september 2001 - 08:03 #12
mystiq> svar lige ellers finder jeg noget andet at bruge min tid på ;9
Avatar billede jiggypoof Nybegynder
10. september 2001 - 08:06 #13
ses skal på crapperen....held og lykke til mystiq
Avatar billede jakoba Nybegynder
10. september 2001 - 09:44 #14
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.
 
mvh JakobA
Avatar billede jiggypoof Nybegynder
10. september 2001 - 09:45 #15
jacobA > crap, en som er morgen frisk hva ;)
Avatar billede fireworld Nybegynder
10. september 2001 - 13:47 #16
MustiQ din din points mishandler !!
Avatar billede fireworld Nybegynder
10. september 2001 - 13:52 #17
mustiq du er sikkert ude efter en RZC opdatering


<?
set_time_limit(0);
$larst = 1;
while(1){
$get=mysql_query(\"select id,txt from chat where id>\'$larst\'\");
while($sql=mysql_fetch_array($get)){
print\"$sql[txt]\";
$larst=$sql[id];
}
flush();
sleep(1);
}
?>

noget lign. det.... serveren skal være unix for at kunen bruge FLUSH som er nødvendig!
Avatar billede mystiq Nybegynder
10. september 2001 - 16:16 #18
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
Avatar billede fireworld Nybegynder
10. september 2001 - 16:31 #19
ehhh?
Avatar billede mystiq Nybegynder
10. september 2001 - 16:31 #20
fireworld > Hvad er en rzc ?
Avatar billede mystiq Nybegynder
10. september 2001 - 16:36 #21
Jacoba > kan du ikke forklare hvordan det sættes oP+
Avatar billede jakoba Nybegynder
10. september 2001 - 16:48 #22
nej.
Avatar billede mystiq Nybegynder
10. september 2001 - 16:54 #23
Damn
Avatar billede mystiq Nybegynder
10. september 2001 - 17:03 #24
Jeg ved det kan lade sig gøre da jeg har set det både på textchat.dk og tjad.dk

Bare hvordan?
Avatar billede pornstars Nybegynder
10. september 2001 - 17:20 #25
<script language=\"javascript\">

function skriv(id,tekst) {
    if (document.layers) {
        document.layers[id].document.open();
        document.layers[id].document.write(tekst);
        document.layers[id].document.close();
    }
    else if (document.getElementById) document.getElementById(id).innerHTML = tekst;
    else if (document.all) document.all[id].innerHTML = tekst;
}

function opdater() {
    skriv(\"chat\",\"<? hiv ud fra database ?>\")
    setTimeout(\"opdater()\",1000)
}
</script>

<body onload=\"opdater()\">
<div id=\"chat\" style=\"position:absolute; top:10; left:10;\"></div>

</body>

Jeg ved ikke om det kan bruges, men måske.
Avatar billede fireworld Nybegynder
10. september 2001 - 18:00 #26
mustiq... RZC ..-> www.rzc.dk

altså samme måde som rasmus opdatere på!
Avatar billede mystiq Nybegynder
10. september 2001 - 19:59 #27
Nej hans måde laver klik lyde
Avatar billede fireworld Nybegynder
10. september 2001 - 20:01 #28
Nope... ikke over i TEKST VINDUET
Avatar billede fireworld Nybegynder
10. september 2001 - 20:02 #29
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
Avatar billede mystiq Nybegynder
10. september 2001 - 20:18 #30
Jeps men det fede er at via javascript kan man helt ungå den klik lyd!
Avatar billede mystiq Nybegynder
10. september 2001 - 20:21 #31
Jeg fatter hellere ikke helt at hans ting hvor man kan rykke rundt med den der figur ting kan se sådan der ud?
Avatar billede mystiq Nybegynder
10. september 2001 - 20:53 #32
HJÆÆÆÆÆÆÆÆÆÆÆLP alle sammen :(
Avatar billede fireworld Nybegynder
10. september 2001 - 21:13 #33
JAAAH men ejg prøver at forkjalre dig DU KAN LAVE DET HELE I PHP det vil sige INGEN KLIK LYD!
Avatar billede mystiq Nybegynder
11. september 2001 - 18:43 #34
Jamen man kan jo se det siger klik lyde på den chat du snakker om ?
Avatar billede mystiq Nybegynder
12. september 2001 - 09:29 #35
er der ingen der kan hjælpe med dette ???+
Avatar billede jakoba Nybegynder
12. september 2001 - 09:43 #36
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?
Avatar billede mystiq Nybegynder
13. september 2001 - 16:29 #37
Der er 350 point til den som kan forklare mig det så selv jeg fatter det... *G*


Mener jo nok at jeg skal bruge hjælp til at få det sat helt op!!!
Avatar billede mystiq Nybegynder
14. september 2001 - 15:00 #38
jiggyproff > Hvad er dit icq nr?
Avatar billede fireworld Nybegynder
14. september 2001 - 15:11 #39
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

prøv at lav en


<?

while(0) {

print\"hej\";
flush();
sleep(1);
}
?>


ser du noget blink klik imens den kører?

Avatar billede mystiq Nybegynder
14. september 2001 - 15:36 #40
Du siger den ikke *klikker* og det går den!

Prøv og ryk med den der mand på rzc = KLIK!
Avatar billede fireworld Nybegynder
14. september 2001 - 15:40 #41
Læs nu for satan da hvad jeg skriver
Avatar billede mystiq Nybegynder
14. september 2001 - 18:07 #42
Beklager jeg kan ikke bruge din løsning da jeg også har grafik og andet som skal relodes
Avatar billede mystiq Nybegynder
19. september 2001 - 17:50 #43
Der er endnu ikke kommet nogen løsning og jeg vælger derfor at lukke
Avatar billede netsrac Praktikant
19. september 2001 - 19:04 #44
Du har bare fået en bunke løsninger...
Avatar billede mystiq Nybegynder
19. september 2001 - 20:03 #45
Ja men jeg bad om hjælp til at sætte den løsning som folk gav op!
Avatar billede fireworld Nybegynder
19. september 2001 - 20:12 #46
nej nej nej du acceptere bare ikke til dig selv.. for fucked da!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester