Отслеживать количество раз, когда пользователь вошел в систему? - PullRequest
0 голосов
/ 19 июля 2011

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

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

A. Having another field in the users table which keeps count
B. Keeping the users which are at different 'states' in different tables 
   (yeah - doesnt make much sense to me either)
C. Keeping count via a cookie at the client end

Что-нибудь еще, что возможно?

Ответы [ 3 ]

0 голосов
/ 19 июля 2011

С точки зрения загрузки сервера / базы данных, хранение счетчиков в cookie-файлах - лучший вариант.Недостатком, конечно, является то, что если пользователь удаляет или отключает свои куки, он снова увидит заставку.

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

И если пользователь очистит свои куки до достижения третьего счета, он все равно увидит всплеск еще 3 раза.Но поскольку пользователь не знает, сколько раз должен отображаться всплеск, и поскольку он так и не достиг состояния, при котором всплеск не перестанет отображаться, с его точки зрения, опыт остается неизменным.Как только они сохраняют файл cookie достаточно долго, чтобы счетчик достиг 3, заставки останавливаются и останавливаются.

0 голосов
/ 19 июля 2011

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

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

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

0 голосов
/ 19 июля 2011

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

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

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