2011-08-02 54 views
9

首先,我想提一提我是一個在技術領域沒有多少經驗的實習生,所以如果我的問題的答案似乎很明顯,我很抱歉。我試圖找到幾天的答案,現在幾乎沒有顯示。使用HTML5緩存JSON對象

我的項目一直在開發手機號碼簿。我現在想做的是有一個經常搜索的框,顯示用戶開始使用該應用程序後搜索到的前十名。我刨做一個JSON對象包含以下信息,然後客戶端緩存結果:

var myJSONObject = {"searched": [  {"firstname":firstName,"lastname":lastName,"PK":pk,"phone":phonenumber,"email":emailaddress,"bu":businessunit,"company":company,"building":building, "fax":fax, "timesvisited":"accumulator to keep track of visits to the name"} 

] };

我現在頭痛是想弄清楚如何緩存JSON對象。我創建了一個清單文件,並且我知道如何緩存某些文件(如css文件),但是如何緩存某些內容(如上面列出的代碼),以便數據存儲並可以在第二次訪問頁面之前?

+0

有沒有這樣的東西啊,算了吧':)' –

+0

哈哈..就像我說的,我非常喜歡這個......但是你的權利。可能是一件好事,讓它離開;)。 –

回答

10

您可以使用Firefox 3.5,IE 8和Chrome 4以上版本支持的本地存儲。要緩存保存到本地存儲:

localStorage['jsoncache'] = JSON.stringify(myJSONObject); 

找回它:

myJSONObject = JSON.parse(localStorage['jsoncache']); 

注意如何只能存儲字符串,而不是任何類型的對象,在本地存儲。如果您願意,您可以將jsoncache鍵更改爲其他物品。

+0

非常感謝! :d。 –

+1

在這種情況下,jsoncache會成爲同一個目錄下的一個.txt文件嗎? –

+0

沒有問題! –

4

我並不完全如何創建,維護和檢索對象,但如果通過Ajax加載它,則可以使用HTTP緩存。

如果你想存儲它只能在本地,那麼你可以使用localStorage(僅適用於新的瀏覽器支持):

// Serialize and store 
localeStorage['topten'] = JSON.stringify(myJSONObject) 

// Retrieve and deserialize 
var myJSONObject = JSON.parse(localeStorage['topten']) 
+1

謝謝:)。你的答案和上面的答案爲我澄清了這一點。 –