Hörhundetrainingstool - setTimeout ()
In einem früheren Artikel habe ich mit der iterativen Entwicklung eines kleinen JavaScript-Programms begonnen, um einen Hund für die Durchführung von akustischen Warnungen zu schulen. Bisher enthält das Programm, das Sie hier anzeigen können, eine eingestellte Alarmtaste, die beim Drücken eine Warnung anzeigt, dass der Alarm ausgelöst wurde (obwohl der akustische Alarm noch nicht konfiguriert ist). Als nächsten Schritt werden wir werden die Wartezeit zwischen dem Drücken der Taste "Alarm einstellen" und dem Alarm, wie er ist, tatsächlich einstellen.

JavaScript und das Document Object Model (DOM) verfügen über eine Reihe von Ereignishandlern, die darauf warten, dass etwas passiert (d. H. onClick, onMouseOver, ...); In diesem Fall möchten wir jedoch warten, bis eine gewisse Zeit verstrichen ist. Das DOM bietet auch eine Methode, um dies zu tun setTimeout (). setTimeout () Zum Ausführen sind zwei Argumente erforderlich, ein Code oder eine Funktion, und die Wartezeit in Millisekunden, bevor sie ausgeführt wird. set_timeout () Sie können auch eine optionale dritte Option verwenden, mit der die verwendete Skriptsprache festgelegt wird - JavaScript, JScript oder VBScript (dies ist Teil des DOM, nicht JavaScript, denken Sie daran.)

Unser neuer Code sieht folgendermaßen aus:


Funktion do_alarm () {
// Bestimmen Sie die Wartezeit in Sekunden
wait_secs = 52; // erstmal einfach definieren
// Warten Sie, bis die Zeit abgelaufen ist und ertönt ein Alarm
setTimeout (sound_alarm (), (wait_secs * 1000))
}


Das funktioniert gut, ist aber schwer zu sagen, da sich nach dem Drücken der Taste nichts ändert, bis die Zeit abgelaufen ist. Das DOM kann uns aber auch dabei helfen. Ich habe die folgenden 2 Zeilen am Anfang des hinzugefügt do_alarm () Funktion:


// Alarm als gesetzt markieren
document.getElementById ("alarm_button"). disabled = true
document.getElementById ("alarm_button"). value = "Alarm Set"


Dies ändert die Taste, die wir gedrückt haben, um den Alarm auf "Alarm Set" zu setzen, und deaktiviert ihn. Wenn wir den Alarm wieder verwenden möchten, müssen wir die Schaltfläche wieder in den ursprünglichen Zustand versetzen. Ich habe dies der Funktion sound_alarm () hinzugefügt. Hier können Sie den gesamten Code anzeigen und ein funktionierendes Beispiel ausprobieren.