|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
bonjour j'ai un script (fait par moi) en début de page qui m'affiche le nombre de visiteur sur une page bien précise de mon site cependant j'aimerai actualiser de temps en temps le nombre de visiteurs sans recharger la page.
Comment dois-je procéder ? vous allez me dire d'utiliser l'AJAX, mais est-ce que d'exécuter une requête toute les 5 minutes par exemple ne prends pas énormément de ressource ? Comment feriez-vous ? |
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
Une requête AJAX, ce n'est rien d'autre qu'une requête HTTP, j'espère que ton serveur est capable de gérer une requête par 5 minutes!
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
10
|
|
|
#3 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 248 ![]() |
un simple lien a cote de ton nombre de visites "rafraichir" et avec un onclick(), un apel ajax de ton script
ps : Bovino tu m'as fait sourire =)
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
00
|
|
|
#4 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
c'est aussi une requête SQL dans la base de données si j'ai beaucoup d'utilisateurs exemple : 100 ça fait 100 requêtes toutes les 5 minutes ça fait pas beaucoup ?
|
|
|
00
|
|
|
#5 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Citation:
Crées-toi un script très léger dédié à ce fonctionnement seulement. Renvoie tes données en JSON pour faciliter l'insertion dans la page. Personnellement j'utiliserai un timeout pour lancer périodiquement la requête Ajax, mais c'est à toi de voir. Un requête de ce genre c'est normalement quelques miliseconde, plus le PHP devant ça ne devrait jamais dépasser 50ms, tu peux monitorer tout ça en utilisant FireBug et revoir ton mécanisme si c'est trop lent. Et non, 100 requêtes HTTP en 5min, ça fait une moyenne de 1 requête toutes les 3 secondes, c'est pas le bout du monde
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 248 ![]() |
Citation:
![]() edit : tes 100 utilisateurs, ce seraient 100 gars avec la page du compteur de visite ouvert ? ou 100 utilisateurs en base ?
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
|
00
|
|
|
#7 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
niveau création je sais le faire (php, ajax et sql), je demandai juste comment précéder.
On imagine une seule page ou j'ai 100 visiteurs par exemple, les gens quand on est sur cette page on la ferme dans 1heure ou 2. Du coup il faut que j'affiche dynamiquement le nombre de visiteur. Si je veux afficher toutes les 5 minutes la mise à jour. Il faudra envoyer une requête sql pour interroger la table connectes. 100 requêtes toutes les 5 minutes si j'ai 100 visiteurs. Je demandai juste par manque d’expérience sur ce sujet si cela n'allait pas prendre trop de ressources ? a moins de créer une fonction dans sql arf c'est quoi déjà l'autre nom a part Trigger ? SP... |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
un petit WebSocket
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 248 ![]() |
J'ai envis de dire, que ca devrait aller question utilisation des ressources de la bete...
apres si tu veux optimiser le truc, tu peux mettre le resultat de ta requete dans le cache apc avec un timeout de 5min et a chaque demande du nombre de visiteurs, tu check si ta variable en cache existe, sinon tu la recrais. comme ca tu ne fait qu'une requete en base toutes les 5min... du coup, tu pourrais imaginer faire plus d'appels (genre 1/min) puisque ca libere tout
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
00
|
|
|
#11 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
ah ok merci ! je n'ai jamais mis une variable en cache, tu connais un bon site qui expliquerai ceci ? en faite je fais ma requête COUNT() en PDO et le résultat je le met dans une variable en php que j'aurai déjà défini en cache ?
déjà merci pour le manuel, je vais regarder. il y a une limitation dans le cache ? si oui comment regarder dans le phpinfo() ? |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 248 ![]() |
pour la limitation, je dirais que ca se limite a la ram de ta machine =)
mais sinon, "toto" representant quelques octets.... t'as de quoi faire avant de remplir tes Go... =) sinon pour les infos du cache, tu as plusieurs fonctions utiles ( apc_cache_info(), APCIterator::getTotalSize(), APCIterator::getTotalCount()..etc) il faudra juste que tu fasses attention a recuperer la bonne dll d'apc qui corresponde a ta config machine (si c'est pas la bonne, apc ne fonctionnera pas, t'auras des messages d'erreur) sinon pour le principe, c'est ca... tu recupere ton resultat en pdo, et ce resultat tu le mets en cache. avec un ttl (time to live), comme ca, si ta variable existe encore (avec le ttl), tu la recupere, sinon, tu re-recupere le resultat en base avec pdo. bon courrage
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
00
|
|
|
#13 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
d'accord merci !!
par contre une précision je suis sur 1and1 et je n'ai pas de serveur dédié. Cependant j'ai un nouveau problème à ce sujet. Quand une personne rentre sur cette page je rentre son ip dans la table connecte avec son timestamp. Par la suite une fonction vérifie que le timestamp est inférieur à 5 minutes. A) Comment supprimer la dernière entrer ? Dans ce cas il y aura toujours le dernier visiteur sur cette page, alors que c'est faux ! B) Sur cette fameuse page on peut y rester longtemps 1heure par exemple. Le timestamp ne se rafraichie pas et donc si un autre utilisateur arrive l'utilisateur en cours sera supprimé de la base de données ! Comment résoudre ces deux soucis s'il vous plait. |
|
|
00
|
|
|
#14 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Si tu as mis en place ton compteur de visiteurs avec rafraîchissement automatique, profites-en pour mettre à jour la table des personnes connectées lors de cet appel...
__________________
|
|
|
00
|
|
|
#15 |
|
Débutant
Inscription : février 2009 Messages : 559 ![]() |
je fais cette intervalle sous 1, 2 minutes ?
j'ai toujours peur d'utiliser trop de ressources, on nous apprends tellement a optimisé.... |
|
|
00
|
|
|
#16 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
1 minute, en temps machine, c'est une éternité...
__________________
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com