В HTML5 является объектом LocalStorage, изолированные на странице / домен?

StackOverflow https://stackoverflow.com/questions/4201239

  •  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

Как видите, примитивные значения уважаются, и вы можете создать несколько экземпляров для управления хранилищем.

Он доступен в любом месте этого домена, поскольку Ник предлагал, в качестве альтернативы существует сеанс, работает немного по-разному в том, что он отличается от самого окна браузера. То есть, что другие вкладки или окна на одном домене не имеют доступа к той же копии объекта хранения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top