2012-09-23 81 views
0

我正在尋找一種方法來緩存儘可能多的數據在我的應用程序。大部分這些數據都是對以下步驟至關重要的項目,如朋友列表。根據所選擇的朋友,我會顯示一個列表中的某些項目,並可以發送一些東西給這位朋友。緩存的朋友/物品列表

我想緩存好友列表。以這種方式,不可能將某些東西發送給不存在的朋友,這顯然會導致錯誤。或者,也許緩存可以工作,以便它顯示一個「無效的緩存的朋友」的消息,並刷新後... ...?

朋友列表不會變化很頻繁,但用戶使用該應用程序時仍然可以更改。

我也想緩存可以發送給用戶的項目。這些也不會非常頻繁地改變,但是用戶不發送不存在的項目是非常重要的,並且當他們看到最新的項目時(如果它們在服務器側更新的話)當然是可取的。例如,像緩存可以被購買的物品一樣,這個原理也是如此。用戶不要嘗試使用無效項目完成交易至關重要。

我已經做了一些研究,但只能拿出一個粗略的想法至今:

比較使用散列或時間戳數據:在這種情況下,我不知道在這一點做呢?加載屏幕可能沒有任何意義,因爲用戶不得不等待服務器的響應。也許是後臺進程?但是我多久運行一次?我如何同步?

此外,我可以添加一個更新菜單項,以便用戶可以確保數據更新。但它仍然不能解決用戶可以嘗試使用無效數據完成交易的問題(如果他們不按下按鈕)。

我還發現了一些關於「實時數據」和AVI的信息,但我認爲這不適用於我的情況,我的數據很少會改變,但它要求它是有效的,因爲它不僅是信息數據,它是交易確定數據。

處理這個問題的方法是什麼?

回答

0

我認爲你是對的,你應該檢查數據源(服務器)的時間戳。

如果這是朋友之間的點對點交換,就在發送數據之前,從服務器請求其時間戳。沒有那麼多的數據,通常接近實時。但發送過時數據的可能性仍然很小 - 更新後只有「一納秒」。

如果它是通過服務器(爲什麼不呢?),作爲獎勵,您將通過檢查服務器上的時間戳並取消交易(如果發送的數據已過時)來進行樂觀鎖定。