
94451
26.02.2016, aktualisiert um 14:31:30 Uhr
Pause-Start im "undefinierten" Timeout und Intervall
Hallo,
ich habe eine kleine Bildershow in der ich mit mehreren timeouts in einem intervall arbeite...
das sieht in etwa so aus:
die Besonderheit ist, dass ich die Bilder vorlade (keine Angst, das läuft im lokalem Netzwerk, deshalb müssen die unkomprimierte Bilder vorgeladen werden).
jetzt ist es ja so, dass ich in der Theorie "immer" 2 Bilder geladen habe. Wie stell ich das jetzt am geschicktesten an dass ich das ganze "Pausieren" kann.
=> also Pause wäre der optimal Fall, ein Stop (der die Timer zurücksetzt und nach start neu anlaufen lässt) wäre aber auch gut...
ich habe bereits versucht ein Array aufzubauen und einfach mit "Push" alle setTimeouts reinzuschieben... damit könnte ich zwar alles anhalten, aber ein Starten ist dann nicht mehr möglich...
Ich schaff es hier einfach nicht die abgelaufene Zeit oder eine ID mit abzuspeichern
delays werden gespeichert, aber können nicht unterschieden werden.
delays werden nicht gespeichert
ebenso stehe ich dann noch vor der Problematik, dass der Delay auch wieder aus dem Array gelöscht werden müsste, ansonsten würde ich ein ziemlich großes Array erzeugen (wenn das Script mal einige Stunden läuft)...
ich bin für jeden Tipp dankbar. Evtl. ist es ja einfacher als ich es mir vorstelle...
ich habe eine kleine Bildershow in der ich mit mehreren timeouts in einem intervall arbeite...
das sieht in etwa so aus:
function LoadImage(id, rmTime) {
--- BILDER SPEKTAKULÄR ANZEIGEN ---
setTimeout(function(){
$( "#can_"+id ).fadeOut( effectTime );
setTimeout(function(){
$( "#can_"+id ).remove();
$( "#img_"+id ).remove();
}, effectTime + preloadTime );
}, rmTime - effectTime );
}
setTimeout(function(){
LoadImage(zufallsID, (showTime+showTime-preloadTime));
interval = setInterval(function(){
LoadImage(andereZufallsID, (showTime+showTime-preloadTime));
}, showTime);
}, preloadTime );
die Besonderheit ist, dass ich die Bilder vorlade (keine Angst, das läuft im lokalem Netzwerk, deshalb müssen die unkomprimierte Bilder vorgeladen werden).
jetzt ist es ja so, dass ich in der Theorie "immer" 2 Bilder geladen habe. Wie stell ich das jetzt am geschicktesten an dass ich das ganze "Pausieren" kann.
=> also Pause wäre der optimal Fall, ein Stop (der die Timer zurücksetzt und nach start neu anlaufen lässt) wäre aber auch gut...
ich habe bereits versucht ein Array aufzubauen und einfach mit "Push" alle setTimeouts reinzuschieben... damit könnte ich zwar alles anhalten, aber ein Starten ist dann nicht mehr möglich...
Ich schaff es hier einfach nicht die abgelaufene Zeit oder eine ID mit abzuspeichern
delays werden gespeichert, aber können nicht unterschieden werden.
var delays = ;
delays.push(setTimeout...);
delays werden nicht gespeichert
var delays = ;
delays[id] = setTimeout...;
ebenso stehe ich dann noch vor der Problematik, dass der Delay auch wieder aus dem Array gelöscht werden müsste, ansonsten würde ich ein ziemlich großes Array erzeugen (wenn das Script mal einige Stunden läuft)...
ich bin für jeden Tipp dankbar. Evtl. ist es ja einfacher als ich es mir vorstelle...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 297476
Url: https://administrator.de/forum/pause-start-im-undefinierten-timeout-und-intervall-297476.html
Ausgedruckt am: 23.04.2025 um 13:04 Uhr
4 Kommentare
Neuester Kommentar

Moin,
Du bekommst von setInterval eine Variable zurück, diese kannst du benutzen um den Interval zu stoppen. Definiere die Variable global dann kannst du sie aus einer anderen Function auch zum Stoppen benutzen.
http://www.w3schools.com/jsref/met_win_clearinterval.asp
Btw. Ist der Timeout zum Entfernen der Bilder überflüssig, dafür gibt es von jQuery den zweiten Parameter von fadeout (complete) welcher automatisch am Ende der Animation eine function ausführen kann
http://api.jquery.com/fadeout/
Gruß jodel32
Du bekommst von setInterval eine Variable zurück, diese kannst du benutzen um den Interval zu stoppen. Definiere die Variable global dann kannst du sie aus einer anderen Function auch zum Stoppen benutzen.
http://www.w3schools.com/jsref/met_win_clearinterval.asp
Btw. Ist der Timeout zum Entfernen der Bilder überflüssig, dafür gibt es von jQuery den zweiten Parameter von fadeout (complete) welcher automatisch am Ende der Animation eine function ausführen kann
http://api.jquery.com/fadeout/
Gruß jodel32

Das beantwortet meine Frage GARNICHT... es geht hier VORALLEM um die unklaren timeouts und nicht um den einen Intervall...
Schreien brauchst du hier nicht .... Du willst ja Hilfe, nicht wir. Und wenn man schon schreit dann bitte auch lexikalisch korrekt .Und doch, das clearen des jeweiligen Intervals stoppt alles folgende. Über die Intervall-Variablen brauchst du nur Buch führen. Dann kannst du die jeweiligen wie gewünscht stoppen. Ansonsten ist der Aufbau nicht sonderlich konsistent.
Und ich sagte das du dir den überflüssigen Timeout zum Entfernen sparen kannst wenn du die extra von jQuery bereitgestellte Funktion benutzt die es dafür gibt.