首先,向@Nathan Bubna 致敬他的 store2.js API。
现在,对于 OP 的问题:过滤本地存储内容。我可以建议使用localDataStorage 吗,这是一个方便的实用程序,可让您透明地设置/获取以下任何“类型”:数组、布尔值、日期、浮点数、整数、空值、对象或字符串。它还提供简单的数据加扰、智能字符串压缩、按键查询和值查询,并有助于在同一域中实施共享存储分段。
[免责声明] 我是该实用程序的作者 [/DISCLAIMER]
例子:
localDataStorage.set( 'key1', 'Belgian' );
localDataStorage.set( 'key2', 1200.0047 );
localDataStorage.set( 'key3', true );
localDataStorage.set( 'key4', { 'RSK' : [1,'3',5,'7',9] } );
localDataStorage.set( 'key5', null );
localDataStorage.get( 'key1' ); --> 'Belgian'
localDataStorage.get( 'key2' ); --> 1200.0047
localDataStorage.get( 'key3' ); --> true
localDataStorage.get( 'key4' ); --> Object {RSK: Array(5)}
localDataStorage.get( 'key5' ); --> null
如您所见,原始值受到尊重。现在,在您的情况下,我们可能希望以模糊的形式存储“城市”密钥:
>localDataStorage.safeset( 'City', 'Portland', 'our-secret-key' );
这会混淆存储在本地存储中的数据。它没有完全加密,但它当然也不是明文。在我的机器中,它在存储中看起来像这样:
ڕ³¼П٠ࢭ\B۳ث
现在,当我们检索它时...
>localDataStorage.safeget( 'City', 'our-secret-key' ); -->
... 我们将得到:
>"Portland"
正是我们开始的方式,让 localDataStorage 为我们保护数据。