我有一些查詢。首先讓我們來看一個正常應用程序所具有的iPhone應用程序流程。 (基於內容的應用程序)iPhone數據庫和服務器數據庫 - iPhone只更新修改
- 應用推出&檢查網絡可用性
- 如果網絡可用 - iPhone使用Web服務或API
- 我們可以存儲這些響應(Web服務響應/ API將數據下載響應)到* .plist文件中。
當我們需要更新數據時,再次將web服務名爲&再次將整個數據存儲爲* .plist文件。
現在,假設 - 我在服務器上有一張表'電子書'&它有超過500個條目。
- 調用API/Web服務將給出500條記錄的響應。
- 確定 - 第一次可以等待所有響應(我們可能會使用LIBXML2作爲塊)
- 但是如果我們經常使用web服務下載此文件會怎麼樣。
這裏有兩個缺點
- 無線上網的不必要使用
- iPhone的CPU開銷
- 服務器的CPU開銷。
你正在接近我嗎?
假設服務器上沒有改變爲什麼iPhone需要再次調用API。意思是沒有變化的條目&條目是500,因爲它是那麼爲什麼要再次下載它?
讓我再次澄清 - 問題。
假設
- 的應用程序有一個服務器+數據庫=客戶(目前爲500個記錄)
- 有5個iPhone以檢索該數據
- 所有iPhone下載500個記錄離線
- 現在,服務器已添加新紀錄501
- iPhone必須只下載1條記錄,而不是501條。
這怎麼可能?
@克勞斯布洛克 - 想法很好 - 你能給我一些簡要的介紹嗎? – 2010-05-04 09:45:24
@Claus Broch - 因此,iPhone在調用Web服務時會給出時間戳,服務器和服務器將檢查每個數據庫記錄的時間戳記。 serverTimeStamp == iPhoneTimeStamp - 用於每條記錄。假設有500個iPhone應用程序用戶。服務器會發生什麼? – 2010-05-04 09:47:09
我假設你在某種數據庫中存儲數據,所以它只是構造一個執行過濾的SQL語句(例如類似於「SELECT * from table mydata WHERE timestamp> = querystamp」)的事情。可能服務器會比每次提供完整內容的過濾更少。然而,這只是一個粗略的猜測,你的里程可能會有所不同。 – 2010-05-04 11:04:47