Окрім того, що вони не є стійкими та охоплюються лише поточним вікном, чи є якісь переваги (продуктивність, доступ до даних тощо) для зберігання сеансу над локальним зберіганням?
Окрім того, що вони не є стійкими та охоплюються лише поточним вікном, чи є якісь переваги (продуктивність, доступ до даних тощо) для зберігання сеансу над локальним зберіганням?
Відповіді:
localStorage та sessionStorage розширюють Storage . Різниці між ними немає, окрім передбачуваного "непостійності" sessionStorage
.
Тобто, дані, що зберігаються у, localStorage
зберігаються до явного видалення . Внесені зміни зберігаються та доступні для всіх поточних та майбутніх відвідувань сайту.
Для sessionStorage
, зміни доступні тільки на вкладці. Внесені зміни зберігаються та доступні для поточної сторінки на цій вкладці до її закриття. Після закриття збережені дані видаляються.
Єдина відмінність полягає в тому, що localStorage має різний час придатності, sessionStorage
він буде доступний лише тоді, коли відкриється вікно, яке його створило. localStorage
триває, поки ви не видалите його або користувач не видалить його.
Скажімо, що ви хотіли зберегти ім’я користувача та пароль для входу, якими ви хочете скористатися sessionStorage
з localStorage
міркувань безпеки (тобто інша особа, яка пізніше отримає доступ до свого облікового запису).
Але якби ви хотіли зберегти налаштування користувача на їх машині, ви, ймовірно, захотіли б localStorage
. Загалом:
localStorage
- використання для тривалого використання.
sessionStorage
- використовувати, коли вам потрібно зберігати щось, що змінюється, або щось тимчасове
Кілька інших моментів, які можуть бути корисними для розуміння відмінностей між локальним зберіганням та зберіганням сеансу
Як локальне, так і зберігання сеансів визначаються походженням документа
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Все перераховане вище URL, буде НЕ один і той же зберігання. (Помітний шлях веб-сторінки не впливає на веб-сховище)
Зберігання сеансу відрізняється навіть для документа з однаковою політикою походження, відкритою на різних вкладках, тому однакова веб-сторінка, відкрита на двох різних вкладках, не може мати спільне зберігання сеансу.
Постачальники веб-переглядачів також охоплюють локальне та зберігання сеансів . Отже, дані зберігання, збережені IE, не можуть читати Chrome чи FF.
Сподіваюсь, це допомагає.
Основна відмінність між localStorage
і в sessionStorage
тому, що sessionStorage
вона унікальна на вкладці. Якщо ви закриєте вкладку, sessionStorage
видалення видаляється, localStorage
не. Також ви не можете спілкуватися між вкладками :)
Ще одна тонка відмінність полягає в тому, що, наприклад, на Safari (8.0.3) localStorage
є обмеження в 2551 k символів, але він sessionStorage
має необмежений обсяг пам’яті
У Chrome (v43) обидва localStorage
та sessionStorage
обмежені 5101 k символами (різниці між нормальним / анонімним режимом немає)
У Firefox обидва localStorage
і sessionStorage
обмежені 5120 к символами (різниці між нормальним / приватним режимом)
Немає різниці у швидкості :)
Існує також проблема з мобільним Safari та мобільним Chrome, приватний режим Safari та Chrome мають максимальний простір 0 КБ
sessionStorage
такий самий, як localStorage
, за винятком того, що він зберігає дані лише за один сеанс, і він буде видалений, коли користувач закриє вікно браузера, який його створив.
Ефективність, мої (грубі) вимірювання не знайшли різниці на 1000 записів і зчитуваннях
безпечно, інтуїтивно здається, що локальний магазин може бути закритий до сесії магазину, але не має конкретних доказів - можливо, хтось ще робить?
функціонально мудрий, погоджений з цифровим свіжою версією
Зберігання сеансу Ya та локальне зберігання однакові за поведінкою, за винятком того, що локальний сховище зберігатиме дані до тих пір, поки користувач не видалить кеш і файли cookie, а дані зберігання сеансу зберігатимуться в системі, поки ми не закриємо сеанс i, e поки ми не закриємо вікно створеного сховища сеансу.
Перевага зберігання сеансу перед локальним сховищем, на мою думку, полягає в тому, що він має необмежену ємність у Firefox і не зберігатиметься довше, ніж сеанс. (Звичайно, це залежить від вашої мети.)
Локальне зберігання: зберігає дані про інформацію про користувачів без дати закінчення терміну дії, ці дані не будуть видалені, коли користувач закриє вікна браузера, вони будуть доступні за день, тиждень, місяць та рік.
//Set the value in a local storage object
localStorage.setItem('name', myName);
//Get the value from storage object
localStorage.getItem('name');
//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege
Зберігання сеансу: це так само, як дата локального зберігання, за винятком того, що вона видалить усі вікна, коли вікна браузера закриті користувачем Інтернету.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
Детальніше Клацніть
sessionStorage
підтримує окрему зону зберігання для кожного заданого джерела, доступну протягом тривалості сеансу сторінки (доки браузер відкритий, включаючи перезавантаження та відновлення сторінки)
localStorage
робить те ж саме, але зберігається навіть тоді, коли браузер закритий і знову відкритий.
Я взяв це з https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API