Salut à tous,

J'ai une fonction qui est une peu longue à s'exécuter. J'ai collé une div en position absolute en plein milieu de l'écran pour demander à l'utilisateur de bien vouloir patienter pendant que le chargement se fait.

Voici ce que ça donne dans le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- =========================================================================== -->
  <!--        BARRE DE CHARGEMENT         -->
  <!-- Cette barre de chargement a vocation à indiquer à l'utilisateur qu'il lui   -->
  <!-- faut patienter pour obtenir le résultat de ces actions.      -->
  <!--                     -->
  <!-- Pour utiliser cet balise, placer les instructions jQuery suivantes en début -->
  <!-- et fin des blocs d'instructions longs :          -->
  <!--  * $("div#ajaxloader").fadeIn(); //Pour le faire apparaître      -->
  <!--  * $("div#ajaxloader").fadeOut(); //Pour le faire disparaître     -->
  <!-- =========================================================================== -->
  <div id="ajaxloader">
   <br />Veuillez patienter,<br />votre demande est en cours de traitement.<p />
   <img src="img/ajaxloader.gif" />
  </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
div#ajaxloader {
 display: none;
 position: absolute; 
 width: 300px; 
 height: 115px; 
 vertical-align: middle;
 top: 300px; 
 left:500px; 
 text-align: center; 
 background-color: #3399ff; 
 border: thin #003333 solid; 
 font-style: italic; 
 font-color: #FF9933;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<script type="text/javascript" language="javascript">
 function deployerCampagne(ctrl, banque, histo, arrete) {
  //Montrer le message d'attente
  $("div#ajaxloader").fadeIn();
 
alert();
 
  //Appeler la page d'analyse des controles
  appelerPage(
   '#centre', 
   'php/resultats/form_resultat.php',
   {
       //...mes paramètres...
   }
  );
 
  //Sélectionner l'onglet analyse
  select_onglet_param('#analyse','Analyse_Controle','#elements_analyse');
 
  //Cacher le message d'attente
  $("div#ajaxloader").fadeOut();
 }
</script>
Mon problème, c'est que dans la théorie ça à l'air super mais en pratique - Ah, oui, un détail qui peut peser : je suis contraint de développer sous ie6 - mes fonctions alert(), select_onglet_param() et appelerPage() s'exécutent puis, je vois apparaître mon div#ajaxloader puis il disparaît quasi-instantanément.

Comment se fait-il que ça se passe comme ça? Les instructions ne sont-elles pas censées s'exécuter dans leur ordre d'apparition? Quelqu'un a une idée?

Merci d'avance pour vos réponses.