Avatar billede RJFreelance Praktikant
19. januar 2009 - 22:04 Der er 8 kommentarer og
1 løsning

Opdatere et div

Hej
Jeg har et div. I dette div skriver jeg nogle linier.
Som det er nu, ryger den nye linie ind nederst, men jeg vil meget gerne have denne øverst. Koden jeg bruger til at opdatere mit div med ser således ud:

parent.top1.document.getElementById("chat").innerHTML+='<br>'+txt;
    document.write(txt);

Hvad kan jeg ændre så den nye linie ryger øverst.

på forhånd tak
Avatar billede tjens Nybegynder
19. januar 2009 - 23:18 #1
parent.top1.document.getElementById("chat").innerHTML =  txt + '<br>'
parent.top1.document.getElementById("chat").innerHTML;
Avatar billede olebole Juniormester
20. januar 2009 - 16:08 #2
<ole>

(I)frames har ikke været del af markup-standarderne siden 99 - innerHTML har aldrig været del af nogen standard - og det tager i allerbedste fald serveren 4-5 gange så lang tid at udskrive HTML-formaterede data i forhold til, hvad det tager at formatere samme data i JSON eller XML.

Løsningen hedder Ajax. Da der i skræmmende grad skrives vrøvl om emnet i artikler og tutorials, kan det dog være overordentlig vanskeligt at lære på nettet, hvis man ikke i forvejen er rigtig stærk i bl.a. JavaScript og DOM  :o|

/mvh
</bole>
Avatar billede RJFreelance Praktikant
20. januar 2009 - 16:15 #3
Jeg har også tænkt på løsningen med ajax, men har INTET kunne finde om hvordan det egentligt fungerer, sådan praktisk. Kan finde ud af at man via ajax kan opdatere nogle objekter/tekster o.l. uden at "reloade" hele siden.

Men hvad kræver ajax af serveren? Og hvordan lærer jeg mere om det?

Som du sikkert kan regne ud er det bare til at opdatere teksterne i en simpel chat.
Avatar billede RJFreelance Praktikant
20. januar 2009 - 17:00 #4
Efter at have læst en artikel om ajax på w3c schools, forstår jeg det hele meget bedre.
Det er jo faktisk ret smart.

Tror ikke det er et problem at lave det om til ajax nu. Så meget har jeg forstået det.

Mit problem ligger stadig i at skrive den nyeste "opdatering" øverst.
Avatar billede olebole Juniormester
20. januar 2009 - 17:08 #5
Dér begynder problemerne først for alvor - for hans artikler har ikke meget med Ajax at gøre  :o|

Jeg har skrevet en XMLHttpRequest-wrapper, som i al beskedenhed er den bedste og mest velopdaterede, jeg kender til på nettet:
    http://www.dengodekode.dk/artikler/ajax/xmlhttprequest_wrapper.php

- og i denne tråd viser jeg et par små eksempler på brugen:
    http://www.eksperten.dk/spm/817625
Avatar billede RJFreelance Praktikant
20. januar 2009 - 17:37 #6
Har du tid/lyst til at prøve at forklare lidt nærmere hvad jeg skal bruge for at lave det? Har forstået at jeg skal bruge din wrapper, til at tjekke om xmlhttprequest'en kan bruges på ens browser, men forstår ikke helt hvordan jeg så kommer videre.
Kan vidst godt finde ud af at sende data til server, og modtage dataen igen, men hvordan laver jeg det effektivt? Og hvordan får jeg smidt de modtagede linier over hinanden uden at hente alle linierne hver gang?
Avatar billede olebole Juniormester
20. januar 2009 - 18:04 #7
Det er en laaaaang historie! Ajax er ikke noget, du lige lærer på en uge. Desuden har jeg influenza med over 39 i feber, så det bliver et nej  =)

Wrapperen undersøger godtnok en masse, men det skal du ikke tage dig af. Når den ligger øverst i dit dokument, opretter du altid et XMLHttpRequest objekt med samme syntaks i alle moderne browsere:
    var oHttp = new XMLHttpRequest();
Avatar billede RJFreelance Praktikant
20. januar 2009 - 18:46 #8
Det er også helt i orden, men hvordan undgår man at den tjekker hver gang man opretter objektet? For det er vel spild at den tjekker mere end en gang?
Avatar billede tjens Nybegynder
20. januar 2009 - 21:10 #9
Kan se der mangler et plus i mit svar.

parent.top1.document.getElementById("chat").innerHTML =
  txt + '<br>' + parent.top1.document.getElementById("chat").innerHTML;
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