2009-02-17 15 views
3

Je souhaite comptabiliser les visites sur une page Web, et cette page représente un élément de mon modèle, tout comme les vues de la page de questions Stack Overflow.Comment créer un compteur de pages vues fiable et robuste dans une application Web?

Comment faire cela dans un système fiable (une visite, un pageview, sans répétitions) et robuste (réflexion sur la performance, non seulement un nouvel attribut de table « visits_count »)

+0

Comment "en temps réel" at-il besoin d'être? – alphadogg

+0

Aussi, quelle est la précision? – alphadogg

+0

disons, au moins 10 minutes de temps rafraîchissant – Cipriani

Répondre

7

Vous ne pouvez pas.

  • Plusieurs personnes peuvent visiter votre site à partir de la même adresse IP (rend le stockage IP inutile)
  • Plusieurs personnes peuvent visiter votre site à partir du même PC
  • Plusieurs personnes peuvent visiter votre site à partir du même navigateur (marques cookies inutiles)

Le plus proche que vous pouvez obtenir est de stocker l'IP des visiteurs en combinaison avec un cookie pour ne pas compter ceux dans le futur. Voici un compromis, si elles effacent le cookie, ils sont un nouveau visiteur. Si vous ne stockez que l'adresse IP, vous comptez des mandataires entiers en tant que visiteur.

Une autre option consiste à utiliser des comptes d'utilisateurs et de suivre exactement quel utilisateur a consulté quelle page, mais ce n'est pas vraiment une bonne option pour les sites publics.

0

Une façon de gérer le problème de performance est de faire les calculs sur l'insertion. Quelque chose comme

UPDATE stat SET viewcount = viewcount+1 WHERE date = CURDATE() 

Ce n'est pas la solution parfaite, mais pourrait vous aider.

Pour le faire sans répétitions est potentiellement un problème délicat. Je me fierais simplement à l'utilisation de sessions ou de cookies, mais vous pourriez trouver toutes sortes de stratégies pour filtrer les robots d'exploration, les clients sans support de cookie, etc.

1

Je suggère, en fait, d'utiliser Google Analytics. Bien que rien ne soit jamais vraiment précis, ils prennent un bon coup de chance, et le niveau de rapports et d'informations utiles que vous pouvez extraire est incroyable.

Sans compter que vous pouvez télécharger jusqu'à 4 000 000 de pages vues par mois.

http://www.google.com/analytics

Questions connexes