Книга: JavaScript. Подробное руководство, 6-е издание
20.1.3. События объекта Storage
20.1.3. События объекта Storage
При изменении данных, хранящихся в localStorage
или sessionStorage
, броузер генерирует событие «storage» во всех объектах Window
, в которых доступны эти данные (но не в окне, где выполнялось сохранение). Если в броузере открыты две вкладки со страницами с общим происхождением и в одной из страниц производится сохранение значения в localStorage
, в другой вкладке будет сгенерировано событие «storage». Не забывайте, что область видимости данных, хранящихся в sessionStorage
, ограничивается окном верхнего уровня, поэтому при изменении данных в sessionStorage
события «storage» будут генерироваться только при наличии нескольких фреймов. Обратите также внимание, что события «storage» генерируются, только когда содержимое хранилища действительно изменяется. Присваивание хранимому элементу его текущего значения, как и попытка удалить несуществующий элемент, не возбуждают событие.
Регистрация обработчиков события «storage» выполняется с помощью метода addEventListener()
(или attachEvent()
в IE). В большинстве броузеров для этой цели можно также использовать свойство onstorage
объекта Window
, но на момент написания этих строк данное свойство не поддерживалось в Firefox.
Объект события, связанный с событием «storage», имеет пять основных свойств (к сожалению, они не поддерживаются в IE8):
key
Имя или ключ сохраняемого или удаляемого элемента. Если был вызван метод сlеаг(),
это свойство будет иметь значение null.
newValue
Новое значение элемента или null, еслибыл вызван метод removeItem().
oldValue
Старое значение существующего элемента, изменившегося или удаленного, или значение null, если был создан новый элемент.
storageArea
Это свойство будет хранить значение свойства localStorage
или sessionStorage
целевого объекта Window
.
url
URL-адрес (в виде строки) документа, сценарий которого выполнил операцию с хранилищем.
Наконец, обратите внимание, что объект localStorage
и событие «storage» могут служить широковещательным механизмом, с помощью которого броузер может отправлять сообщения всем окнам, в которых в настоящий момент открыт один и тот же веб-сайт. Например, если пользователь потребует от веб-сайта прекратить воспроизводить анимационные эффекты, сценарий может сохранить соответствующий параметр настройки в localStorage
, чтобы соблюсти это требование при последующих посещениях сайта. При сохранении параметра будет сгенерировано событие, что позволит другим окнам, отображающим тот же сайт, также удовлетворить это требование. В качестве другого примера представьте веб-приложение графического редактора, позволяющее пользователю отображать палитры с инструментами в отдельных окнах. При выборе пользователем некоторого инструмента приложение могло бы сохранять в localStorage
признак выбранного инструмента и тем самым рассылать другим окнам извещения о том, что был выбран новый инструмент.
- 20.1. Объекты localStorage и sessionStorage
- StorageEvent
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Простейшие события
- Глава 8 Технологии IP Storage и InfiniBand
- 8.1 Технология IP Storage
- Создание рабочей области для собраний на основе календарного события
- 5.2.3. Действия с объектами Numbers
- 12.6. Обращение к объектам, отображенным в память
- События
- Как работают сценарии. События
- Temporary File Storage in the