2011-12-17 28 views
0

我正在構建一個畫布,我將在其中移動多個對象和圖像,並且我希望將它們保存在本地存儲中以便在稍後查看時進行檢索。

我認爲jQuery的$.storage插件將是理想的,但我不知道如何在其中保存多個對象。 jquery api說它的語法是:

$.Storage.set({"name1":"value1", "name2":"value2", etc})` 

但是這隻對一個對象有用。我能夠在參數列表中創建多個對象嗎?或者,也許存儲數組?

+0

哪個'localStorage'插件是它?它是[這一個](http://sites.google.com/site/daveschindler/jquery-html5-storage-plugin)? – 2011-12-17 18:15:16

+0

如果是這樣的話,我會看到:「名稱和值應該是字符串,一些瀏覽器可以接受非字符串值,但不是全部。」所以你真的把一個名字保存爲一個(字符串)值。 – 2011-12-17 18:17:55

回答

0

您可以創建JSON字符串並進行存儲,因此當您檢索數據時,可以將它們解析爲JSON並從中獲取對象。這樣你就可以將關於單個元素的所有信息存儲在一個對象中。

UPDATE

這裏是一個工具,你可以包含到「字符串」 JavaScript對象到JSON(它會在瀏覽器中添加此功能,沒有這個的話):https://github.com/douglascrockford/JSON-js

而且你可以嵌套的對象,如果你想:

var myObj = { 
     level_one : { 
      level_two : { 
       key : 'val' 
      }, 
      level_two_too : { 
       level_three : { 
        key : 'val' 
       } 
      } 
     }, 
     level_one_too : { 
      key : 'val' 
     } 
    }, 
    str = JSON.stringify(myObj); 

str變量現在將舉行一個字符串是這樣的:

{"level_one":{"level_two":{"key":"val"},"level_two_too":{"level_three":{"key":"val"}}},"level_one_too":{"key":"val"}} 

這裏是一個演示:http://jsfiddle.net/ycxcV/

UPDATE

所以你$.storage()函數調用將是這樣的:

$.Storage.set({"element-one":JSON.stringify($('#element-one')), "element-two":JSON.stringify($('#element-two'))}) 

這裏有一個更新的演示,顯示創建JSON字符串並將其解析回對象:http://jsfiddle.net/ycxcV/1/ 這將存儲jQuery對象a與本地存儲中的#element-one#element-two DOM元素相關聯。

+0

@ Jasper - 雖然只有一個對象,對吧?我將如何使用多個對象的JSON字符串? – dopatraman 2011-12-17 18:20:04

+1

@codeninja - 看起來你必須將一個對象傳遞給'.set()'函數,然後該函數對該對象進行操作。 Jasper在說的是,你可能會傳遞一個JSON格式的字符串作爲鍵/值對中的一個值,並且會通過該名稱保存該字符串,然後可以檢索該字符串並將其轉換回原生JS目的。 – 2011-12-17 18:21:56

+0

@ JaredFarrish - 你介意提供一個你的意思嗎?我對JSON並不熟悉,而且我仍然有點迷茫...... – dopatraman 2011-12-17 18:40:47

相關問題