JavaScript function beenden
Hallo zusammen,
folgende Codes:
function blabla(abbrechen) {
if (abbrechen == "JA") {
return;
}
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
}
else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("ausgabe").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","blablabla.php",true);
xmlhttp.send();
}
setInterval(function () {blabla()}, 5000);
var abbrechen = "JA";
setTimeout(function (){blabla(abbrechen)}, 10000);
Ich verstehe leider nicht, warum meine Function "blabla" nicht nach 10 Sekunden beendet wird. Immerhin gebe ich das mit
setTimeout(function (){blabla(abbrechen)}, 10000);
doch an?!
Über eine Aufklärung wäre ich dankbar!
-> Ich möchte einfach nur, dass die obige Funktion mit dem Interval alle 5 Sekunden ausgeführt wird, aber darunter nach 10 Sekunden mit TimeOut beendet wird. Was passt dem Programm nicht?
Grüße, Hummel
1 Antwort
mit setInterval wird deine Funktion wiederholt aufgerufen, mit dem setTimeout rufst du deine Funktion auch wiederholt auf, jedoch nebenbei. Das heisst, dass du einfach deine Funktion ein weiteres Mal (zu den ganzen anderen Aufrufen) aufrufst, diesmal einfach mit dem Parameter dazu.
um das Aufrufen abzubrechen, kannst du folgendes versuchen:
var interval = setInterval(function () {blabla()}, 5000);
setTimeout(function (){clearInterval(interval)}, 10000);
somit wird clearInterval() nach 10 Sekunden aufgerufen, diese Funktion stoppt dann die zukünftigen Aufrufe.
Ich hoffe, ich konnte dir damit weiterhelfen.
MfG Balco
Hallo Balco,
exakt das habe ich gesucht - ich danke dir!
Grüße,
Hummel