116 votes

Quel est le moyen le plus propre d'obtenir la progression d'une requête JQuery ajax ?

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é un progress dans celui-ci (avec l'attribut abort , complete , success etc.), mais dans la documentation de JQuery, ce point est absent : api.jquery.com/jQuery.ajax/#jqXHR

3 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.

-4voto

Rahul Gupta Points 1

Suivez les étapes pour afficher la progression de la requête Ajax :

  1. Créez un Spinner en utilisant Html & CSS ou utilisez Bootstrap Spinner.
  2. Affichez le Spinner lorsque l'utilisateur final demande les données AJAX pour une boucle infinie ou pour une durée limite.
  3. Ainsi, après un résultat SUCCESS / ERROR de la requête AJAX, supprimez le Spinner qui est actuellement affiché et montrez vos résultats.

Pour vous faciliter la tâche, je vous recommande d'utiliser des classes JS pour afficher et masquer dynamiquement le spinner à cette fin.

J'espère que cela vous aidera !

3 votes

Ce n'est pas du tout "l'obtention de la progression", mais seulement une animation "d'attente".

0 votes

Mais nous cherchons une barre de progression, montrant le pourcentage.

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