8
votes

Y a-t-il un moyen d'obtenir des progrès de JQuery Ajax Upload?

$.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?

2 commentaires

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 () 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 effectué` (succès), c'est-à-dire. Fonction (données, TextStatus, JQXHR) {...} . L'objet JQXHR expose un tas de propriétés et de méthodes qui peut être exploité dans le rappel.


3 Réponses :


1
votes

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


1 commentaires

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.



11
votes

Essayez ceci xxx


0 commentaires

4
votes

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 xxx


0 commentaires