Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 15h52   #1
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
Par défaut Nombre de visiteurs

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 ?
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 15h59   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par noobyyy
est-ce que d'exécuter une requête toute les 5 minutes par exemple ne prends pas énormément de ressource ?
Euh... non, pas vraiment.
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 JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/09/2011, 16h48   #3
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
Citation:
Envoyé par noobyyy Voir le message
Comment feriez-vous ?
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_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h51   #4
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
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 ?
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 17h19   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Citation:
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 ?
Optimise tes requêtes, mets les bons index, utilise les requêtes préparées.
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
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 17h44   #6
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
Citation:
Envoyé par noobyyy Voir le message
si j'ai beaucoup d'utilisateurs exemple : 100 ça fait 100 requêtes toutes les 5 minutes ça fait pas beaucoup ?
je t'invite a te pencher sur les fonctions SQL, et plus precisement sur le count()

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_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 17h53   #7
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
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...
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 18h09   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
un petit WebSocket
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 11h12   #9
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
et procédure stockée ?

--

Citation:
Envoyé par Benjamin Delespierre Voir le message
Personnellement j'utiliserai un timeout pour lancer périodiquement la requête Ajax, mais c'est à toi de voir.

tu veux dire $.ajaxSetup() ? car $.ajaxTimeout(time) est déprécié maintenant.
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 14h52   #10
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
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_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 23h24   #11
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
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() ?
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 09h36   #12
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 248
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 248
Points : 1 506
Points : 1 506
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_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 19h52   #13
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
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.
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 00h17   #14
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par noobyyy Voir le message
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 !
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...
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 18h19   #15
Débutant
 
Inscription : février 2009
Messages : 559
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 559
Points : 138
Points : 138
je fais cette intervalle sous 1, 2 minutes ?

j'ai toujours peur d'utiliser trop de ressources, on nous apprends tellement a optimisé....
noobyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 21h42   #16
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par noobyyy Voir le message
je fais cette intervalle sous 1, 2 minutes ?

j'ai toujours peur d'utiliser trop de ressources, on nous apprends tellement a optimisé....
1 minute, en temps machine, c'est une éternité...
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h24.


 
 
 
 
Partenaires

Hébergement Web