"Dennis Helligsø" <net87@mail.mira.dk> skrev i en meddelelse
news:5Hti6.76$kZ1.2955@news.get2net.dk...
> Og til de i dk.edb.internet.webdesign.serverside kan jeg fortælle, at jeg
> mangler en måde, at opdatere en HTML form/side uden, at siden skal
reloades.
> Og så var det at jeg har hørt noget om "streaming HTML"?
"streaming HTML" er der ikke noget der hedder. :)
Men på den anden side, så er der heller ikke noget der hedder DHTML.
Begrebet lever fint alligevel.
Der findes flere løsninger til det du skriver, hvilken du skal bruge kommer
HELT an på hvad du skal bruge det til. :)
Hvor lang tid går der mellem hver "opdatering"?
Hvor vigtigt er det at lidt ældre browsere kan følge med, og hvad er det der
skal opdateres?
Bruger du frames?
Jeg kan kort beskrive de første metoder jeg kommer til at tænke på. :)
Den simpleste består i, at der blot kommer noget mere tekst, når der er
mere. Kan fx. bruges til en simpel chat.
Min erfaring er, at browserne viser teksten når linjen er afsluttet, både
html-mæssigt, og i koden. (Altså både fx. "<br>" og linjeskift.)
Den bruger jeg fx. til meget simple "status"-ting, hvor mit php spytter en
linje ud hver gang der sker noget. Primært til debugging.
Tables er MEGET gode til at ødelægge denne teknik. :)
Lidt mere avanceret. Man kan spytte al det ud man kender, men stoppe lige
inden "</body"-tagget. Når man har mere, sender man noget javascript der kan
opdatere siden. Det kan være "document.write", hvilket giver ca. ovenstående
effekt. Dette ser dog ud til at virke uden at vente på <br> og linjeskift.
Men man kan også give et område en id, og lade javascript erstatte
"innerHTML" i den id. Fx:
<span id="klokken"></span>
<script>
document.klokken.innerHTML="22.00";
</script>
<script>
document.klokken.innerHTML="22.01";
</script>
Javascript kan også ændre indhold i form-elementer osv.
Den sidste metode jeg kan komme i tanker om nu, er lidt mere langhåret. :)
Den gør brug af frames, og ideen er at en frame opdaterer den anden.
Altså, en "stor" frame (måske den eneste synlige) har det indhold du ønsker
at opdatere. En lille-bitte frame (måske 1 pixel stor, altså nærmest
usynlig) har kontakt med serveren. Denne frame modtager javascript, som kan
opdatere den "store" frame.
Denne metode kan fx. klare "timeout"-problemerne som ovenstående metoder kan
give. Altså, hvis browseren ikke modtager data i et stykke tid, så stopper
den med at lytte. Den usynlige frame derimod kan reloade sig selv, modtage
nye data, og redigere den store frame. Og dette er helt uden at reloade den
store frame.
Der er en artikel om hvordan man gør dette med php her:
PHP & JavaScript World Domination Series: Storing data in the client.
http://phpbuilder.com/columns/luis20000724.php3
Hvis du vil have flere specifikke detaljer, må du fortælle noget mere om
hvilke(n) teknologi(er) du har til rådighed (PHP; ASP, JSP...), og meget
gerne hvad det skal bruges til.
PHP diskuteres i: dk.edb.internet.webdesign.serverside.php
ASP i: dk.edb.internet.webdesign.serverside.asp
Resten diskuteres her. Dvs. andre teknologier samt ikke-sprog-specifikke
(hmm...) emner. :)
Mvh.
Niels Andersen