r@phblues Globe-trotter biologique | 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 :
- $(function() {
-
- var etape = 0;
- var pourcent_progressbar=0;
- $('#les_fomulaires').submit(function() {
- $('#les_fomulaires').hide();
- $("#text_result" ).html("Importation en cours : <span class='progression'>0/0</span>" ).show(10, function() {
- $("#myprogressbar" ).progressbar({value:pourcent_progressbar});
- $("#myprogressbar" ).show(10, function() {
- if (jQuery.trim($("#id_src" ).val()).length!=0) {
- // Récupèrer le nombre de photos à importer
- $.ajax({
- type : 'POST',
- async : false,
- url : '/nbphotos.php',
- data : 'chem=$cheminimport',
- success : function(nbphotos){
- if (nbphotos>0){
- $(".progression" ).html("0"+" / "+nbphotos);
-
- var fini=false;
- var nb_photos_imported=0;
- var ajax_reussi = false;
- var resultat_ajax="";
- // Variables envoyées en Ajax
- var datas = desvariables;
- while (nb_photos_imported < nbphotos) {
- ajax_reussi = false;
-
- $.ajax({
- type : 'GET',
- async : false,
- url : '/traitement.php',
- data : datas,
- success : function(resultat){
- resultat_ajax=resultat;
- ajax_reussi=true;
- nb_photos_imported++;
- }
- });
-
- if (ajax_reussi==true){
- if (resultat_ajax=="ok" ) {
- pourcent_progressbar = Math.floor(nb_photos_imported*100/nbphotos);
- $("#myprogressbar" ).progressbar("option", "value", pourcent_progressbar);
- console.info("Succès ajax (resultat : OK) : "+pourcent_progressbar);
- $(".progression" ).html(nb_photos_imported+" / "+nbphotos);
- } else {
- fini=true;
- $("#text_result" ).html(ajax_reussi);
- return false;
- }
- } else {
- // Erreur d'execution ajax => sortir du while
- console.info("Erreur d'execution ajax "+nb_photos_imported);
- return false;
- }
- } // While
- if (fini==true) {
- $("#myprogressbar" ).hide('slow');
- $('#text_result').html("Importation de "+nb_photos_imported+" photos terminée avec succès." );
- }
-
- } else{
- $("#text_result" ).html("Aucune photo à importer." );
- $("#myprogressbar" ).hide(10);
- $('#les_fomulaires').show("slow" );
- }
- }
- });
- }
- });
- }); // callback #text_result.show()
- return false;
- });
-
- });
|
Message édité par r@phblues le 06-01-2012 à 16:25:04 ---------------
Tibet libre !
|