Actualisation ou modification du bloc uniquement si besoin.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Actualisation ou modification du bloc uniquement si besoin.

Actualisation ou modification du bloc uniquement si besoin.

par Yann » 29 août 2006, 16:59

Bonjour à tous,
J'ai un petit problème avec l'objet XMLHttpRequest :
Sur une sorte de RPG en ligne, j'aimerais pouvoir faire en sorte que si un utilisateur avance d'une case, tous les utilisateurs connectés au site en soient averti afin que le navigateur actualise sa position sur la carte.

Ma première idée était de faire un appel XMLHttpRequest en arrière plan en permanence qui demandait un script php qui faisait une boucle sur une requête SQL, jusqu'à qu'il y ait du nouveau. Ça marchait, mais avec deux clients l'occupation CPU était de 100%, donc c'était une très mauvaise idée.

Ensuite, j'ai regardé le programme UNIX tail avec son option -f qui permet de suivre la modification d'un fichier. Un strace m'indique qu'il effectue une boucle demandant l'état du fichier séparé de quelques appels à une fonction nanosleep. L'occupation CPU est moindre. Il serait donc possible de faire en sorte que le client en plus de faire sa requête écrit une ligne dans un fichier spécial que tous les clients suivent. S'il y a du nouveau, le script quitte, le javascript relance immédiatement ce script et met à jour.

Est-il possible de remplacer la boucle SQL par ce procédé? Le nettoyage du fichier sera-t'il simple? Quelle sera l'occupation CPU?


(question subsidiaire: existe-il des RPG utilisant AJAX sur le net?)


Merci d'avance !