[JQuery] MAJ progressbar (jquery ui) : Execution synchrone ?

MAJ progressbar (jquery ui) : Execution synchrone ? [JQuery] - HTML/CSS - Programmation

Marsh Posté le 22-12-2011 à 15:52:34    

Bonjour,
 
Dans un script d'importation de photos, je cherche à actualiser une progressbar (Jquery UI)
en suivant l'avancement de requêtes Ajax.
Mon problème : La progressbar, qui est censée s'afficher avant le lancement des requêtes ajax ne le fait qu'après. Je n'ai donc mon retour utilisateur visuel qu'à la fin de l'execution de ma boucle While... (La console me montre que ces requêtes s'éxecutent bien, dans l'ordre)
 
J'ai essayé pas mal de chose, notamment d'executer la suite des instructions dans le callback de l'affichage... sans succès...  
J'ai pensé à utiliser live() ou bind(), mais je ne sais comment le tester...
 
Quelqu'un aurait une piste ?
 
Voici mon code jquery :  

Code :
  1. $(function() {
  2.    
  3.  var etape = 0;
  4.  var pourcent_progressbar=0;
  5.  $('#les_fomulaires').submit(function() {
  6.      $('#les_fomulaires').hide();
  7.      $("#text_result" ).html("Importation en cours : <span class='progression'>0/0</span>" ).show(10, function() {
  8.   $("#myprogressbar" ).progressbar({value:pourcent_progressbar});     
  9.   $("#myprogressbar" ).show(10, function() {
  10.       if (jQuery.trim($("#id_src" ).val()).length!=0) {
  11.    // Récupèrer le nombre de photos à importer
  12.    $.ajax({
  13.        type : 'POST',
  14.        async : false,
  15.        url : '/nbphotos.php',
  16.        data : 'chem=$cheminimport',
  17.        success : function(nbphotos){
  18.     if (nbphotos>0){
  19.         $(".progression" ).html("0"+" / "+nbphotos);
  20.    
  21.      var fini=false;
  22.      var nb_photos_imported=0;
  23.      var ajax_reussi = false;
  24.      var resultat_ajax="";
  25.      // Variables envoyées en Ajax
  26.      var datas = desvariables;
  27.      while (nb_photos_imported < nbphotos) {
  28.          ajax_reussi = false;
  29.         
  30.          $.ajax({
  31.       type : 'GET',
  32.       async : false,
  33.       url : '/traitement.php',
  34.       data : datas,
  35.       success : function(resultat){
  36.           resultat_ajax=resultat;
  37.           ajax_reussi=true;
  38.           nb_photos_imported++;
  39.       }
  40.          });
  41.         
  42.          if (ajax_reussi==true){
  43.       if (resultat_ajax=="ok" ) {
  44.           pourcent_progressbar = Math.floor(nb_photos_imported*100/nbphotos);
  45.           $("#myprogressbar" ).progressbar("option", "value", pourcent_progressbar);
  46.           console.info("Succès ajax (resultat : OK) : "+pourcent_progressbar);
  47.           $(".progression" ).html(nb_photos_imported+" / "+nbphotos);
  48.       } else {
  49.           fini=true;
  50.           $("#text_result" ).html(ajax_reussi);
  51.           return false;
  52.       }
  53.          } else {
  54.       // Erreur d'execution ajax => sortir du while
  55.       console.info("Erreur d'execution ajax "+nb_photos_imported);
  56.       return false;
  57.          }
  58.      } // While
  59.      if (fini==true) {
  60.          $("#myprogressbar" ).hide('slow');
  61.          $('#text_result').html("Importation de "+nb_photos_imported+" photos terminée avec succès." );
  62.      }
  63.             
  64.     } else{
  65.         $("#text_result" ).html("Aucune photo à importer." );      
  66.         $("#myprogressbar" ).hide(10);
  67.         $('#les_fomulaires').show("slow" );
  68.     }
  69.        }
  70.    });
  71.       }
  72.   });
  73.      }); // callback #text_result.show()
  74.      return false;
  75.  });
  76.    
  77.     });


Message édité par r@phblues le 06-01-2012 à 16:25:04

---------------
Tibet libre !
Reply

Marsh Posté le 22-12-2011 à 15:52:34   

Reply

Marsh Posté le 06-01-2012 à 16:25:30    

Any idea ?  :sweat:


---------------
Tibet libre !
Reply

Marsh Posté le 08-01-2012 à 10:31:31    

L'ajax ca se fait en aynchrone, donc revoit ton code


---------------
Blablaté par Harko
Reply

Marsh Posté le 11-01-2012 à 15:31:47    

C'est bien ce qui me perturbe... car je ne vois pas bien d'autre solution...


Message édité par r@phblues le 11-01-2012 à 15:31:57

---------------
Tibet libre !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed