Я пытаюсь добиться анонимной персонализации в среде ASP.net. Я знаю, что ASP.NET 2.0 предоставляет Профиль. Однако я хочу, насколько это возможно, избегать трафика в базу данных, поскольку сайт, над которым я работаю, является сайтом с относительно высокой посещаемостью.
Другое очевидное решение - файлы cookie, но, учитывая ограничение cookie, мне было интересно, есть ли у кого-нибудь эффективный метод для хранения информации в файлах cookie. Кто-нибудь знает, как работает Amazon или Yahoo в анонсе. персонализация?
В конечном счете, мы пытаемся предоставлять различный динамический контент нашей пользовательской базе на основе набора бизнес-правил, изложенных в заранее определенной кампании. Причина в том, чтобы измерить коэффициент конверсии на нашем сайте. Одну и ту же кампанию можно использовать на всех разных страницах сайта. Причина, по которой мне нужно установить это в файл cookie, заключается в том, что пользователь может видеть тот же контент, который был загружен ранее, если мы этого хотим. Вот что у меня сейчас в cookie.
campaign code:page id:result display
И вы можете видеть, что это будет расти, если кампаний много, и каждая кампания используется на многих страницах.
Заранее спасибо!
Вы можете получить информацию о персонализации из базы данных во время того же вызова.
Я не думаю, что общение с базой данных - это вариант, поскольку он предназначен для анонимности. пользователям и мне может потребоваться другая информация. на другой странице нашего сайта.





Я бы создал запись в базе данных для посетителя и сохранил только идентификатор в файле cookie, таким образом, вы могли найти все персонализированные данные из базы данных и свести размер cookie к минимуму.
Если скорость базы данных является проблемой, возможно, используйте другую базу данных и сервер для хранения персонализации.
В качестве альтернативы вы можете хранить личные данные в файловой системе и загружать их в сеанс, когда посетитель возвращает соответствующий идентификатор cookie.
Если идентификация пользователя и очистка файлов cookie являются проблемой, вы холодно используете и элемент управления ActiveX, но для этого требуется установка на клиентский компьютер, против чего люди могут возражать.
Если загрузка базы данных является проблемой, вы можете получить персонализацию, когда пользователь запускает сеанс на веб-сайте, а затем сохранить его в состоянии сеанса. Таким образом, только первая загрузка страницы вызовет базу данных.
Вы можете сохранить идентификатор пользователя в файле cookie.
Просто не забудьте сохранить сеанс в базе данных, когда пользователь обновит свои предпочтения, и удаление старых записей базы данных через некоторое время также может быть хорошей идеей, если это много анонимных пользователей посетят ваш веб-сайт.
Если вы хотите сохранить изменения, такие как представление каждой кампании, на самом деле нет никакого способа получить доступ для записи этих изменений. Членство в ASP.NET неплохо для сайта с большим объемом (> 1 млн в день) при правильном использовании. Например, вы должны заключать вызовы поставщика членства в кэшированный объект и часто обновлять (короткий срок действия). Кроме того, не забудьте установить cacheRefreshInterval для RoleProvider. Это заставит asp.net кэшировать роли в файле cookie, чтобы сократить активность БД.
Другой способ взглянуть на это - последовать совету Ади и выделить членство в отдельную БД. Опять же, еще одна замечательная функция поставщика членства ASP.NET - вы можете установить другую строку подключения SQL и загрузить ее в другую базу данных и / или сервер.
Есть несколько других методов, связанных с поставщиком членства, которые действительно могут повысить производительность. Некоторые из них появляются при быстром поиске в Google.
Какую персонализацию вы хотите сделать? Простое изменение темы или много отображаемых / скрытых панелей в зависимости от предпочтений?