Вопрос

Я собираюсь создать счетчик просмотра для статей. У меня есть несколько вопросов:

  1. Должен ли я игнорировать автор статьи, когда он открывает статью?

  2. Я не хочу обновлять базу данных каждый раз. Я могу хранить вDictionary<int, int> (startied, viewcount) Сколько раз рассматривалось каждая статья. После 100 попаданий я могу обновить базу данных.

  3. Я должен рассчитывать только один раз в час для каждого пользователя и статьи. (Если пользователь открывает одну статью много раз в течение одного часа, подсчет просмотра должен быть увеличен только один раз).

За каждый вопрос, который я хочу знать ваши предложения, как это сделать правильно.

Мне особенно интересно, как сделать # 3. Должен ли я хранить время, когда пользователь открыл статью в cookie? Значит ли это, что я должен создать новое cookie для каждой страницы?

Это было полезно?

Решение

Я думаю, что знаю ответ - они анализируют журнал IIS, как предложил ОПЭ.

Hidden Image SRC установлен на

http://stackoverflow.com/posts/3590653/ivc/[Random code]

Случайный код] необходим, потому что многие люди могут поделиться одним и тем же IP (в сети, например), и код используется для различения пользователей.

Другие советы

  1. Конечно - я думаю, что это хорошая идея

  2. и 3. Связаны: проблема в том, что вы фактически хранили этот словарь и логику.

Приложение ASP.NET или приложение сеанса, конечно, являются самым простым выбором, но там вам действительно нужно понимать логику пулов приложений. Приложения ASP.NET возвращаются время от времени: когда на месте нет действий в течение определенного периода или в специальных ситуациях - например, если процесс запускает слишком много памяти, приложение выключено, и новый запускается в следующий запрос. Есть события для сеанса и отключения приложения, но, по крайней мере, несколько лет назад они не были действительно надежными: во многих особых случаях они не всегда огонь. Возможно, они лучше сейчас, но это больно для тестирования. И 1 час на самом деле долгое время: обычно сеансы хранятся только в течение 20 минут после последнего запроса.

Надежный способ было бы иметь отдельный сервис Windows (много работы на программу) или всегда хранят в базе данных с двойным просмотром анализов (довольно много накладных расходов для такой маленькой функции).

У вас есть доступ к журналам IIS? Как насчет анализа журналов IIS, например, каждые 30 минут с каким-то процессом таймера и оттуда оттуда? Или затем просто сохраните все удары в базу данных с информацией о пользователе и рассчитайте уникальные удары с аналогичным временным процессом.

Один итоговый вопрос: вы действительно уверены, что никто из тысяч счетных приложений / услуг в Интернете не будет выполнять достаточно близкую работу к вашим требованиям?

Удачи!

Это скриншот этой страницы в Firebug. Вы можете увидеть, что есть запрос, который возвращает 204 кода состояния (без содержимого).

Это счетчик видов стога. Они используют скрытое изображение, которое указывает на действие контроллера.

У меня много статей. Как отслеживать, какие статьи уже посетили пользователь?

PS BTW, почему этот запрос сделан два раза?

alt text

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top