- Автор темы
- #1
Просмотры сохраняются в БД. При этом всем сохраняются еще различные параметры просмотра, типа метрики.
При открытии статьи проверяется, был ли просмотр или нет. Если нет, То добавляется в БД новый просмотр. Проверка идет по IP или логину.
Возник такой вопрос. Что если пользователь нажал F5 (была какая-нибудь ошибка при загрузе или непреднамеренно) или добавил в закладки и потом прочитал. При фильтрации по IP или логину будет засчитан только один первый запрос, даже при просмотре в 2 секунды. А второй просмотр в 5 минут не учтется. Что неправильно, получается.
Придумал следующее:
Сделать учет ВСЕХ просмотров. А потом по крону отсеивать по данным метрики левые просмотры (например, удалять или ставить галочки).
Возникла вторая проблема: таким образом, просмотров будет несколько (учтенных по метрике), например, пользователь может зайти несколько раз и читать по 5 минут. А должен быть всего один учтенный (например, просмотр больше 1 минуты и т.п.). А все остальные уже не учитывать, либо удалять.
Или может быть кто-то знает другой способ по отсеиванию просмотров?
p.s. можно еще все реализовать через js, отправлять все в php и там обрабатывать перед добавлением просмотра в таблицу, когда вся метрика соберется. А что если js выключен. Насколько можно людей читают сайты без js?
При открытии статьи проверяется, был ли просмотр или нет. Если нет, То добавляется в БД новый просмотр. Проверка идет по IP или логину.
Возник такой вопрос. Что если пользователь нажал F5 (была какая-нибудь ошибка при загрузе или непреднамеренно) или добавил в закладки и потом прочитал. При фильтрации по IP или логину будет засчитан только один первый запрос, даже при просмотре в 2 секунды. А второй просмотр в 5 минут не учтется. Что неправильно, получается.
Придумал следующее:
Сделать учет ВСЕХ просмотров. А потом по крону отсеивать по данным метрики левые просмотры (например, удалять или ставить галочки).
Возникла вторая проблема: таким образом, просмотров будет несколько (учтенных по метрике), например, пользователь может зайти несколько раз и читать по 5 минут. А должен быть всего один учтенный (например, просмотр больше 1 минуты и т.п.). А все остальные уже не учитывать, либо удалять.
Или может быть кто-то знает другой способ по отсеиванию просмотров?
p.s. можно еще все реализовать через js, отправлять все в php и там обрабатывать перед добавлением просмотра в таблицу, когда вся метрика соберется. А что если js выключен. Насколько можно людей читают сайты без js?