En javascript, c'est très simple : il suffit d'attacher le callback à l'adresse suivante {XMLHTTPRequest}.onprogress
var xhr = new XMLHttpRequest();
xhr.onprogress = function(e){
if (e.lengthComputable)
var percent = (e.loaded / e.total) * 100;
};
xhr.open('GET', 'http://www...', true);
xhr.onreadystatechange = function() {
...
};
xhr.send(null);
mais je fais un site ajax qui télécharge des données html avec JQuery ( $.get()
ou $.ajax()
) et je me demandais quelle était la meilleure façon d'obtenir la progression d'une requête afin de l'afficher avec une petite barre de progression mais curieusement, je ne trouve rien d'utile dans la documentation de JQuery...
4 votes
Celui-ci semble prometteur dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5 pour html5
1 votes
Ooh merci les gars ! il faut donc remplacer xhr la chose étrange est que j'ai inspecté avec Chrome Dev Tools la soi-disant
jqXHR
(l'enveloppe de l'objet xhr retourné par$.ajax()
) et a trouvé unprogress
dans celui-ci (avec l'attributabort
,complete
,success
etc.), mais dans la documentation de JQuery, ce point est absent : api.jquery.com/jQuery.ajax/#jqXHR3 votes
github.com/englercj/jquery-ajax-progress J'utilise ceci et c'est à peu près la même chose que les autres réponses mais je préfère avoir des choses plus génériques.