Sven Rautenberg: Countdown-Funktion

Beitrag lesen

Moin!

Es ist jetzt hier: http://www.mastershrimp.com/test/testdaten/Countdowntest.html

Das ist nett und funktioniert bei mir prima.

Wie ihr seht gibt es dort eine Eingabe, mit der man sagen kann, ab wann und bis wohin gezählt werden soll. Das klappt auch wenn man von 1 bis x zählen lässt. Wenn man als Startwert "2" eingibt, dauert es erst etwas bis es läuft, und alles über 3 beginnt nie.

Dein Denkfehler ist hierbei wieder, dass du die Zahlen mit den Zeiten verknüpfst.

Zuerst: Auch mit Startwert 3, 4 oder höher funktioniert es.

Aber dein Zeitplan ist natürlich nicht so, wie du das erwartest:
Du läßt die Anzeige um 1 Uhr und 2 Uhr aus und beginnst um 3 Uhr. Logisch, dass du da erstmal eine lange Zeit lang warten mußt, bis was passiert.

Woran könnte das liegen? Ich glaube nämlich dass das früher (vor dem "Strukturieren") mal geklappt hat - nur ich seh den Fehler irgendwie nicht.

Wenn du gerne eine universelle Lösung für beliebige Countdowns/ups haben willst, ist der Ansatz, alle Timeouts auf einmal zu erstellen, sowieso nicht ideal. Die Ressourcen des Browsers sind begrenzt, die sollte man nicht unbedingt überlasten.

Was die unnötige Verzögerung angeht: Du muß dafür sorgen, dass ein Zählen von 3 bis 6 nicht erst um 3 Uhr beginnt, sondern schon um 1 Uhr. Also hängt die Zeit nicht direkt von der Zahl ab, sondern soll immer um 1 Uhr beginnen. Wenn die Zahl 1 um 1 Uhr angezeigt werden soll, ist die Abhängigkeit von Uhr und Zahl: Zahl = Uhr + 0.

Wenn um 1 Uhr die Zahl 3 angezeigt werden soll, ist die Abhängigkeit: Zahl = Uhr + 2.

Entsprechend kannst du die Abhängigkeitszahl errechnen, indem du Startzahl - 1 rechnest.

Logischerweise darfst du dann nicht mehr von 1 Uhr bis 6 Uhr zählen, sondern nur noch von 1 Uhr bis 3 Uhr. Also von 1 Uhr bis (ende - start - 1) Uhr.

Dein gesamter Versuch, das Skript universell zu machen, erfordert solche mathematischen Überlegungen, die ja im Prinzip wirklich simpel sind. Eine gute Note in Mathe wäre da hilfreich, zumindest aber das Vorhandensein von Papier und Bleistift, um sich die Abhängigkeiten mal genau zu überlegen.

Ach ja: Der Alternative Ansatz dazu wäre, einfach regelmäßig eine Funktion aufzurufen und darin eine globale Variable entsprechend zu manipulieren. Dann kann man sich die ganze Rechnerei größtenteils sparen. Das ist dann eher der Ansatz von oesi50.

- Sven Rautenberg

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