Actualiser page que si la bdd est modifiée
brute
Messages postés
112
Date d'inscription
Statut
Membre
Dernière intervention
-
adns Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
adns Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici mon problème :
- j'ai une base de données MySql
- j'ai une page Php.
Je voudrais que, uniquement lorsque ma base de données est modifiée, ma page Php soit actualisée (mais sans recharger complètement => donc Ajax je pense).
Merci
voici mon problème :
- j'ai une base de données MySql
- j'ai une page Php.
Je voudrais que, uniquement lorsque ma base de données est modifiée, ma page Php soit actualisée (mais sans recharger complètement => donc Ajax je pense).
Merci
A voir également:
- Html+actualiser+page
- Supprimer page word - Guide
- Editeur html - Télécharger - HTML
- Imprimer tableau excel sur une page - Guide
- Page d'accueil - Guide
- Page privée - Guide
9 réponses
Hello,
J'ai jamais testé mais ca semble pas mal: http://www.zeitoun.net/articles/comet_and_php/start
Faudra voir côté perfs =)
un peu de doc: https://en.wikipedia.org/wiki/Push_technology
J'ai jamais testé mais ca semble pas mal: http://www.zeitoun.net/articles/comet_and_php/start
Faudra voir côté perfs =)
un peu de doc: https://en.wikipedia.org/wiki/Push_technology
Salut !
Oui, je pense que tu vas avoir besoin de AJAX.
Mais que je comprenne : est-ce que c'est un site où plusieurs personnes pourront se connecter en même temps, et dès que l'une d'elles va changer quelque chose, ça devra recharger la page de tous les autres qui sont en ligne ?
Oui, je pense que tu vas avoir besoin de AJAX.
Mais que je comprenne : est-ce que c'est un site où plusieurs personnes pourront se connecter en même temps, et dès que l'une d'elles va changer quelque chose, ça devra recharger la page de tous les autres qui sont en ligne ?
Salut,
Tu ne peux pas envoyer un signal du serveur vers le client.
Il va donc falloir que le client contacte le serveur à intervale régulière.
Pour ça, tu auras besoin de setInterval.
En premier argument, tu passeras une fonction anonyme faisant la requête AJAX.
Pour le format d'échange (XML, text ou JSON) et le traitement, je ne saurais pas t'en dire plus sans détails supplémentaires.
Tu ne peux pas envoyer un signal du serveur vers le client.
Il va donc falloir que le client contacte le serveur à intervale régulière.
Pour ça, tu auras besoin de setInterval.
En premier argument, tu passeras une fonction anonyme faisant la requête AJAX.
Pour le format d'échange (XML, text ou JSON) et le traitement, je ne saurais pas t'en dire plus sans détails supplémentaires.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
coeus : oui c'est exactement ca : plusieurs personnes sont connectees en meme tps et lorsque l'une d'entre elles modifie quelque chose, toutes les personnes voient la page modifiée mais sans recharger la page completement.
avion-f16 : j'ai déja testé ca !! mais il me mettait une erreur comme trop de connexions !!
avion-f16 : j'ai déja testé ca !! mais il me mettait une erreur comme trop de connexions !!
Alors augmente le temps.
Trois secondes, par exemple, donc 3000 millisecondes :
Trois secondes, par exemple, donc 3000 millisecondes :
setInterval(function() { // Requête + Traitement AJAX }, 3000);
ouai mais meme !! ca m'affiche trop de connexions !! :'( mais je vais essayé d'optimiser mon script pour qu'il y ait moins de requetes !!
je vous recontacte si besoin est ^^
merci encore
je vous recontacte si besoin est ^^
merci encore
Malheureusement je connais mal ce genre de fonctionnalité... Ça dépasse un peu mes capacités. Mais il doit y avoir un moyen... Le setInterval vaut peut-être la peine de l'essayer encore, le problème de trop de connexions se situe peut-être ailleurs.
Combien de gens penses-tu avoir en même temps sur ton site, à l'heure de pointe ?
Et peux-tu nous donner le message d'erreur exact que tu reçois quand tu essaies cette méthode ?
Combien de gens penses-tu avoir en même temps sur ton site, à l'heure de pointe ?
Et peux-tu nous donner le message d'erreur exact que tu reçois quand tu essaies cette méthode ?
Je viens de penser à quelque chose...
Supposons que, chaque fois qu'une modification est apportée à la BDD, tu conserves un timestamp quelque part disant à quel moment ç'a été fait. Et de l'autre côté, chez le client, tu crées un cookie ou une variable SESSION, qui contient le timestamp du dernier refresh pour cet utilisateur. Le setInterval servirait à détecter si le timestamp dans la BDD est plus "grand" (ou plus récent) que celui de l'utilisateur, et si c'est le cas, alors seulement il fait la mise à jour.
Ça va réduire le nombre de requêtes en général... Quoiqu'il va toujours falloir gérer la situation dans les moments où tout le monde va se mettre à jour en même temps...
À moins que tu aies déjà un mécanisme semblable ?
Idée comme ça...
Supposons que, chaque fois qu'une modification est apportée à la BDD, tu conserves un timestamp quelque part disant à quel moment ç'a été fait. Et de l'autre côté, chez le client, tu crées un cookie ou une variable SESSION, qui contient le timestamp du dernier refresh pour cet utilisateur. Le setInterval servirait à détecter si le timestamp dans la BDD est plus "grand" (ou plus récent) que celui de l'utilisateur, et si c'est le cas, alors seulement il fait la mise à jour.
Ça va réduire le nombre de requêtes en général... Quoiqu'il va toujours falloir gérer la situation dans les moments où tout le monde va se mettre à jour en même temps...
À moins que tu aies déjà un mécanisme semblable ?
Idée comme ça...
J'ai testé leur première demo (celle qui actualise le timestamp à chaque fois que celui-ci change => toutes les secondes). Elle marche très bien. J'ai donc essayé de compléter ce code pour l'intégrer à mon site : il faut que ça aille sur la bdd mysql pour prendre des infos. Seulement, là, dès que je mets mysql_connect(....), il plante et il n'affiche même plus le timestamp !
Je vous conseille de tester cette démo et d'essayer de se connecter à la bdd....
Merci