Envoyé par : skygreg
Date : 24/06/2004 17:39
Bonjour, je débute avec XUL et j'aimerais en savoir plus sur ses possibilités.
Je cherche à savoir comment peut-on faire une interface XUL, pouvant interragir avec le système, via, pourquoi pas, un language script/web comme PHP ou python. Exemple : faire une simple barre de progression (progressmeter) qui évolue selon un etat de copie de (gros) fichier sur le systeme. Imaginons un script python qui effectue cette copie, et qui stock le pourcentage de copie dans une variable "pstate". Comment recuperer cette variable et faire evoluer la progressmeter XUL ?
Voila la barre de progression "pb.xul" :
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin" type="text/css"?> <window title="Greg's test" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script> <![CDATA[ function updatepb(percent) { document.getElementById('pbwait').setAttribute('value',percent+'%'); } ]]> </script> <groupbox> <caption label="Test de barre de progression" /> <progressmeter height="20" id="pbwait" mode="determined" value="1%" /> </groupbox> </window>
D'avance merci beaucoup pour votre aide. Greg
Envoyé par : laurentj
Date : 28/06/2004 15:04
Pourquoi python ou php ? pourquoi pas javascript ou C++ ?
Tout est en local ou est ce une appli web ?
Envoyé par : skygreg
Date : 28/06/2004 16:13
pourquoi pas python ou php ?
c'est une appli web, qui doit acceder à des fichiers sur son serveur web.
Envoyé par : laurentj
Date : 29/06/2004 14:45
Tu veux donc dire que tu aurais une interface en local (affiché via un serveur web), et sur le serveur web, il y aurai une grosse copie de fichier par un script PHP/python/autre, et tu veux être tenu au courant de l'avancement.
Pas simple en fait...
Pour lancer la copie, je suppose que tu appelle le script via le web. Donc il faut utiliser xmlHttpRequest dans ton Xul (voir wiki et la référence).
Je crois que tu peux récupérer la réponse de ta requête, au fur et à mesure qu'elle est reçue (à verifier), via les évènements (voir onload, addEventListener et companie). Donc tu aurais une fonction A javascript dans ton xul, appelée régulièrement lors de la récéption de la réponse.
Ton script coté serveur, au fur et à mesure de la copie, ferais des prints de la valeur de l'avancement (ne génère donc pas de html, simplement du texte). Ne pas oublier de faire un flush après chaque print.
à toi ensuite dans ta fonction A d'analyser ce que tu recois au fur et à mesure (donc lire les % que tu reçoit) et de faire bouger ton progressmeter en conséquence.
Un autre souci serait coté serveur : la fonction copy en php ne permet pas de suivre en PHP l'avancement de la copie (donc de propager cette info vers ton client..).
Le plus simple, c'est d'avoir un progressmeter undetermined, que tu actives avant d'envoyer ta requete http, et de le désactiver quand tu as recu la réponse de ta requète.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.