2016-03-10 4 views
3

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

Я использую аутентификацию Facebook/Google в своем приложении ASP.NET MVC, поэтому я уже использую файлы cookie, но они истекают, когда пользователь заканчивает свою сессию.

Каков правильный подход к выполнению того, что я хочу сделать? Я могу думать о двух подходах:

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

Я хотел видеть, как другие справлялись с этим.

ответ

2

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

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

Если вы разрабатываете сильное клиентское приложение, я могу смиренно предложить вам использовать локальное хранилище? Поддержка более менее вездесущая (http://caniuse.com/#search=localstorage), она будет сохраняться до тех пор, пока не будет удалена, и она не пострадает от всех проблем, которые есть у файлов cookie.

Я предлагаю вам проверить этот ответ (Local Storage vs Cookies) для получения дополнительной информации о cookie vs localstorage.

Если вам нужно несколько образцов использования локального хранилища, вы можете проверить эту ссылку (https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage). Например:

function setInfo(key, data) { 
    if (!window.localStorage) { 
     window.localStorage.setItem(key, data); 
    } else { 
     console.log('Local Storage: not supported'); 
    } 
} 
+0

Благодарим за отзыв. Кстати, я не хотел, чтобы я сохранил изображение аватара. Просто URL-адрес файла аватара. – Sam

Смежные вопросы