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.
Partager