JavaScript Interval überprüfen...

  • Ersteller Ersteller + BELA B. +
  • Erstellt am Erstellt am
B

+ BELA B. +

Gast
Hi

gibt es eine möglichkeit, zu prüfen ob ein Interval fertig ist?

Ich hab einen Interval gemacht:
reloader = window.setInterval("loadThread('"+tid+"')", 20000);
und möchte, dass der Interval zuerst fertig gemacht wird, bevor er erneut reloaded..

wisst ihr was ich meine ?

bitte um tipps und hilfe =)

lg
 
Ich weiß nicht 100% was du möchtest. So wird loadThread() alle 20 Sekunden ausgeführt.
Wenn du möchtest, dass es mehrfach sequenziell ausgeführt wird, dann kannst du das Rekursiv machen, wie hier beschrieben.
Allerdings hast du dann natürlich keine feste Vorgabe mehr in welchen Abständen es ausgeführt wird.
 
nimm setTimeout und erzeuge jedesmal einen neuen Timeout, wenn dein loadThread() fertig ist.
 
@djn.. ich mein, wie weiß ich, wann ein intervall fertig ist oO
jetzt wird alle 20sek loadThread aufgerufen, aber wenn bei einem intervall die function loadThread länger braucht um zu laden, macht der interval ja trotzdem weiter... weißt was ich mein?


@ice breaker.. hört sich gut an, werde mir diese idee näher anschaun :)

sonst noch ideen?
 
+ BELA B. + schrieb:
@ice breaker.. hört sich gut an, werde mir diese idee näher anschaun :)

Genau das macht das von mir verlinkte Beispiel übrigens auch.

Ob das eine gute Lösung ist, hängt aber natürlich vom konkreten Problem ab, das du damit lösen möchtest.
 
Du willst das aktive Warten vermeiden? Schau dir mal notify(), notifyAll() und wait() an, das könnte genau das sein, was du suchst.
 
PHP:
/* Variable, welche den Interval speichert */
var loadThreadInterval = 0;

/* Deine Funktion */
function loadThread(tid) {
	/* Interval wird "aufgehoben" */
	window.clearInterval(loadThreadInterval);

	/* ...Dein Code... */

	/* Interval wird neu gesetzt */
	loadThreadInterval = window.setInterval("loadThread('"+tid+"')",20000);
}

(function() {
	/* Hier wird der Interval zum ersten mal gesetzt */
	loadThreadInterval = window.setInterval("loadThread('"+tid+"')",20000);
})();

Mir persönlich würde das einfallen, dass in der Funktion der Interval immer "erneuert" wird sobald die Funktion abgeschlossen ist.

Freundliche Grüsse,
Spartan-117
 
Zurück
Oben