Huidige functie herladen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Leander ---

Leander ---

10/05/2011 10:27:46
Quote Anchor link
Hallo,


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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
            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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
setTimeout("loadXML(function(data) {
                parseData = jsonParse(data);
                alert(parseData.Speed);
                alert('lalalala');
            });", 1000);


Alvast bedankt!
 
PHP hulp

PHP hulp

09/11/2024 03:27:54
 
Vincent Huisman

Vincent Huisman

10/05/2011 11:00:44
Quote Anchor link
maak een extra functie aan die het ajax aan roept en doe de timeout op die functie
 
Leander ---

Leander ---

10/05/2011 11:11:22
Quote Anchor link
Werkt ook niet. Ik heb het als volgt gedaan, maar hij voert enkel om de 5 secoden de alert met B uit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
        getSpeed();
        function getSpeed() {
            loadXML(function(data) {
                parseData = jsonParse(data);
                alert(parseData.Speed);
                alert('A');
            });
            alert('B');
            setTimeout("getSpeed()", 5000);
        }


Die hele loadXML functie voert hij niet eens uit.
 
Vincent Huisman

Vincent Huisman

10/05/2011 11:14:48
Quote Anchor link
haal die timeout eens uit de functie
 
Leander ---

Leander ---

10/05/2011 12:23:54
Quote Anchor link
Werkt ook niet. Dan voert hij hem namelijk maar 1 keer uit, en dan enkel de alert met B. Niet de alert met A (en al helemaal niet die parseData.Speed).

Nog enige idee?
 
Vincent Huisman

Vincent Huisman

10/05/2011 13:24:06
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
function getSpeed()
{
    alert("hello");
}

var a = setInterval(
function()
{
    getSpeed();
}, 5000);
 
Leander ---

Leander ---

11/05/2011 12:24:40
Quote Anchor link
Helaas werkt dat niet. Hij herlaad wel keurig, maar voert mijn functie loadXML niet uit..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
loadXML(function(data) {
    parseData = jsonParse(data);
    alert(parseData.Speed);
    alert('A');
});


EDIT: Laat maar, het werkte allemaal eigenlijk wel. Alleen een / in mij url schopte alles in de war (ivm AJAX waarschijnlijk). Ik weet nu wel genoeg, alsnog bedankt ;)
Gewijzigd op 11/05/2011 12:37:43 door Leander ---
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.