Вопрос, на который большинство фронтенд-разработчиков не знают ответа
Недавно мой друг был поставлен в тупик вопросом о sessionStorage
во время интервью.
Ну, должен признать, я не знаком с этим. Мой хороший друг, ты понял это?
Может ли sessionStorage обмениваться данными между несколькими вкладками?
О процессе собеседования
Вопрос 1: "Знаете ли вы, в чем разница между localStorage и sessionStorage?"
Мой друг: Он был так счастлив, потому что это знание, которое знает любой фронтенд-разработчик.
- Данные
localStorage
являются постоянными, пока мы не очистим их активно, они будут существовать всегда. - Закрытие вкладки/окна завершает сеанс и очищает объекты в sessionStorage.
Вопрос 2. Может ли localStorage совместно использовать данные на одном и том же веб-сайте?
Мой друг: «Это еще один легкий! Данные могут быть разделены между разными вкладками или окнами на одном и том же веб-сайте».
// Let's try to set a name in window 1 page 1 localStorage.setItem('name', 'fatfish') // We try to read the current name in window 2 page 2 localStorage.getItem('name') // fatfish
Вопрос 3: "Вы молодцы, я хочу проверить еще один вопрос: может ли sessionStorage обмениваться данными между несколькими вкладками"
Мой друг: «Нет, у каждого окна или вкладки есть отдельное sessionStorage, обмена данными между ними нет»
Интервьюер: «Вы действительно уверены, что это так?»
Мой друг: «Э! Я не уверен, может быть!»
Возможно, мой друг пропустил предложение из-за этого вопроса, но нам, как разработчикам, необходимо постоянно улучшать свои знания и навыки.
Что такое сеансовое хранилище?
(из mdn) Доступное только для чтения свойство sessionStorage обращается к объекту Storage сеанса для текущего источника. sessionStorage похож на localStorage; разница в том, что хотя срок действия данных в localStorage не истекает, данные в sessionStorage очищаются по завершении сеанса страницы.