Sven Rautenberg: Problem mit setTimeout() bei Opera 7.11

Beitrag lesen

Moin!

Wie ich per JS die Clientzeit auslesen kann weiß ich zwar nicht, krieg ich aber wohl rel. schnell raus.

Du suchst das Javascript-Objekt "Date" http://selfhtml.teamone.de/javascript/objekte/date.htm.

Es bietet sich an, mit getTime() die Sekundenzahl zu ermitteln - einmal vom Client, und einmal vom Server. Der Server kann entweder die Sekunden selbst ermitteln, oder aber seine Zeit in Javascript-Code umsetzen, welcher ein eigenes Date-Objekt erstellt und daraus dann die Sekunden ermittelt.

Wie man dann die Differenz ermittelt, ist dir sicherlich klar.

Aber:
Wie soll des sekundenmäßige Abgleichen funtionieren ?
Oder gibt es bereits eine JS interne Funktion, die jedes Sekunde die Zeit ausgibt ?
Weil wenn nicht hab ich ja das gleiche Problem, das sich meine Funktion alle 1000ms selbst aufrufen soll und ich steh wieder am Anfang :)

Für die korrekte Zeitausgabe reicht es ja, wenn _ungefähr_ alle Sekunde die Funktion aufgerufen wird und dann die _genaue_ (weil durch den Computer und nicht durch dein Javascript weitergezählte) Zeit ausgibt.

Wenn das nicht _exakt_ jede Sekunde geschieht, ist das kein Problem. Wenn das Skript länger als eine Sekunde braucht, wird irgendwann einmal um zwei statt eine Sekunde weitergezählt - und außerdem ticken die Sekunden nicht 100% exakt im Sekundentakt hoch. Dürfte also herzlich egal sein. Und wenn das Skript weniger als eine Sekunde benötigt, dann wird irgendwann einmal _nicht_ eine Sekunde hochgezählt.

Summa summarum: Du kriegst eine wirklich 100% exakte Uhr ohnehin nicht dargestellt - aber wenn du die eingebaute Uhr des Computer benutzt, kriegst du wenigstens die richtige Zeit in unregelmäßigen Abständen ausgegeben.

Ach ja: Das Date-Objekt hilft dir natürlich auch, um die Sekundenzahl wieder in eine darstellbare Zeit zu wandeln. Siehe setTime() und das Beispiel dort.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|