APP開發(fā)怎樣解決非地址數(shù)據(jù)的同步,深圳APP開發(fā)公司歸納整理了如下三個解決步驟以及方法。
(1)用數(shù)據(jù)變更的時間戳判斷是否更新APP本地的數(shù)據(jù)。
例如,電商APP與電商網(wǎng)站之間的購物車和收藏夾等數(shù)據(jù)的同步(用戶可能會隨時改變數(shù)據(jù)),就可以采用時間戳作為判斷依據(jù),具體方案如下所述。用戶通過APP或?yàn)g覽器修改購物車數(shù)據(jù)時,都要保存修改的時間點(diǎn),且把時間點(diǎn)上傳到服務(wù)器。用戶通過APP或?yàn)g覽器發(fā)起更新購物車數(shù)據(jù)的請求時,把本地保存的上次修改的時間點(diǎn)發(fā)給服務(wù)器,服務(wù)器把這個時間點(diǎn)和之前保存的時間點(diǎn)進(jìn)行比較。如果服務(wù)器端的時間點(diǎn)比較新,就把服務(wù)器的購物車數(shù)據(jù)返回給APP或?yàn)g覽器;否則不返回購物車數(shù)據(jù)。
(2)用數(shù)據(jù)失效的時間戳判斷是否更新APP本地的數(shù)據(jù),就是用數(shù)據(jù)變更的時間戳加上數(shù)據(jù)有效期來進(jìn)行判斷。
電商APP從服務(wù)器獲取的商品數(shù)據(jù)有一定的時效性,為了減少和服務(wù)器的交互,就可以采用此方式判斷是否需要從服務(wù)器更新數(shù)據(jù)。例如,服務(wù)器向APP返回商品詳情數(shù)據(jù)時,除了商品屬性外,還要加上數(shù)據(jù)失效的時間戳,如下所示:
{
"product":{"
expiry_time":1625065977
"name":"鉛筆"
"price":1.00
"image_url":"http://www.test.com/image/test.jpg"
}
}
APP每次進(jìn)入商品詳情界面時,通過比較當(dāng)前時間和本地存儲的數(shù)據(jù)失效時間戳,來判斷是從服務(wù)器獲取數(shù)據(jù),還是用本地緩存的數(shù)據(jù)。以上兩種方式都需要保證APP和服務(wù)器的時間同步。
(3)用PUSH機(jī)制推送實(shí)現(xiàn)。
電商APP的首頁通常有視頻或圖片廣告,這些廣告的數(shù)據(jù)量都比較大,如每次進(jìn)入首頁都要從服務(wù)器獲取,比較浪費(fèi)流量。每次服務(wù)器端變更了數(shù)據(jù),APP端又需要及時更新,這時就可以用PUSH機(jī)制推送,即服務(wù)器端變更數(shù)據(jù)時發(fā)送PUSH消息給APP,APP就從服務(wù)器獲取數(shù)據(jù)。若APP沒有收到PUSH消息,則使用本地存儲的數(shù)據(jù)。
有些數(shù)據(jù),像用戶賬號,通常在服務(wù)器端和APP端都會保存。如果在APP端修改這樣的數(shù)據(jù),最好是先向服務(wù)器發(fā)送修改請求,等接收到服務(wù)器成功修改數(shù)據(jù)的消息后,再修改本地存儲的數(shù)據(jù);如果服務(wù)器修改數(shù)據(jù)失敗,就不修改本地存儲的數(shù)據(jù),這樣可以避免APP端修改了,服務(wù)器端沒有修改的情況發(fā)生,保持兩者的數(shù)據(jù)同步。好了,APP開發(fā)公司本文關(guān)于“APP開發(fā)怎樣解決非地址數(shù)據(jù)的同步”的實(shí)操經(jīng)驗(yàn)分享就到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。