2016-04-14 3 views
1

Der folgende Befehl wird alle 7 Sekunden ausgeführt und ruft die Funktion showAlert() auf. Es sieht aus, wenn Daten über die Datenbank gefunden werden. Meine Frage ist, wie kann ich es stoppen, wenn es irgendwelche Daten findet? Es ist also nicht nötig, immer wieder zu laufen.Wie kann ich eine Funktion stoppen, die alle 7 Sekunden ausgeführt wird, wenn sie Daten findet?

setInterval(function myalert() { 
$.getJSON("handler.php?type=alert&callback=?&cookie="+ y, showAlert); 
}, 7000); 

auf Back-End ist dieser Teil des PHP-

$alertGroup = mysql_fetch_array($alertQuery); 
$json[] = array($title,$text); 
echo $callback . "(" . json_encode($json) . ")"; 

dies der showAlert

function showAlert(data) { 
console.log(data[0][0]); 
console.log(data[0][1]); 
} 
+2

'clearInterval' ... –

+1

eine benannte Funktion verwenden und dann clearInterval, wenn Daten gefunden: http://stackoverflow.com/questions/109086/stop-setinterval-call-in-javascript – manonthemat

Antwort

1

Zunächst einmal ist, haben Sie Ihre setInterval in eine Variable registrieren Kontrolle zu übernehmen von seiner Instanz, schau:

var my_interval = setInterval(function myalert() { 
$.getJSON("handler.php?type=alert&callback=?&cookie="+ y, showAlert); 
}, 7000); 

Um einen laufenden Timer stoppen Sie clearInterval in der Instanz verwendet werden soll, aussehen:

clearInterval(my_interval); 
+0

danke, aber wo den clearInterval platzieren? In der ShowAlert? – EnexoOnoma

+0

Ja Mann, es ist in Ihrem AJAX-Erfolg Rückruf. – RPichioli

Verwandte Themen