Как создать надежный и надежный счетчик просмотров страниц в веб-приложении? - PullRequest
3 голосов
/ 17 февраля 2009

Я хочу подсчитать посещения веб-страницы, и эта страница представляет элемент моей модели, так же как и просмотры страниц с вопросом о переполнении стека.

Как сделать это надежным (одно посещение, один просмотр страницы, без повторений) и надежным (с точки зрения производительности, а не только с новым атрибутом таблицы 'посещения_счетом')

Ответы [ 3 ]

7 голосов
/ 17 февраля 2009

Вы не можете.

  • Несколько человек могут посещать ваш сайт с одного IP-адреса (делает ip-хранилище бесполезным)
  • Несколько человек могут посетить ваш сайт с одного компьютера
  • Несколько человек могут посещать ваш сайт из одного браузера (делает куки бесполезными)

Самое близкое, что вы можете получить, это сохранить IP посетителей в сочетании с cookie, чтобы не учитывать их в будущем. Вот компромисс, если они очищают куки, они новый посетитель. Если вы храните только IP-адрес, все прокси считаются одним посетителем.

Другой вариант - использовать учетные записи пользователей и точно отслеживать, какой пользователь просматривал какую страницу, но это не очень хороший вариант для общедоступных сайтов.

1 голос
/ 17 февраля 2009

Я бы предложил использовать Google Analytics. Хотя ничто не может быть по-настоящему точным, они чертовски хороши, и уровень отчетов и полезной информации, которую вы можете извлечь, поразителен.

Не говоря уже о бесплатности до 4 000 000 просмотров страниц в месяц.

http://www.google.com/analytics

0 голосов
/ 17 февраля 2009

Одним из способов решения проблемы производительности является выполнение расчетов на вставке. Что-то вроде

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

Это не идеальное решение, но может помочь вам.

Сделать это без повторений - потенциально сложная задача. Я бы просто полагался на использование сеансов или файлов cookie, но вы могли бы придумать все виды стратегий для фильтрации сканеров, клиентов без поддержки cookie и т.

...