Эффективные способы анонимной персонализации с использованием ASP.NET + Cookie

Я пытаюсь добиться анонимной персонализации в среде ASP.net. Я знаю, что ASP.NET 2.0 предоставляет Профиль. Однако я хочу, насколько это возможно, избегать трафика в базу данных, поскольку сайт, над которым я работаю, является сайтом с относительно высокой посещаемостью.

Другое очевидное решение - файлы cookie, но, учитывая ограничение cookie, мне было интересно, есть ли у кого-нибудь эффективный метод для хранения информации в файлах cookie. Кто-нибудь знает, как работает Amazon или Yahoo в анонсе. персонализация?

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

 campaign code:page id:result display

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

Заранее спасибо!

Какую персонализацию вы хотите сделать? Простое изменение темы или много отображаемых / скрытых панелей в зависимости от предпочтений?

Dillie-O 24.10.2008 19:36

Вы можете получить информацию о персонализации из базы данных во время того же вызова.

DOK 24.10.2008 19:41

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

Herman 24.10.2008 20:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
1 710
3

Ответы 3

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

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

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

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

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

Вы можете сохранить идентификатор пользователя в файле cookie.

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

Если вы хотите сохранить изменения, такие как представление каждой кампании, на самом деле нет никакого способа получить доступ для записи этих изменений. Членство в ASP.NET неплохо для сайта с большим объемом (> 1 млн в день) при правильном использовании. Например, вы должны заключать вызовы поставщика членства в кэшированный объект и часто обновлять (короткий срок действия). Кроме того, не забудьте установить cacheRefreshInterval для RoleProvider. Это заставит asp.net кэшировать роли в файле cookie, чтобы сократить активность БД.

Другой способ взглянуть на это - последовать совету Ади и выделить членство в отдельную БД. Опять же, еще одна замечательная функция поставщика членства ASP.NET - вы можете установить другую строку подключения SQL и загрузить ее в другую базу данных и / или сервер.

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

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