Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1380 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2117962
r@phblues
Globe-trotter biologique
Posté le 22-12-2011 à 15:52:34  profilanswer
 

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 !
mood
Publicité
Posté le 22-12-2011 à 15:52:34  profilanswer
 

n°2119985
r@phblues
Globe-trotter biologique
Posté le 06-01-2012 à 16:25:30  profilanswer
 

Any idea ?  :sweat:


---------------
Tibet libre !
n°2120103
gatsu35
Blablaté par Harko
Posté le 08-01-2012 à 10:31:31  profilanswer
 

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


---------------
Blablaté par Harko
n°2120786
r@phblues
Globe-trotter biologique
Posté le 11-01-2012 à 15:31:47  profilanswer
 

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 !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

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

 

Sujets relatifs
jQueryLog new debugging extension for jQuery (feedback request)probleme execution animation opengl
erreur d'exécution scriptLog : récupérer le numéro de la ligne d’exécution.
Adapter un script jQuery (popin)... pour l'exécuter depuis un flash<audio> jquery problème avec l'event ended
[resolu] comment récupérer le contenu d'un json avec jqueryjquery et ui : j'ai besoin d'un petit coup de main pour me lancer.
[jQuery] Code non exécutéFatal error: Maximum execution time of 60 seconds exceeded in
Plus de sujets relatifs à : [JQuery] MAJ progressbar (jquery ui) : Execution synchrone ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR