2012-05-17 71 views
2

我想知道是否可以通过任何机会在localStorage上存储多个密钥?例如:本地存储多个密钥存储

localStorage.setItem("a_key", a_value); 
localStorage.setItem("another_key", another_value); 

是否可以这样做呢?如果不是,我建议我做一个解决方法,因为我需要在客户端存储两个密钥或变量?

+0

是的,你可以做到这一点。但为什么不试一试呢?只需使用您的浏览器的调试控制台。 – ubik

+1

@PedroFerreira我试过一次,但它没有工作,也许我必须有一个错误:) – Roland

回答

3

是的。您可以将多个键/值对存储在本地存储(和会话存储)中。从web storage spec(强调):

每个存储对象提供对键/值对, ,其有时被称为项目的列表。键是字符串。任何字符串 (包括空字符串)都是有效的密钥。值同样是 字符串。

...

长度属性必须返回数字键/值对 目前存在于与所述对象相关联的列表的。

+0

一个问题,但如果我会使用这个polyfill:https://gist.github.com/2597130,我会能够存储一个abject并检索它相同?因为我试图和当我得到的对象倒锥形的两个对象的数组... – Roland

+0

@Roland - 这polyfill应该工作正常。 getItem方法应该返回与提供的键相关的值。我倾向于使用的polyfill是[this one](http://code.google.com/p/sessionstorage/),但它们的行为方式应该是相同的。请注意,没有用于Web存储的polyfill是完美的,但是它们不会触发本地API所执行的存储事件。如果你依赖这些,你将只能真正支持现代浏览器。 –

+0

我知道只有现代浏览器支持本地存储,但如果存储不可用,那么polyfill会回退到cookie。那么,我知道它应该表现得一样,但是在获取数据时我仍然会得到其他的东西。我存储的是:var data = {current_page:2,total_pages:4}',我得到的是:[object object],为什么会这样呢? – Roland