Nat*_*oos 152 javascript html5 local-storage
每页/域是否隔离了HTML5 localStorage对象?我想知道因为我将如何命名localStorage键.我需要一个单独的前缀吗?或者,我可以将它们命名为我想要的吗?
Nic*_*ver 173
它是每个域(与相同的原始策略相同的隔离规则),为了使每个页面你必须使用基于location或其他方法的密钥.
您不需要前缀,但如果需要,请使用前缀.此外,是的,你可以随意命名.
T.J*_*der 19
这些商店是每个来源,其来源与同源政策(模式[ httpvs. https等],端口和主机的组合)相同.从规格:
每个顶级浏览上下文都有一组唯一的会话存储区域,每个区域对应一个源.
因此,存储http://a.example.com和存储http://b.example.com是分开的(并且它们都是分开的http://example.com),因为它们都是不同的主机.同样,http://example.com:80和http://example.com:8080和https://example.com都是不同的起源.
Web存储中没有内置机制允许一个源访问另一个源的存储.
需要注意的是它的起源,而不是URL,所以http://example.com/page1并http://example.com/page2都具有访问存储的http://example.com.
是的,每个域/子域都有不同的localStorage,您可以随意调用密钥(不需要前缀).
要获取密钥,您可以使用方法密钥(索引),例如
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
如您所见,原始值受到尊重,并且您可以创建几个实例来控制您的存储。
我总是使用前缀,只是为了避免与用户脚本的潜在冲突 - 这也可能使用localStorage.
| 归档时间: | 
 | 
| 查看次数: | 56972 次 | 
| 最近记录: |