Ik ben bezig met een AJAX scriptje waarbij ik een callback gebruik om de data te gebruiken buiten de functie. Het ziet er als volgt uit:
function loadXML(onsuccess)
{
var xmlhttp;
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{ // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
onsuccess(xmlhttp.responseText);
}
if(xmlhttp.readyState == 4 && xmlhttp.status == 0)
{
onsuccess(xmlhttp.responseText);
}
}
xmlhttp.open("GET", "http://example.com/app/data.php", true);
xmlhttp.send(null);
}
en roep ik het aan met dit:
loadXML(function(data) {
parseData = jsonParse(data);
alert(parseData.Speed);
alert('lalalala');
});
Zo los staand doet ie het één keer, maar ik wil graag dat de data die ingeladen wordt up to date blijft, dus moet die functie 'loadXML' zich aan het eind herladen. Weet iemand hoe dat kan? Met een simpele setTimeout("this", 4000); functie, werkt dat niet.
Het werkt ook niet om de gehele functie in een setTimeout te zetten, zoals hierna:
setTimeout("loadXML(function(data) {
parseData = jsonParse(data);
alert(parseData.Speed);
alert('lalalala');
});", 1000);
Alvast bedankt!