[XHTML] Comment remplacer une "script frame" ??

Comment remplacer une "script frame" ?? [XHTML] - HTML/CSS - Programmation

Marsh Posté le 02-10-2003 à 04:07:42    

Je voudrais rendre mon site compatible avec XHTML Strict, mais voila je suis face a un probleme.
 
Dans mon site j'utilise des "frames", mais je ne les utilise pas de façon conventionelle. En effet mon site ne s'affiche que dans une frame qui prends 100% de la taille de la fenetre ...
J'ai une 2e frame qui est invisible. Elle me sert de pont entre ma page html et mes scripts php.
 
En effet voila un exemple de ce que je fais avec :
 
page principale :
j'ai une fonction mise a jour, qui une fois lancee ouvre dans "scriptframe" script.php.
 
script.php ds scriptframe :
effectue une requete (genre liste de joueurs sur un serveur), ce meme script renvoie ensuite un fichier html contenant un petit script javascript et le resultat de la requete.
Le petit script javascript va simplement transmetre le resultat de la requete a la fenetre principale.
 
Voila, je n'utilise pas de php dans la page principale, car je ne veux pas recharger toute la page afin d'afficher le resultat d'une requete.
 
Tout ce schmilblick forme une sorte d'emulation de console en html, ou l'utilisateur tape sa commande ds un input, la commande est ensuite traitee par le script php et le resultat en affiche ds un textarea. Etant donne qu'il n'y a pas de rechargement de la page principale, la console garde "l'historique".
 
Voila.
Mon probleme est de savoir comment puis-je faire la meme chose alors que dans XHTML strict il n'y a plus de "frame" ou de "iframe" ...
 
J'ai pense a "<object", mais j'ai quelques petits problemes, comment faire pour changer l'url de la balise "object" en javascript ?? Je crois que j'ai trouve, mais lorsque je fait le changement d'url, l'edit changement n'est pas pris en compte ...
 
Sinon une autre piste a laquelle j'avais pense, etait d'utiliser les balises "<script url=..."> Et de changer l'url du script via javascript en "runtime", mais je n'ai pas encore eu le temps de tester, de plus je ne sais pas comment les browser vont reagir face au changement de l'url d'un script ? Vont-ils recharger le script ??
 
Si vous n'avez pas bien compris ce que je veux faire, faites-le moi savoir et j'essayerais de donner plus d'infos.
 
A plus

Reply

Marsh Posté le 02-10-2003 à 04:07:42   

Reply

Marsh Posté le 02-10-2003 à 05:13:32    

et pq tu ne veux pas recharcher toute la page ? [:spamafote]

Reply

Marsh Posté le 02-10-2003 à 07:25:14    

Ben si je recharge toute la page je perds l'effet de "console" ...
Ma text area se vide ...
 
De plus j'utilise egalement cette astuce dans d'autres situations...
 
Autre situation :
Je developpe actuelement un logiciel pour un cyber cafe.
J'ai un tableau contenant tous les pc et leurs etats (pc occupe par un client ou libre).
Ce tableau doit etre le plus proche de la realite, c'est a dire tous les changements doivent etre percus en "live".
Plusieurs personnes peuvent modifier l'etats des pcs, donc il faut trouver un moyen pour informer tt le monde qu'un changement a eu lieu et qu'il faut faire un refresh de la page.
 
Ce que je fait, lorsqu'un pc change d'etat je stocke sur la page meme l'heure de la derniere modif (je le stocke en javascript).
Toutes les 10s je lance ds ma scriptframe une requete a un script php qui va verifier s'il y a eu une modif (comparaison des deux "heures" ). S'il n'y a pas eu de changements alors rien ne se passe, s'il y a eu changement alors le script php informe la page principale (via javascript) de faire un refresh.
 
Alors si je dois faire un refresh complet de page toutes les 10 sec, cela devient lourd. Surtout que c'est un script php qui accede a une base de donnees ...
 
Evidement je pourrais faire un applet en java.... Mais l'html est plus rapide....


Message édité par cerel le 02-10-2003 à 07:26:47
Reply

Marsh Posté le 02-10-2003 à 07:41:35    

ben toutes les 10 secondes, c'est pas en live. et c'est pas afficher ta page qui va faire que ça sera lourd pour le serveur, mais bel et bien les requetes en base que tu fais de toutes façons.

Reply

Marsh Posté le 02-10-2003 à 13:36:18    

Disons que 10 secondes c'est un delais acceptable.
De plus c'est pour cela que j'ai mis des guillements a live ...
 
Mais revenons au topic, j'aimerais savoir s'il existe une methode de remplacement a mon probleme ou bien dois-je repenser mes applications ?

Reply

Marsh Posté le 02-10-2003 à 16:29:20    

Cerel a écrit :

Ben si je recharge toute la page je perds l'effet de "console" ...
Ma text area se vide ...
 
De plus j'utilise egalement cette astuce dans d'autres situations...
 
Autre situation :
Je developpe actuelement un logiciel pour un cyber cafe.
J'ai un tableau contenant tous les pc et leurs etats (pc occupe par un client ou libre).
Ce tableau doit etre le plus proche de la realite, c'est a dire tous les changements doivent etre percus en "live".
Plusieurs personnes peuvent modifier l'etats des pcs, donc il faut trouver un moyen pour informer tt le monde qu'un changement a eu lieu et qu'il faut faire un refresh de la page.
 
Ce que je fait, lorsqu'un pc change d'etat je stocke sur la page meme l'heure de la derniere modif (je le stocke en javascript).
Toutes les 10s je lance ds ma scriptframe une requete a un script php qui va verifier s'il y a eu une modif (comparaison des deux "heures" ). S'il n'y a pas eu de changements alors rien ne se passe, s'il y a eu changement alors le script php informe la page principale (via javascript) de faire un refresh.
 
Alors si je dois faire un refresh complet de page toutes les 10 sec, cela devient lourd. Surtout que c'est un script php qui accede a une base de donnees ...
 
Evidement je pourrais faire un applet en java.... Mais l'html est plus rapide....


 
Pour ce genre de chose, je pense que le JS n'est pas adapté. Il faut que tu passes par du java, ou un autre langage.  :)

Reply

Marsh Posté le 02-10-2003 à 16:45:49    

Arghhhh
J'ai presque fini l'application, donc il faudrait que je recommence tout depuis zero...
 
Sinon il n'y a pas un moyen pour envoyer une info a un client sans que ce dernier en fasse la demande avant ??
 
En gros je voudrais envoyer un "doRefresh" au client pour lui indiquer qu'une update a eu lieu. A l'epoque je n'avais pas trouve alors j'avais opte pour se supterfurge qui consistait de demander au server toutes les 10 sec s'il y avait eu une update.
 
Mais dans l'ideal se serait le serveur qui enverait l'info au client sans que ce dernier en fasse la demande prealable ...
 
Peut-etre un applet java minimaliste qui ne se charge que de creer un mini serveur qui attent cet ordre ...
 
S'il n'y pas d'autre moyen c'est ce que je ferais ..., mais bon s'il n'y a pas d'autre moyen ...
Je voudrais garder toute mon appli en HTML + PHP


Message édité par cerel le 02-10-2003 à 16:46:23
Reply

Marsh Posté le 02-10-2003 à 17:01:56    

Si tu as presque fini ton appli, tu fais du XHTML transitionnal. C'est pas mal déjà. ;)

Reply

Marsh Posté le 02-10-2003 à 17:11:53    

Oui ca c'est la solution de facilite ... :P
J'y avais pensé.
 
Le probleme est que je trouve cette methode utile dans certains cas, donc je voudrais trouver une solution pour pouvoir continuer a l'utiliser dans le futur.
 
Je viens de voir qu'un applet java ne peut pas creer de serveur et ne peut communiquer qu'avec le serveur qui lui sert la page html...
Je voix 2 choix :
1) Simple : l'applet java va se charger "d'appeler" un script php... Donc l'applet ferait l'office de l'ancien pont.
2) Si je veux metre en place la solution de l'envoi d'un simple refresh, faudrait que je cree une appli serveur sur mon serveur html. Cette appli servira a receptioner les connexions des clients, maintiendra les conn ouvertes afin de pouvoir envoyer le refresh... Complique ? Naaaaannnnn :P
 
Je viens d'y repenser : je vais creuser une petite idee... Avec javascript on peut "rajouter" du code html a la page ... Donc pourais-je rajouter un "<script src='script.php'>" .... Bon c sur au bout de qqs requetes mon code html aura des "scripts suplementaires" ... :/
 
QQn sait si l'on peut "analyser" une image avec javascript ... Je viens de penser a un truc de ouf ... :P
J'utilise javascript pour creer une image, url=script.php, cette image ferai 1x1 px, et en fonction de la couleur de ce dernier je fais l'action qui s'impose .... :P
Quoi ? Comment ca je suis tordu ??


Message édité par cerel le 02-10-2003 à 17:15:44
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed