2011-01-08 37 views
1

我已經有了一個web應用程序,並且正在開發iPhone應用程序。我有一個關於在兩者之間緩存/同步數據的基本問題。因此,大概80%的iPhone應用程序或多或少地從web應用程序中讀取(獲取)數據(這對數據很重要,所以它可以讓你訪問你的統計數據等)。我應該在每次加載屏幕時重新加載這些數據嗎?如果是這樣,則不需要同步/緩存,因爲它每次都是「新鮮的」。然而,在大多數情況下,似乎我會將不必要的請求發送回Web服務器,因爲通常數據不會發生變化。使用iphone應用程序同步或緩存來自網絡應用程序的數據

我正在考慮以某種方式在手機上本地緩存這些數據,但我不知道這個「最佳實踐」是什麼。或者,如果我只需要使用Web應用程序中的數據同步iPhone上的sqlite數據庫,並在導航控制器標題欄中提供「刷新」按鈕以手動請求更新。

我不一定在尋找代碼,只是或多或少的把計劃放在一起。

對此提出建議?謝謝!

回答

0

這實際上只取決於您的Web服務器上的數據更新的頻率。如果它很少更新,那麼我會建議在iPhone上緩存數據。但是,如果您的Web服務器上存在一系列活動,並且獲得最新信息對您項目的成功至關重要,那麼您需要發送GET請求。

我不知道iPhone是否可以使用Comet,但如果它支持,這可能是將更新推送到手機的選項。

您也可以讓手機定期檢查服務器是否有更新。如果數據沒有改變,服務器可以返回狀態碼304 Not Modified。這比牽引每個GET請求中的實際數據要少。在這種情況下,如果沒有返回304,則只會提取新數據。

+0

很酷,謝謝。不,數據不會經常改變*,所以我認爲這是緩存的好時機。什麼是「緩存」某些東西的最佳方法?將數據粘貼在sqlite數據庫中,還是有更好的方法? – rpheath 2011-01-08 05:19:06