Как вы технически сохраняете, сколько людей посетили определенный URL или определенный пост?

#reactjs

#reactjs

Вопрос:

Я пытаюсь создать приложение для форума, используя Django в качестве серверной части и React в качестве интерфейса. Я хочу узнать, сколько людей посетило пост, созданный пользователем, чтобы я мог сохранять в виде просмотров и перечислять посты в соответствии с популярностью.

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

Комментарии:

1. Вы находите приличный пакет аналитики (либо размещенный, либо что-то, что вы можете установить на свой собственный сервер), а затем используете его. Не тратьте время на изобретение колеса, которое уже было создано и тщательно протестировано другими. Просто используйте то, что они создали. (и это касается любой сложной функциональности, на самом деле: вы почти наверняка не первый, кому это нужно: поищите решения с открытым исходным кодом или бесплатные, прежде чем даже начать думать «может быть, мне стоит написать это самому»)

2. @Mike’Pomax’Camermans Благодарю вас за предложения. Я просто подумал, что это будет легко создать, и сохранение данных в серверной части с помощью того, что я создаю, было бы намного проще. Но я найду хороший инструмент аналитики, который хорошо соответствует моим потребностям.

Ответ №1:

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

Проблема, конечно, заключается в определении того, какие «просмотры» считаются реальными. Это был постер? Это был робот? Это был паук? Это был скребок? Это был один и тот же человек, который не является постером, просматривающий его много раз?

Я бы не сказал, что последнюю часть нелегко реализовать, и, вероятно, потребуется несколько проб и ошибок, прежде чем найти правильные условия для получения ваших показателей «правильно».

Как @Mike предлагает выше, существует множество пакетов аналитики, которые используют сложные алгоритмы для определения «реальности», и вы можете использовать эти данные. Я понимаю, что вы хотите фактически применить данные к сортировке и пользовательскому интерфейсу вашего приложения, а не просто просматривать их на панели инструментов вашего аналитического инструмента. Я никогда не пытался искать тот, который поддерживает API, чтобы узнать, что вас интересует программно, но все они, вероятно, позволяют загружать структурированные данные о вашем трафике. Проблема с последним подходом заключается в том, что он создает задержку и выполняется вручную (всегда что-то, чего следует избегать imo).

Комментарии:

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