2016-03-21 10 views
1

Ich habe einen JQuery-Code, der Ajax-Methode verwendet, um eine PHP-Datei aufzurufen und überprüft, ob es ein Update gibt. Wenn es keine Aktualisierung gibt, schaltet sich die Timer-Funktion ein und überprüft die PHP-Datei alle 5 Sekunden auf ein Update. Ich habe es geschafft, die Funktion funktioniert, aber die Zeit ist zu schnell. Auch wenn ich die Intervallgeschwindigkeit auf andere Parameter geändert habe, zeigt es keine Änderung an. Mein JQuery-Code ist:Jquery setTimeout ruft ständig Funktion mehrmals auf

function CheckCallerID(){ 
    $.ajax({ 
     type: 'POST', 
     url: "code/PHPFILE.php", 
     data: "",     
     success: function(data) { 
      //ajax returns Below HTML CODE 
      $('#caller').html(data); 

      if($('#newaddressdetails').html().length==0){ 
       var timmer = setTimeout(CheckCallerID(),50000); 
      }else{ 
       SaveAddress(); 
      } 
     } 
    }); 
} 

PHP-Datei UCKGABEWERT für True <div id="newcustomer">Update Found</div>

PHP-Datei Rückgabewert für falsche <div id="newcustomer"></div>

Vielen Dank im Voraus.

Antwort

5

Close - müssen Sie die () wegzulassen, wenn eine Funktion übergeben aufgerufen werden:

var timmer = setTimeout(CheckCallerID,50000); 

Wenn Sie die () halten dort - es die Funktion sofort ausgeführt wird.

+0

Ja, setTimeout erfordert den Namen einer Funktion. Wenn das '()' immer noch da ist, wird die Funktion ausgeführt und setTimeout verwendet den Rückgabewert der Funktion als den Namen der Funktion, die nach der Ausführung des Timeouts aufgerufen werden soll. – Loufylouf

+0

Vielen Dank für die schnelle Antwort –

+0

Kleine Details, lernte auch etwas, danke! – Jer