using jQuery ... wie führe ich eine Funktion aus und dann alle 2 Minuten eine zweite Funktion.
z.B:
Funktion 1: läuft einmal
Funktion 2: Läuft alle 2 Minuten ab, nachdem Funktion 1 beendet ist
Jede Hilfe wird sehr geschätzt.
C
Antworten:
1 für die Antwort № 1jQuery "s delay()
Funktion ist kein Ersatz für Javascript setInterval
oder setTimeout
. So führen Sie eine Funktion # 1 einmal beim Laden der Seite aus und funktionieren dann alle 2 Minuten nach # 2:
function funcOne() {
// some javascript
setInterval("funcTwo()", 1000*60*2);
};
function funcTwo() {
// some other javascript
};
$(document).ready(function() {
funcOne();
});
2 für die Antwort № 2
function f2(){}
function f1(){
... some code ...
setInterval(f2, 2000*60);
}
//From somewhere in your code, call f1
f1();
SetInterval gibt auch ein Handle zurück, mit dem der weitere Aufruf dieser Funktion abgebrochen werden kann.
0 für die Antwort № 3
Denken Sie daran, dass Sie JQuery verwenden, da es Javascript einfacher macht. JQuery ist eine Javascript-Bibliothek, keine Sprache, was bedeutet, dass Sie Javascript-Funktionen perfekt verwenden können.
Für Ihr Problem müssen Sie mit setTimeout nur Ihre zweite Funktion aufrufen und eine andere in diese Funktion einfügen setTimeout(ms);
So was:
function f1(/*...*/){}
var t = setTimeout("f2()",2 * 60 * 1000);
Und am Ende deiner f2()
Funktion Sie sollten einen weiteren setTimeout hinzufügen, um diese Funktion alle 2 Minuten aufzurufen.
function f2(/*...*/){
//...
t = setTimeout("f2()",2 * 60 * 1000);
}
So brechen Sie diese Anrufe ab f2()
ist genauso einfach: clearTimeout(t);
0 für die Antwort № 4
Ich würde lieber setTimeout () verwenden. Es wird angenommen, dass der Browser weniger beansprucht und der Prozessor effizienter ist.
Hier sehen Sie, wie Ihre Funktionen aussehen sollen:
function f2(){
t = setTimeout(f2, 2000 * 60);
// code for f2
}
function f1(){
// code for f1
setTimeout(f2, 2000 * 60);
}
Wo immer Sie möchten, dass das Ganze beginnt, rufen Sie die erste Funktion auf:
var t;
f1();
Sie können die Schleife jederzeit stoppen:
clearTimeout(t);
Stellen Sie sicher, dass Sie setTimeout am Anfang von auslösenf2, so dass es alle 2 Minuten genau schießt. Jeder Code vor "setTimeout", dessen Verarbeitung "x" dauert, führt dazu, dass der nächste f2-Anruf nach 2min + x ausgelöst wird.
-2 für die Antwort № 5
Heloo Wenn ich Sie richtig verstanden habe, ist dies eine Lösung
function func1()
{}
function func2()
{}
window.onload = function()
{
func1();
var flag_first_call_is_after_2=0;
var interv = setInterval(
function()
{
if(flag_first_call_is_after_2==0)
{
flag_first_call_is_after_2=1;
}
else
{
func2();
}
}
,120000
);
}