Bonjour,

J'ai réalisé un petit projet d'importation de fichiers divers et variés; cette importation est périodique (1 fois par mois).

Le temps d'exécution est assez variable : de 2 à 10 minutes.

Pour faire patienter l'utilisateur, j'ai donc essayé (sans succès) de mettre en place une barre de progression en utilisant l'objet PeriodicalUpdater.

Je procède de cette manière : j'ai le volume total à importer; dans une boucle php, j'incrémente (ou non) le pourcentage d'avancement .

J'utilise une variable de session pour mémoriser cette valeur; je voudrais que la procédure javascript qui travaille sur l'objet PeriodicalUpdater récupère la valeur du pourcentage et modifie une <div> en y mettant la nouvelle valeur.

Or ça ne fonctionne pas; l'appel de la procédure ne se fait qu'à la fin de mon traitement Php.

Y-a-t'il une possibilité pour un fonctionnement parallèle de la procédure javascript/Ajax et ma boucle Php ?
Voici un extrait de code :

Code php : 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
25
26
27
28
29
30
31
32
33
34
35
<script src="prototype.js" type="text/javascript"></script>
<script type="text/javascript"> 
          function executer_progression()   
          {   
	new Ajax.PeriodicalUpdater(   
				'indicex',   
				'request.php', {  
				method:'post', 
				frequency: 2
			             });
          }  
</script>

.... traitement Php
maj (pourcentage)
     {
       if ($fait != $ref)
	{
		$_SESSION['progression'] = $fait;
		//progressBar($fait, $transporteur); 
		//$ref = $fait;
	}
     }

<body>
<form>
     <p id="indicex">... valeur de $_SESSION['progression'] ..</p>
</form>
</body>

.... fichier request.php
<?php  
        $_POST['indicex'] = $_SESSION['progression'];
        print($_POST['indicex']);   
?>

Merci de m'aider et de votre patience.