Hallo,
ich weiß, ist eigentlich ein Python Forum, dennoch frage ich einfach hier, in der Hoffnung auf akkurate Hilfe, Sorry und Danke im Voraus!
Ich benötige ein Intervall, sodass eine Funktion quasi nur für einen gewissen Zeitraum ausgeführt wird. Wie heißt das im Fachjargon, unabhängig von der Sprache?
Intervall in JS -_-
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Zeitintervall? Zeitraum? Time Interval? Duration?
In specifications, Murphy's Law supersedes Ohm's.
- __blackjack__
- User
- Beiträge: 13069
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Timeout oder Zeitüberschreitung wäre noch so ein Begriff aus dem Umfeld.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Ok, Intervall habe ich schon mal gehört im Zusammenhang mit JavaScript. Kurz recherchiert und dennoch eine Frage:
Heißt die Funktion xyz, wird für 1000 ms aufgerufen? Meine Funktion xyz, sollte ein Boolean setzten können. Eine Variable soll für den Zeitraum des Intervalls einen Wert auf true oder false gesetzt bekommen... aber wie geht der Wert wieder zurück auf false, dazu muss ich mir nochmal Gedanken machen... Vielleicht noch ein kleiner Tipp, aber noch nicht das Resultat verraten, ich will es erst noch selber probieren
Edit:
Dann vielleicht über eine Art Zustandsvergleich, ist das Intervall aktiv, wird die Var = true gesetzt, anschließend könnte ein zweites Intervall Var = false setzten ... mh irgendwie umständlich.
Code: Alles auswählen
setInterval(
aktiviere_xyz()
{
xyz()
}, 1000);
Edit:
Dann vielleicht über eine Art Zustandsvergleich, ist das Intervall aktiv, wird die Var = true gesetzt, anschließend könnte ein zweites Intervall Var = false setzten ... mh irgendwie umständlich.
setInterval sorgt dafür, dass eine Funktion in regelmäßigen Abständen immer wieder aufgerufen wird. Es gibt keinen Mechanismus, der sagt, dass eine Funktion nur eine bestimmte Zeit laufen soll. Javascript ist auch Eventbasiert, das heißt, es darf keine Langlaufenden Funktionen geben, weil sonst die ganze Webseite einfriert. Wenn Du einen Wert nach einer bestimmten Zeit ändern willst, ist setTimeout das richtige.
Aber setTimeout wird nur einmal beim Start des Skriptes ausgeführt, habe ich zumindest so gelesen, die Funktion soll ja in regelmäßigen Abständen ausgeführt werden. Was ich damit bezwecken will, ist, eine Art Rechtecksignal.
- __blackjack__
- User
- Beiträge: 13069
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Soulpilot: Na dann ist `setInterval()` richtig, aber Deine Formulierung der Frage sehr missverständlich, denn dann willst Du gar keine Funktion die einen gewissen Zeitraum ausgeführt wird, sondern eine die alle x Millisekunden kurz ausgeführt wird.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Danke und stimmt genau, das soll so realisiert werden. Sorry, ich stand selber etwas auf dem Schlauch^^__blackjack__ hat geschrieben: ↑Donnerstag 23. Juni 2022, 05:00 @Soulpilot: Na dann ist `setInterval()` richtig, aber Deine Formulierung der Frage sehr missverständlich, denn dann willst Du gar keine Funktion die einen gewissen Zeitraum ausgeführt wird, sondern eine die alle x Millisekunden kurz ausgeführt wird.
Ok, allerdings habe ich immer noch schwierigkeiten, da das signal so aussehen müsste: ____---____---____---____---____--- usw. also das Intervall true ist kürzer als das vom false state... Ist mir vorhin erst klar geworden das es vermutlich besser so ist, deswegen noch mals sorry für die Späte Info!
Wäre das mit einer sleep() Funktion möglich, in JS heißt das anders, müsste ich nachsehen, aber vom Prinzip her?
VG