3.3數(shù)據(jù)同步方案
3.3.1文件的同步
通常圖片都需要在APP端做緩存處理,所以從服務(wù)器端返回圖片鏈接的時(shí)候章鲤,一定要同時(shí)返回圖片最新修改的時(shí)間戳摊灭。APP根據(jù)本地存儲(chǔ)圖片的時(shí)間戳和從服務(wù)器獲取的時(shí)間戳對(duì)比,判斷是否需要更新本地緩存败徊。
對(duì)于其余類(lèi)型的數(shù)據(jù)文件帚呼,可以用時(shí)間戳,也可以用版本號(hào)做為是否更新的依據(jù)皱蹦,而且最好把版本號(hào)或時(shí)間戳保存在數(shù)據(jù)文件里煤杀。
如果用戶使用APP遇到和數(shù)據(jù)文件相關(guān)的問(wèn)題,把數(shù)據(jù)文件從手機(jī)里導(dǎo)到電腦里后沪哺,打開(kāi)文件根據(jù)版本號(hào)或時(shí)間戳沈自,就很容易知道和最新的數(shù)據(jù)文件有什么不同,便于查問(wèn)題辜妓。
3.3.2地址數(shù)據(jù)的同步
因?yàn)橹袊?guó)的行政區(qū)域地址數(shù)據(jù)比較大枯途,做成Json文件有400k多忌怎,壓縮后也有30k多,如果用戶在APP端編輯地址數(shù)據(jù)時(shí)酪夷,每次都從服務(wù)器下載這些數(shù)據(jù)榴啸,會(huì)導(dǎo)致客戶體驗(yàn)不好,有以下兩種解決方案:
A在服務(wù)器端和APP中都內(nèi)置一個(gè)包含地址數(shù)據(jù)的Json文件晚岭,在地址編輯界面會(huì)先獲取服務(wù)器端的地址Json文件版本號(hào)或時(shí)間戳插掂,并和本地Json文件的比較,如果一致腥例,就啟用本地的Json文件辅甥;如果不一致,就從服務(wù)器下載Json文件并覆蓋本地的Json文件燎竖。
畢竟地址數(shù)據(jù)不會(huì)經(jīng)常變更璃弄,這樣就大大減少了從服務(wù)器獲取數(shù)據(jù)的次數(shù),改善用戶體驗(yàn)构回。
B如果APP支持定位功能或在首頁(yè)會(huì)讓用戶選擇當(dāng)前所在的地區(qū)夏块,如自動(dòng)定位到上海,或用戶選擇了上海纤掸,則在地址編輯界面,從服務(wù)器只獲取上海市的二三級(jí)地址數(shù)據(jù)政己,這樣從服務(wù)器獲取的數(shù)據(jù)量就很小了掏愁,而且可以始終獲取到最新數(shù)據(jù)。
C可以根據(jù)用戶當(dāng)前設(shè)備的IP地址沦泌,判斷用戶所在的地區(qū)辛掠,在地址編輯界面,從服務(wù)器只獲取用戶所在地區(qū)的二三級(jí)地址數(shù)據(jù)回挽,這樣從服務(wù)器獲取的數(shù)據(jù)量就很小了欠气,而且可以始終獲取到最新數(shù)據(jù)镜撩。
D因?yàn)橹陛犑卸犹痢⑹『妥灾螀^(qū)這些一級(jí)地址區(qū)域的名稱基本不會(huì)變的憔古,所以可以把這些數(shù)據(jù)內(nèi)置在APP中淋袖,在地址編輯界面,首先讓用戶選擇一級(jí)地址區(qū)域焰情,然后再?gòu)姆?wù)器獲取所選區(qū)域的二三級(jí)地址數(shù)據(jù)剥懒,這樣從服務(wù)器獲取的數(shù)據(jù)量就很小了,而且可以始終獲取到最新數(shù)據(jù)验游。
3.3.3數(shù)據(jù)的同步
數(shù)據(jù)的同步一種是單純用時(shí)間戳判斷是否更新APP本地的數(shù)據(jù)保檐,一種是用時(shí)間戳加上數(shù)據(jù)有效期判斷。
如電商APP和電商網(wǎng)站的購(gòu)物車(chē)和收藏夾數(shù)據(jù)同步(用戶可能會(huì)隨時(shí)改變數(shù)據(jù))垒在,就需要采用時(shí)間戳為判斷依據(jù)爪膊;電商APP從服務(wù)器獲取的商品數(shù)據(jù)有一定的時(shí)效性,為了減少和服務(wù)器的交互推盛,就可以采用第二種方式判斷是否需要從服務(wù)器更新數(shù)據(jù)耘成。