HTML5 localStorage对象是按页面/域隔离的吗?我想知道我如何命名localStorage密钥。我需要单独的前缀吗?或者我可以给它们起任何我想要的名字?
发布于 2017-07-18 01:39:43
正如其他人指出的那样,localStorage对于每个协议、主机和端口都是唯一的。如果你想要一种方便的方式来控制你的前缀键存储,我建议使用localDataStorage。
它不仅通过为键添加前缀来帮助在同一域中执行分段共享存储,它还透明地存储javascript数据类型(数组、布尔值、日期、浮点数、整数、字符串和对象),提供轻量级数据混淆,自动压缩字符串,并促进按键(名称)查询以及按(键)值查询。
免责声明我是实用程序/DISCLAIMER的作者
示例:
// 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
正如您所看到的,原始值是受尊重的,您可以创建多个实例来控制存储。
发布于 2011-10-14 12:05:56
正如尼克所说,它在域中的任何地方都可用,作为替代方案,sessionStorage的工作方式略有不同,因为它与浏览器窗口本身截然不同。也就是说,相同域上其它选项卡或窗口不能访问存储对象的相同副本。
https://stackoverflow.com/questions/4201239
复制相似问题