A voir également:
- Php afficher nouveau texte dans la page
- Comment supprimer une page dans word - Guide
- Nouveau site coco chat - Accueil - Réseaux sociaux
- Excel cellule couleur si condition texte - Guide
- Transcription audio en texte word gratuit - Guide
- Traduire la page - Guide
7 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 janv. 2013 à 18:53
11 janv. 2013 à 18:53
je ne pense pas que ce soit possible.
- Les infos envoyées sur la page web par le serveur le sont à la demande du client (le navigateur)
- un script php ne s'exécute que en "relation" avec un seul client donc ce script qui va détecter le score ne peut pas aller écrire dans le navigateur des autres clients " il ne les connait pas"
- Les infos envoyées sur la page web par le serveur le sont à la demande du client (le navigateur)
- un script php ne s'exécute que en "relation" avec un seul client donc ce script qui va détecter le score ne peut pas aller écrire dans le navigateur des autres clients " il ne les connait pas"
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
11 janv. 2013 à 22:13
11 janv. 2013 à 22:13
A mon avis ça doit être possible.
Voici quelques piste :
- Un timer JS qui tourne en boucle sur la page. Ce script va faire un appel AJAX vers un fichier php qui cherche dans une bdd le plus haut score :
- Un script php (appellé dans le JS "majRecord.php")
Et enfin, un div à placer dans ton html à l'endroit où tu veux que le score s'affiche :
La seule chose qui te reste à faire c'est de stocker son score que tu as dans ton JS (ta variable "score") dans ta base de donnée.
Si tu veux que je te fasse le script pour ça aussi dis le :)
Bonne soirée
Voici quelques piste :
- Un timer JS qui tourne en boucle sur la page. Ce script va faire un appel AJAX vers un fichier php qui cherche dans une bdd le plus haut score :
var timer = setInterval(function(){appelAjax()},1000); function appelAjax() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("scoreMax").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","majRecord.php",true); xmlhttp.send(); }
- Un script php (appellé dans le JS "majRecord.php")
<?php mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("nom_bdd"); $requete="select max('score') as score_max from tbl_scores"; $result=mysql_fetch_array(mysql_query($requete)); echo "Record : ".$result["score_max"]." points." mysql_close(); ?>
Et enfin, un div à placer dans ton html à l'endroit où tu veux que le score s'affiche :
<div id="scoreMax"></div>
La seule chose qui te reste à faire c'est de stocker son score que tu as dans ton JS (ta variable "score") dans ta base de donnée.
Si tu veux que je te fasse le script pour ça aussi dis le :)
Bonne soirée
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
12 janv. 2013 à 09:53
12 janv. 2013 à 09:53
ok avec le timer mais il faut accepter le délai entre chaque appel au serveur
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
14 janv. 2013 à 18:10
14 janv. 2013 à 18:10
Comment ça?
Je ne comprends pas ta réponse.
Si tu veux modifier le délai entre 2 appels du timer :
Il suffit de modifier le 1000 par le temps que tu veux en millisecondes.
Je ne comprends pas ta réponse.
Si tu veux modifier le délai entre 2 appels du timer :
var timer = setInterval(function(){appelAjax()},1000);
Il suffit de modifier le 1000 par le temps que tu veux en millisecondes.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
14 janv. 2013 à 18:46
14 janv. 2013 à 18:46
non ce que je veux dire, il faut faire un compromis entre
- le délai entre deux appels au serveur en Ajax (timer)
est ce que ce délai ne sera pas trop pénalisant pour la mise à jour du score
- et la charge du serveur (nombre de connectés) si c'est un mutualisé
- le délai entre deux appels au serveur en Ajax (timer)
est ce que ce délai ne sera pas trop pénalisant pour la mise à jour du score
- et la charge du serveur (nombre de connectés) si c'est un mutualisé
LDMBatman
Messages postés
95
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
10 avril 2014
39
14 janv. 2013 à 19:01
14 janv. 2013 à 19:01
La procédure lancée par le timer Ajax ne devrait pas prendre trop de temps en théorie. Si jamais ton site devenait assez important et que le temps augmente, tu as toujours la possibilité de stocker ton score max à un endroit unique (histoire que le script php le parcoure pas toute ta bdd pour chercher le score max).
En faisant cela, le temps de traitement de ton appel Ajax sera très bas et tes utilisateurs ne verront rien.
En faisant cela, le temps de traitement de ton appel Ajax sera très bas et tes utilisateurs ne verront rien.