2011-03-02 69 views
0

我有一個架構類型的問題給你。我正在創建一個時間輸入iPhone應用程序。我有一個用於輸入數據的選項卡,另一個用於按星期和按月顯示摘要數據的選項卡。我來自網絡背景,所以我傾向於在每次需要數據時向服務器發回請求。對iphone新手我不確定每次點擊摘要選項卡時(通過viewWillAppear)是否提出彙總數據請求是個好主意。摘要數據是JSON,所以它相當輕量級。摘要數據不是靜態的,因爲它隨用戶輸入數據而變化。那麼,什麼時候應該檢索數據的最佳做法?有沒有更好的方法來知道何時檢索數據?iphone檢索摘要頁面的json數據的最佳實踐

回答

3

我不認爲這是一個好主意。您至少應該緩存數據,以便即使沒有可用的網絡連接,用戶也可以訪問條目。

您可能希望將數據結構鏡像到核心數據模型中,並在適當的時間通過調用服務器來更新它。如果你也在實現服務器端,我會以一種允許服務器僅發送已更改或尚未下載的條目的方式對我的請求建模。

編輯:

爲了解釋這個進一步:即使數據是輕量級的,你不斷產生的流量沒有充分的理由。有些人有數據計劃,衡量流量的時間,而不是數量,他們會真正支付他們使用您的應用程序的每一秒...

+0

更不用說,當你在移動數據連接時,延遲可能是最大的成本,所以返回的數據包很小的事實實際上並沒有多大好處。所以,是的,我同意Toastor至少有一個本地緩存是最好的前進方向。 – Tommy 2011-03-02 14:50:57

+0

感謝您的反饋意見。這給了我很多想法。 – 2011-03-02 15:34:01

+0

想過這個之後,將「摘要」JSON數據結果保存到文件中,然後在數據更改時重寫「摘要」文件是否合適?無論何時提交,我都可以通過異步調用來獲取摘要數據。通過這種方式,如果點擊摘要選項卡,將會載入「摘要」文件的內容(如果它存在),否則將獲取它並創建摘要文件。 – 2011-03-02 19:48:12

0

看看ASIHTTPRequest框架,如果你還沒有。它支持排隊請求(使用NSOperationQueueASINetworkQueue)。您可以排隊一些請求,然後在NSTimer回調中調用[queue go]

以反映網絡何時處於活動狀態(網絡指示符)的方式實現您的用戶界面,並在新的json數據可用時異步更新UI元素。

也嘗試使用緩存作爲烤麪包機建議(閱讀關於ASIDownloadCache等)。