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

  FORUM HardWare.fr
  Programmation
  PHP

  Interaction php javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interaction php javascript

n°1686520
snike
Posté le 14-02-2008 à 19:31:39  profilanswer
 

J'ai une page php qui dure assez longtemps (plus de 2h) je veux donc voir l'état d'avencement.
 
Pour cela j'ai ma page principale qui contient une balise Div représentant la barre de progression comme ceci :  

Code :
  1. <DIV id=barre style='background:#5385EC;width:0%;height:20px;text-align:center;font-weight:bold;'>0%</DIV></DIV>


 
J'ai mis une balise IFRAME qui contient la page qui lance la longue procédure comme ceci :

Code :
  1. <IFRAME id=proc src='proc.php' width=90% height=50% style='border:solid 1px black;'>


 
Je modifie la barre avec une fonction Javascript :  

Code :
  1. function maj_barre(val) {
  2. barre.style.width = val + "%";
  3. barre.innerHTML = Math.round(val) + "%";
  4. }


 
Cette fonction est lancer à chaque avancement de ma procédure comme ceci:

Code :
  1. echo "\n<script> parent.maj_barre(".round(100*$val/$max)." ); </script>";


 
LE problème : Le mise à jour de ma barre ne se fait pas régulièrement, je voudrai que lorsque j'écris

Code :
  1. <script> parent.maj_barre(".round(100*$val/$max)." ); </script>

la modification se fasse tout de suite.
La barre passe, par exemple, de 0, 17%, 34%, ... et non 1%, 2%, 3%, ... Il y a une modification toute les 2s


Message édité par snike le 14-02-2008 à 19:40:55

---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
mood
Publicité
Posté le 14-02-2008 à 19:31:39  profilanswer
 

n°1686553
tpierron
Posté le 14-02-2008 à 21:07:51  profilanswer
 

Arf, tu fais vraiment mouliner le serveur pendant deux heures ? À ce niveau là, ça vaudrait le coup de voir ce qui pourrait être fait avec un langage un peu plus rapide...
 
Cela dit, pour avoir fait un truc similaire (mais avec des traitements de quelques minutes au pire), voici comme je m'y suis pris :
 
- Lancement d'un processus sur le serveur qui va massacrer le disque/CPU/RAM.
- L'avancement du processus était facilement quantifiable, je l'ai donc mis dans un fichier temporaire avec un nom aléatoire, que je récupérait au moment de commencer le traitement.
- Récupération de ce fichier via XmlHttpRequest à intervalle régulier (1 seconde) et mise à jour d'un div quelconque.

Message cité 1 fois
Message édité par tpierron le 14-02-2008 à 21:08:38
n°1686679
snike
Posté le 15-02-2008 à 08:54:31  profilanswer
 

tpierron a écrit :

Arf, tu fais vraiment mouliner le serveur pendant deux heures ? À ce niveau là, ça vaudrait le coup de voir ce qui pourrait être fait avec un langage un peu plus rapide...
 
Cela dit, pour avoir fait un truc similaire (mais avec des traitements de quelques minutes au pire), voici comme je m'y suis pris :
 
- Lancement d'un processus sur le serveur qui va massacrer le disque/CPU/RAM.
- L'avancement du processus était facilement quantifiable, je l'ai donc mis dans un fichier temporaire avec un nom aléatoire, que je récupérait au moment de commencer le traitement.
- Récupération de ce fichier via XmlHttpRequest à intervalle régulier (1 seconde) et mise à jour d'un div quelconque.


 
 
XmlHttpRequest c'est Ajax non ?
J'y pense, je pourrais peut être mettre mon état d'avancement dans une variable de Session et comme tu dis remettre à jour ma barre toute les secondes, je vais essayer ça ce soir
 
Merci pour l'idée


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°1687240
snike
Posté le 16-02-2008 à 10:52:19  profilanswer
 

Ca ne marche pas.
Lorsque je lance ma procédure la fenêtre qui contient la barre ce bloque.
Faut peut être utiliser XmlHttpRequest  mais ça je ne sais pas encore faire.


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°1687358
naeh
Posté le 16-02-2008 à 19:24:39  profilanswer
 

recherche sur d'ajax updater


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Interaction php javascript

 

Sujets relatifs
Charger une vidéo au clic en JavaScriptAjouter signe + automatiquement devant nb positif en javascript
Javascript: Séléctionner formulaire par un lienCouplage javascript / flash - Ajouter comme page de demarrage
Probleme chargement de page et Javascript sous Firefox[RESOLU]Fenetre confirm JAvascript
[JavaScript] XMLHttpRequest et Internet ExplorerCacher/Crypter du JavaScript
[Javascript] Rotation image: problème de altquestion sur l'interaction javascript flash
Plus de sujets relatifs à : Interaction php javascript


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