115 votes

jQuery, exemple d'interrogation simple

J'apprends jQuery et j'essaie de trouver un exemple de code simple qui interrogera une API pour une condition. (c.-à-d. demander une page Web toutes les quelques secondes et traiter les résultats)

Je sais comment utiliser AJAX dans jQuery. Je n'arrive pas à trouver le "bon" moyen de le faire exécuter par un "timer".

156voto

Johnny Craig Points 2820
function doPoll(){
    $.post('ajax/test.html', function(data) {
        alert(data);  // process results here
        setTimeout(doPoll,5000);
    });
}

68voto

chrisjleu Points 1202

Voici un article utile sur le long du scrutin (de longue date de la requête HTTP) à l'aide de jQuery. Un extrait de code dérivé de cet article:

(function poll() {
    setTimeout(function() {
        $.ajax({
            url: "/server/api/function",
            type: "GET",
            success: function(data) {
                console.log("polling");
            },
            dataType: "json",
            complete: poll,
            timeout: 2000
        })
    }, 5000);
})();

Cela permettra de faire de la prochaine demande seulement après que la requête ajax est terminé.

Une variation sur le dessus de qui va l'exécuter immédiatement la première fois, il est appelé avant d'honorer l'attente/intervalle de délai d'attente.

(function poll() {
    $.ajax({
        url: "/server/api/function",
        type: "GET",
        success: function(data) {
            console.log("polling");
        },
        dataType: "json",
        complete: setTimeout(function() {poll()}, 5000),
        timeout: 2000
    })
})();

11voto

genesis Points 32591
function poll(){
    $("ajax.php", function(data){
        //do stuff  
    }); 
}

setInterval(function(){ poll(); }, 5000);

7voto

PeeHaa Points 31941
function make_call()
{
  // do the request

  setTimeout(function(){ 
    make_call();
  }, 5000);
}

$(document).ready(function() {
  make_call();
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X