$.ajax({ xhr: function() { var xhr = new window.XMLHttpRequest(); //Upload progress xhr.upload.addEventListener("progress", function(evt){ if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; //Do something with upload progress console.log(percentComplete); } }, false); //Download progress xhr.addEventListener("progress", function(evt){ if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; //Do something with download progress console.log(percentComplete); } }, false); return xhr; }, type: 'POST', url: "/", data: {}, success: function(data){ //Do something success-ish } }); This does not work on jQuery 1.5+ because the xhr is replaced by the jqXHR (i.e. a high level version of the raw XHR.) Now the question is how to get it to work with jqXHR⦠Anyone know how to do it?
3 Réponses :
Recherche autour de la documentation et d'autres questions, il semble y avoir un plugin pour surveiller la progression de JQuery Ajax: HTTPS : //github.com/hiddentao/jquery.ajaxprogress P>
Le plug-in que vous avez lié ne fournit pas de pourcentages, seulement un indicateur si le téléchargement est en cours ou non. Inutile.
Essayez ceci
J'ai fait un plugin JQuery pour gérer le téléchargement ou le télécharger des événements de progression de manière simple. Fonctionne n'importe quelle méthode JQuery Ajax telle que $ .ajax, $ .get, $ getjson, $ .post, etc. Vous pouvez le télécharger à partir de là: https://github.com/cvelazquez/jquery.ajax.progress
Je ne pense pas que ce soit un duplicata de poste donné, l'article donné n'utilise même pas JQuery, et JQuery est la cause de ce problème.
A partir de jQuery 1.5,
$. Ajax () code> renvoie un objet JQXHR, qui implémente l'interface de la promesse. Je suppose que vous pouvez surveiller les progrès accomplis avec '$ .AJAX (...). Progress (rappel)
. Malheureusement, je ne trouve pas de réflection complète, je ne peux donc pas vous conseiller sur quels paramètres le rappel acceptent, bien qu'il soit probablement identique à un rappel code> effectué` (succès), c'est-à-dire.
Fonction (données, TextStatus, JQXHR) {...} code>. L'objet JQXHR B> expose un tas de propriétés et de méthodes qui peut être exploité dans le rappel.