Ga naar inhoud

realtime klok (vbscript - ASP)


Aanbevolen berichten

Ik zit met een probleemke. Het is de bedoeling dat op een asp-pagina de tijd van de webserver wordt getoond. Dit lukt, maar de tijd wordt weergegeven van het moment dat je de pagina bekijkt. Maar het is de bedoeling dat de klok door blijft lopen, zodat de actuele tijd van de server getoond wordt. Hoe los ik dit op? Alvast Bedankt
Link naar reactie
't is allemaal ook zo moeilijk. [code:1:c1bb47fb3d] <% @Language="JScript" %> <html> <head> <title>Server time</title> <script language="JavaScript"> var serverTime = <%= new Date().getTime() %>; function clock() { var now = new Date(serverTime += 1000); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); document.forms.clock.display.value = hours + ((minutes < 10) ? ":0" : ":") + minutes + ((seconds < 10) ? ":0" : ":") + seconds; setTimeout("clock()", 1000); } </script> </head> <body onLoad="clock();"> <form name="clock"><input type="text" name="display"></form> </body> [/code:1:c1bb47fb3d]
Link naar reactie
Het idee is leuk, maar natuurlijk niet optimaal. Je zet de aanroep van de clock functie in een onload, dus bij een traag ladende pagina (of trage verbinding) krijg je al een groot verschil. Verder ga je ervan uit dat een setTimeout van 1000 msec ook precies 1000 msec is (en dat is dus niet altijd waar!!) aangezien je dit getal bij de tijd optelt. Nu zal dat waarschijnlijk niet echt schokkende verschillen veroorzaken, maar beter lijkt mij om tijdens het parsen van de pagina de offset van de client-tijd en de server-tijd te bepalen en vast te leggen in een var. Bij het updaten van de clock kan je dan gewoon de tijd van de client pakken en daar de offset bij optellen.
Link naar reactie
je hebt helemaal gelijk, ik had er niet eens bij stilgestaan. de bedoeling van m'n vorige post was echter het aantonen hoe (simpel) je met waarden die je op/van de server verkregen hebt verder kunt werken en niet het tot een optimale oplossing (= lap voorgebakken code) komen, dat is dennis z'n taak.
Link naar reactie
[quote:2220365106] [b:2220365106]Op 05-04-2002 1:48 schreef cim:[/b:2220365106] ... en niet het tot een optimale oplossing (= lap voorgebakken code) komen, ... [/quote:2220365106]Ik zie toch echt een lap voorgebakken code :razz: [no offence mode] Ik ken het kennisniveau van Dennis niet, maar ik denk dat een groot deel van de bezoekers van dit forum bovenstaande code niet helemaal op waarde kunnen inschatten. Dus dan had je beter een veel simpeler voorbeeld kunnen kiezen om de werking aan te tonen (of pseudo code), imho. [/no offence mode] Maar verder is de strekking van je verhaal duidelijk en ben ik het ook met je eens.
Link naar reactie
ok, lap optimaal, efficient, foutloos voorgebakken code :wink: en nu ik d'r over nadenk kom ik tot de conclusie dat een systeemklok ook niet met veel grotere regelmaat geupdate zal worden dan herhaaldelijke calls a.d.h.v timeout. De twee klokjes zullen hooguit wat "scheef" gaan lopen waarbij het script-klokje de, op dat ene moment verkregen, tijd misschien nog wel beter zal bijbenen (wishfull thinking).
Link naar reactie
[quote:07cd102056] Op 05-04-2002 9:40 schreef dennis_tielen: Alvast bedankt voor de reacties. Ik wil niet ondankbaar klinken, maar ik heb eigenlijk een Vbscript nodig, en mijn kennis hiervan is nogal beperkt [/quote:07cd102056] de mijne ook. maar vind je javascript voor clientside scripting niet een betere keuze? als je dan het script uit m'n eerdere post gebruikt + de door annie aangegeven verbeteringen doorvoert heb je waar je om vroeg.
Link naar reactie
[quote:0ac730e89e] Op 05-04-2002 9:40 schreef dennis_tielen: Alvast bedankt voor de reacties. Ik wil niet ondankbaar klinken, maar ik heb eigenlijk een Vbscript nodig, en mijn kennis hiervan is nogal beperkt [/quote:0ac730e89e]Ik wil niet al te flauw klinken, maar dan ga je toch zorgen dat je die kennis wel krijgt? Zo veel is er niet om uit te zoeken namelijk (zeker niet met de al aanwezige aanwijzigingen in deze post), imho.
Link naar reactie
Ha!!! Dat klokje van je komt recht uit een boek en als voorbeeld worden minuten en seconden onder de 10 als een 0 weergegeven. Dit is de oplossing: dit in head plaatsen <head> <script language=JavaScript> var Teller = null function toontijd() { var nu = new Date() var uren = nu.getHours() var minuten = nu.getMinutes() var seconden = nu.getSeconds() var tijdWaarde = "" + ((uren >24) ? uren -24 :uren) tijdWaarde += ((minuten < 10) ? ":0" + minuten : ":" + minuten) tijdWaarde += ((seconden < 10) ? ":0" + seconden : ":" + seconden) document.klok.klokbalk.value = tijdWaarde Teller = setTimeout("toontijd()",1000) } </script> </head> in body: <form name="klok"><input type=text name="klokbalk" size=10 value=""> </form> [ Dit bericht is bewerkt door: sdk op 2002-04-05 20:04 ]
Link naar reactie
[quote:b4ba59a604] Op 05-04-2002 20:02 schreef sdk: Ha!!! Dat klokje van je komt recht uit een boek en als voorbeeld worden minuten en seconden onder de 10 als een 0 weergegeven. etc.. [/quote:b4ba59a604] ja, alléén bezit ik niet één boek over javascript :smile: het Date object uit javascript is een regelrechte kloon van een (standaard) klasse uit de taal java vandaar misschien dat mijn code gelijkenis vertoont met de jouwe... hoewel je in java echter een instantie van klasse DateFormat kunt gebruiken om een betekenisvolle representatie van een Date te verkrijgen. [ Dit bericht is bewerkt door: cim op 2002-04-05 21:13 ]
Link naar reactie
dan heb jij een wel hééél speciale browser! heb je de code misschien gecopy-paste naar een bestand en deze via het fysieke pad aangeroepen? vervang dan het gedeelte <%= new Date().getTime() %> eens met new Date().getTime() dus weg met die "<%"-haakjes. want er zit voorzover ik het kan overzien geen logische fout in het desbetreffende gedeelte van de script. sterker nog jij gebruikt precies hetzelfde trucje om geformatteerde uitvoer te produceren.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...