Ajax Request-Funktion per Interval funktioniert nicht


#1
Gude,

ich versuch mich das erste mal an einem vanilla Javascript Ajax und es taucht ein problem auf was ich nicht verstehe:
Das Beispiel ist so auch auf der https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started#Step_3_–_A_Simple_Example veröffentlicht.

Javascript:
        var fileHash;
        var httpRequest;

        // cssFiles = document.querySelectorAll("link[rel=stylesheet]");
        document.getElementById("ajaxButton").addEventListener('click', makeRequest);


        window.setInterval(function(){
            makeRequest;
            console.log('interval');
        }, 5000);

         function makeRequest() {
           httpRequest = new XMLHttpRequest();

           if (!httpRequest) {
             console.log('Giving up :( Cannot create an XMLHTTP instance');
             return false;
           }

           httpRequest.onreadystatechange = alertContents;
           httpRequest.open('GET', 'file.php');
           httpRequest.send();
           console.log('Request send');
         }

         function alertContents() {
           if (httpRequest.readyState === XMLHttpRequest.DONE) {
             if (httpRequest.status === 200) {
               console.log(httpRequest.responseText);
             } else {
               console.log('There was a problem with the request.');
             }
           }
         }
Wenn ich den Request per setInterval ausführen lasse kommt ichts raus außer dass das Interval durchläuft.Fürhre ich jedoch die Funktion makeRequest per Button aus bekomm ich den Inhalt von file.php. Hab ich dort ein Zeitproblem oder was versteh ich da grad nicht? Vielleicht ist es auch etwas spät :).
 

Quaese

Moderator
Moderator
#2
Hi,

du musst die Funktion makeRequest in der Interval-Funktion aufrufen - hier fehlen die runden Klammern:
Javascript:
window.setInterval(function(){
    makeRequest();
    console.log('interval');
}, 5000);
Ciao
Quaese
 

Neue Beiträge