Как реализовать уникальные хиты по статьям - PullRequest
2 голосов
/ 26 ноября 2009

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

Я думал о сохранении их ip, но я не знаю, как смоделировать это в mysql. Если я сделаю запись в БД для каждого удара, это будет огромно.

Я прочитал эту статью: Как написать эффективный счетчик посещений для сайтов

Лучший ответ - использовать журнал, а затем обновить его до дБ. Но опять же.

Что является лучшим способом определения нового попадания, это с помощью IP или другой переменной. И сколько времени можно снова зарегистрировать для определенного пользователя.

Любые другие типы реализаций также приветствуются.

Ответы [ 4 ]

2 голосов
/ 26 ноября 2009

Вы также можете просто сохранить IP-адрес и время, когда вы впервые зарегистрировали его, и увеличивать его, только если время было достаточно длинным, возможно, 30 минут, а затем увеличивать время, связанное с IP-адресом.

2 голосов
/ 26 ноября 2009

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

1 голос
/ 26 ноября 2009

Самый простой способ: когда пользователь впервые посещает, увеличьте счетчик и отправьте ему cookie. Если вы обнаружили cookie, не увеличивайте счетчик.

0 голосов
/ 26 ноября 2009

Это сложно. Это действительно невозможно сделать это на 100% правильно:

  1. Если вы полагаетесь на куки, что происходит, когда они удаляются (1), истекает (1) или когда они отключены (2)?
  2. Если вы полагаетесь на IP, что происходит с теми людьми, которые заходят на ваш сайт через прокси? Есть достаточно компаний, провайдеров, которые выпускают пользователей только через прокси (3) и / или (1)
  3. Идентификатор сеанса: когда он хранится в виде файла cookie, см. 1.; когда это не так, он сбрасывается каждый раз, когда пользователь заходит на ваш сайт без установки параметра SET Id GET / POST (1) (если сессия всегда связана с пользователем в процессе аутентификации, это другой случай)

Наиболее распространенная реализация - использование файлов cookie. Просто помните, что это не идеально.

(1) вы получите несколько попаданий от одного и того же пользователя
(2) вы получите много обращений от одного и того же пользователя, если только вы не обращаетесь с клиентами, которые не разрешают использование файлов cookie по-разному
(3) вы получите только один удар от нескольких пользователей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...