2012-05-17 260 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