В HTML5 является объектом LocalStorage, изолированные на странице / домен?
-
25-09-2019 - |
Вопрос
Это объект LocalStorage HTML5, изолированные на странице / домене? Мне интересно, из-за того, как я назвал локальные ключи. Мне нужен отдельный префикс? Или я могу назвать их все, что я хочу?
Решение
Это на домен (та же правила сегрегации, что и та же политика происхождения), чтобы сделать его на странице, вы должны использовать ключ на основе location
, или какой-то другой подход.
Вы не нужно префикс, используйте один, если вам это нужно, хотя. Кроме того, да, вы можете назвать их все, что вы хотите.
Другие советы
Магазины за происхождение, где происхождение такое же, как для Та же политика происхождения (комбинация схемы [http
против. https
, и т. Д.], Порт и хозяин). От Спец:
Каждый контекст просмотра верхнего уровня имеет уникальный набор областей хранения сеансов, один для каждого происхождения.
Таким образом, хранение для http://a.example.com
и хранение для http://b.example.com
отдельные (и они оба отдельно от http://stackoverflow.com
) Как это все разные хозяева. По аналогии, http://example.com:80
а также http://example.com:8080
а также https://example.com
все разные происхождения.
Не существует механизма, встроенного в веб-хранилище, которое позволяет одному происхождению доступа к хранилищу другого.
Обратите внимание, что это источник, не URL, так http://example.com/page1
а также http://example.com/page2
Оба имеют доступ к хранилищу для http://example.com
.
Да, каждый домен / поддомен имеет другой локальная табличка И вы можете вызвать ключи, все, что вы хотите (префикс не требуется).
Чтобы получить ключ, вы можете использовать ключ метода (индекс), такой как
localStorage.key(0);
Был назван объект GlobalStorage. до того, как вы могли бы иметь несколько локальных магазинов, но он устарел от спецификации
Я всегда буду использовать префикс, просто чтобы избежать потенциальных столкновений с помощью пользовательских сценариев - которые могут также использовать LocalStorage.
Как указывали другие, LocalStorage является уникальным в соответствии с протоколом, хоста и порт. Если вы хотите удобный способ контролировать свое хранилище с префиксными ключами, я предлагаю localdatastorage..
Он не только помогает обеспечить сегментированное общее хранение в том же домене с помощью префиксных ключей, он также прозрачно хранит типы данных JavaScript (массив, логический, дату, поплавок, целое число, строку и объект), обеспечивает облегченную защиту данных, автоматически сжимает строки и Уситает запрос по ключу (имя), а также запрос (ключевой) значение.
Отказ от ответственности] Я автор полезности [/ Отказ от ответственности
Примеры:
// instantiate our first storage object
// internally, all keys will use the specified prefix, i.e. passphrase.life
var localData = localDataStorage( 'passphrase.life' );
localData.set( 'key1', 'Belgian' )
localData.set( 'key2', 1200.0047 )
localData.set( 'key3', true )
localData.set( 'key4', { 'RSK' : [1,'3',5,'7',9] } )
localData.set( 'key5', null )
localData.get( 'key1' ) --> 'Belgian'
localData.get( 'key2' ) --> 1200.0047
localData.get( 'key3' ) --> true
localData.get( 'key4' ) --> Object {RSK: Array(5)}
localData.get( 'key5' ) --> null
// instantiate our second storage object
// internally, all keys will use the specified prefix, i.e. prismcipher.com
var localData2 = localDataStorage( 'prismcipher.com' );
localData2.set( 'key1', 123456789 ) // integer
localData2.get( 'key1' ) --> 123456789
Как видите, примитивные значения уважаются, и вы можете создать несколько экземпляров для управления хранилищем.
Он доступен в любом месте этого домена, поскольку Ник предлагал, в качестве альтернативы существует сеанс, работает немного по-разному в том, что он отличается от самого окна браузера. То есть, что другие вкладки или окна на одном домене не имеют доступа к той же копии объекта хранения.