2017-09-25 1 views
0

Ich versuche derzeit, meine AJAX zu arbeiten, wenn das Dokument lädt und alle 20 Sekunden ausgeführt wird. Wie gehe ich dabei vor? Ich habe es alle 20 Sekunden arbeiten lassen, aber es kann nicht funktionieren, wenn das Dokument geladen wird. Jede Hilfe wäre brillant.AJAX läuft onload und in festgelegten Intervallen

<script type="text/javascript" language="javascript"> 
window.setInterval(function(){ 

var jobid = $('#jobid').text(); 
var filename = $('#filename').text(); 


    $.ajax({ 
     url: "../progress_bar.php", 
     type:'POST', 
     data: {"value1": jobid, "value2": filename}, 
     dataType: 'json', 
     success: function(responce){ 
       $("#progress").html(responce); 
      } // End of success function of ajax form 
     }); // End of ajax call 

    }, 20000); 

</script> 

Dank

+0

Also machen Sie eine Funktion und rufen Sie sie .... und setzen Sie das Intervall auf .... – epascarello

Antwort

2

Für AJAX-Anfragen eines immer rekursive Timeouts statt Intervalle verwenden soll (weil die Anforderung länger das Intervall dauern kann dann, so gibt es mehr Anfragen zu einer Zeit getan), die auch das löst Hauptproblem:

//may wrap the whole thing into an onload listener 
(function update(){ 
    $.ajax({ 
    url: "../progress_bar.php", 
    type:'POST', 
    data: {"value1": jobid, "value2": filename}, 
    dataType: 'json', 
    success: function(responce){ 
      $("#progress").html(responce); 
      //update again in 20secs: 
      setTimeout(update, 20000); 
     } 
    }); 

})(); //start immeadiately 

Eine kleine Demo:

console.log("load"); 
 
(function next(){ 
 
    console.log("run"); 
 
    setTimeout(next, 1000); 
 
})()

Verwandte Themen