Hej Christoph,
Am liebsten wäre es mir, die Uhren würden automatisch weiterlaufen, leben könnte ich auch mit einer Lösung, die bei einem Klick die einzelnen Werte neu berechnet, nicht aber die gesamte Seite neu lädt.
Pack den Code in eine Funktion und schau dir mal setInterval() an. Is genau was Du suchst.
Kurz zu deinem code, dieses Monstrum solltest Du am besten auf das nötigste reduzieren, insbesondere wenn er sekündlich ausgeführt wird. Einmal fällt mir auf, dass du viel zu viel Variablen deklarierst, nur ein Beispiel:
var berl = 1;
var singa = 8;
var sydn = 11;var jetzt = new Date ();
var LokZ = jetzt.getTime();
var ZeitV = jetzt.getTimezoneOffset() * 1000 * 60;
var utc = LokZ + ZeitV;var berlZV = berl * 60 * 60 * 1000;
var singaZV = singa * 60 * 60 * 1000;
var sydnZV = sydn * 60 * 60 * 1000;var berlZeit = utc + berlZV;
var singaZeit = utc + singaZV;
var sydnZeit = utc + sydnZV;
äquivalent zu:
var jetzt = new Date ();
var utc = jetzt.getTime() + jetzt.getTimezoneOffset() * 60000;
var berlZeit = utc + 3600000;
var singaZeit = utc + 2880000;
var sydnZeit = utc + 39600000;
Darüber hinaus würde ich mir überlegen ob es sinnvoll ist mehrmals pro Funktionsaufruf Date() zu instanzieren.
document.write("<table border=0 width=185 cellspacing=0 cellpadding=0>");
document.write("<tr>");
document.write("<td width=185>");
document.write("<b>Berlin</b>");
document.write("</td>");
document.write("<td width=200 align=right valign=middle>");
document.write("<font size=1> (GMT+1h)</font>");
document.write("</td>");
document.write("</tr>");
Zweitens, ist es ganz und gar nicht nötig, dass du für deine Uhr immer wieder dynamisch eine neue Tabelle schreibst. Schreibe die Tabelle einmal in html und überschreibe lediglich den Tabelleninhalt neu.
Schau dir dazu mal createTextNode() an.
Drittens, überlege dir align, valign und fontsize durch css zu ersetzen.
Ach und Viertens, Java hat nicht wirklich viel mit JavaScript zu tun ;)
Beste Grüße
Biesterfeld
Selfcode:
fo:| br:> n4:? ie:{ mo:} va:} de:] zu:| fl:| ss:| ls:]