一種app數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,更具體地,涉及一種APP數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0002]—般情況,APP是通過(guò)基于http/socket通信協(xié)議的API從服務(wù)端獲取/傳輸數(shù)據(jù)并渲染UI。而眾所周知,相同的功能或頁(yè)面模塊用戶端APP可能會(huì)多次展示,與此同時(shí),意味著APP和服務(wù)端之間需要通過(guò)API接口進(jìn)行多次網(wǎng)絡(luò)數(shù)據(jù)的傳輸。而對(duì)用戶來(lái)說(shuō),在一定的時(shí)間范圍內(nèi),若用戶數(shù)據(jù)沒(méi)有發(fā)生任何變化的話,那么也就意味著相同的數(shù)據(jù)會(huì)在APP和服務(wù)端之間通過(guò)網(wǎng)絡(luò)進(jìn)行了多次反反復(fù)復(fù)的傳輸,顯然,η-l次流量是可以節(jié)省下來(lái)的,而此問(wèn)題在昂貴的無(wú)線流量環(huán)境中更加突顯。
[0003]現(xiàn)有APP的工作方式是:服務(wù)端(Server)響應(yīng)客戶端APP請(qǐng)求時(shí)返回Data,每次返回新Data并渲染UI。由于設(shè)計(jì)不合理,在相同的數(shù)據(jù)被調(diào)用η次時(shí),ΑΡΡ這種工作方式則需要重復(fù)傳輸η-l次相同數(shù)據(jù),會(huì)造成流量的浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]為了克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明提出一種新的ΑΡΡ數(shù)據(jù)傳輸方法。這種方法引入了數(shù)據(jù)版本(DV)的概念,采用這種方法在相同數(shù)據(jù)傳輸?shù)倪^(guò)程中能夠有效的避免相同數(shù)據(jù)在網(wǎng)絡(luò)上重復(fù)傳輸。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種ΑΡΡ數(shù)據(jù)傳輸方法,具體為:
服務(wù)端Server響應(yīng)客戶端APP請(qǐng)求時(shí),同時(shí)返回?cái)?shù)據(jù)結(jié)果Datal和數(shù)據(jù)版本號(hào)DV1,客戶端APP把數(shù)據(jù)結(jié)果Datal和數(shù)據(jù)版本號(hào)DV1緩存到本地;
1)當(dāng)客戶端APP第η次發(fā)起請(qǐng)求時(shí),客戶端ΑΡΡ先將數(shù)據(jù)版本號(hào)DV(η_1)和請(qǐng)求參數(shù)傳輸給服務(wù)端Server,服務(wù)端Server在響應(yīng)客戶端APP前,對(duì)請(qǐng)求參數(shù)進(jìn)行解析確定新數(shù)據(jù)結(jié)果Data (η),并基于數(shù)據(jù)結(jié)果Data (η)進(jìn)行計(jì)算并得出數(shù)據(jù)結(jié)果Data (η)的數(shù)據(jù)版本號(hào)DV(n);
2)將數(shù)據(jù)版本號(hào)DV(η)和DV(n-l)進(jìn)行比較;確定DV (η)與DV(n_l)是否相同; 當(dāng)兩者不相同,則直接返回?cái)?shù)據(jù)結(jié)果Data (η)和數(shù)據(jù)版本號(hào)DV(n),且客戶端APP端需把兩者緩存起來(lái),并使用數(shù)據(jù)結(jié)果Data (η)渲染UI ;
當(dāng)兩者相同,則返回?cái)?shù)據(jù)版本號(hào)DV (η-l),客戶端APP根據(jù)返回的數(shù)據(jù)版本號(hào)DV (n_l),獲取本地緩存的數(shù)據(jù)Data (η-l)渲染UI ;
客戶端APP每次交互都反復(fù)按上述步驟1) -2)執(zhí)行。
[0006]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明方法引入了數(shù)據(jù)版本(DV)的概念,解決了在相同數(shù)據(jù)傳輸?shù)倪^(guò)程中能夠有效的避免相同數(shù)據(jù)在網(wǎng)絡(luò)上重復(fù)傳輸?shù)膯?wèn)題,節(jié)省了流量。
【附圖說(shuō)明】
[0007]圖1為本發(fā)明的流程圖。
【具體實(shí)施方式】
[0008]下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的描述,但本發(fā)明的實(shí)施方式并不限于此。
[0009]本發(fā)明針對(duì)現(xiàn)有APP存在的不足,現(xiàn)有的APP每個(gè)界面從服務(wù)端獲取數(shù)據(jù)后渲染UI,而用戶的數(shù)據(jù)在一定的時(shí)間內(nèi)是不變的,但用戶每次進(jìn)入界面時(shí)都要從服務(wù)端獲取最新的數(shù)據(jù),假設(shè)(事實(shí)上)用戶在這段時(shí)間內(nèi)多次刷新界面獲取到相同的返回?cái)?shù)據(jù)的話,那么看起里η-l次返回相同數(shù)據(jù)都是多余了。為了解決這個(gè)問(wèn)題,本發(fā)明提出的一種APP數(shù)據(jù)傳輸方法,包括以下步驟:
服務(wù)端Server響應(yīng)客戶端APP請(qǐng)求時(shí),同時(shí)返回?cái)?shù)據(jù)結(jié)果Datal和數(shù)據(jù)版本號(hào)DV1,客戶端APP把數(shù)據(jù)結(jié)果Datal和數(shù)據(jù)版本號(hào)DV1緩存到本地;
1)當(dāng)客戶端APP第η次發(fā)起請(qǐng)求時(shí),客戶端ΑΡΡ先將數(shù)據(jù)版本號(hào)DV(η_1)和請(qǐng)求參數(shù)傳輸給服務(wù)端Server,服務(wù)端Server在響應(yīng)客戶端APP前,對(duì)請(qǐng)求參數(shù)進(jìn)行解析確定新數(shù)據(jù)結(jié)果Data (η),并基于數(shù)據(jù)結(jié)果Data (η)進(jìn)行計(jì)算并得出數(shù)據(jù)結(jié)果Data (η)的數(shù)據(jù)版本號(hào)DV(n);
2)將數(shù)據(jù)版本號(hào)DV(η)和DV(n-l)進(jìn)行比較;確定DV (η)與DV(n_l)是否相同; 當(dāng)兩者不相同,則直接返回?cái)?shù)據(jù)結(jié)果Data (η)和數(shù)據(jù)版本號(hào)DV(n),且客戶端APP端需把兩者緩存起來(lái),并使用數(shù)據(jù)結(jié)果Data (η)渲染UI ;
當(dāng)兩者相同,則返回?cái)?shù)據(jù)版本號(hào)DV (η-l),客戶端APP根據(jù)返回的數(shù)據(jù)版本號(hào)DV (n_l),獲取本地緩存的數(shù)據(jù)Data (η-l)渲染UI ;
客戶端APP每次交互都反復(fù)按上述步驟1) -2)執(zhí)行。
[0010]本發(fā)明方法引入了數(shù)據(jù)版本(DV),并將數(shù)據(jù)版本緩存在本地,解決了在相同數(shù)據(jù)傳輸?shù)倪^(guò)程中能夠有效的避免相同數(shù)據(jù)在網(wǎng)絡(luò)上重復(fù)傳輸?shù)膯?wèn)題,節(jié)省了流量。
[0011]以上所述的本發(fā)明的實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神原則之內(nèi)所作出的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種APP數(shù)據(jù)傳輸方法,其特征在于, 服務(wù)端Server響應(yīng)客戶端APP請(qǐng)求時(shí),同時(shí)返回?cái)?shù)據(jù)結(jié)果Datal和數(shù)據(jù)版本號(hào)DV1,客戶端APP把數(shù)據(jù)結(jié)果Datal和數(shù)據(jù)版本號(hào)DVl緩存到本地; 1)當(dāng)客戶端APP第η次發(fā)起請(qǐng)求時(shí),客戶端APP先將數(shù)據(jù)版本號(hào)DV(η_1)和請(qǐng)求參數(shù)傳輸給服務(wù)端Server,服務(wù)端Server在響應(yīng)客戶端APP前,對(duì)請(qǐng)求參數(shù)進(jìn)行解析確定新數(shù)據(jù)結(jié)果Data (η),并基于數(shù)據(jù)結(jié)果Data (η)進(jìn)行計(jì)算并得出數(shù)據(jù)結(jié)果Data (η)的數(shù)據(jù)版本號(hào)DV (η); 2)將數(shù)據(jù)版本號(hào)DV(η)和DV(n-l)進(jìn)行比較;確定DV(η)與DV(n_l)是否相同; 當(dāng)兩者不相同,則直接返回?cái)?shù)據(jù)結(jié)果Data (η)和數(shù)據(jù)版本號(hào)DV (η),且客戶端APP端需把兩者緩存起來(lái),并使用數(shù)據(jù)結(jié)果Data (η)渲染UI ; 當(dāng)兩者相同,則返回?cái)?shù)據(jù)版本號(hào)DV (η-l),客戶端APP根據(jù)返回的數(shù)據(jù)版本號(hào)DV (η_1),獲取本地緩存的數(shù)據(jù)Data (η-l)渲染UI ; 客戶端APP每次交互都反復(fù)按上述步驟I) -2)執(zhí)行。
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種APP數(shù)據(jù)傳輸方法,服務(wù)端響應(yīng)客戶端APP請(qǐng)求時(shí),同時(shí)返回Data1和DV1,APP把數(shù)據(jù)結(jié)果Data1和數(shù)據(jù)版本號(hào)DV1緩存到本地;當(dāng)APP第n次發(fā)起請(qǐng)求時(shí),APP將DV(n-1)和請(qǐng)求參數(shù)傳輸給服務(wù)端,服務(wù)端在響應(yīng)APP前,對(duì)請(qǐng)求參數(shù)進(jìn)行解析確定新數(shù)據(jù)結(jié)果Data(n),并基于Data(n)進(jìn)行計(jì)算并得出DV(n);將數(shù)據(jù)版本號(hào)DV(n)和DV(n-1)進(jìn)行比較;確定DV(n)與DV(n-1)是否相同;當(dāng)兩者不相同,則直接返回Data(n)和DV(n),且APP端需把兩者緩存起來(lái),使用數(shù)據(jù)結(jié)果Data(n)渲染UI;當(dāng)兩者相同,則返回DV(n-1),APP根據(jù)返回的DV(n-1),獲取本地緩存的數(shù)據(jù)Data(n-1)渲染UI;客戶端APP每次交互都反復(fù)按上述步驟1)-2)執(zhí)行。該方法引入了數(shù)據(jù)版本,采用這種方法在相同數(shù)據(jù)傳輸?shù)倪^(guò)程中能夠有效的避免相同數(shù)據(jù)在網(wǎng)絡(luò)上重復(fù)傳輸。
【IPC分類(lèi)】H04L29/08
【公開(kāi)號(hào)】CN105282237
【申請(qǐng)?zhí)枴緾N201510588378
【發(fā)明人】覃俊儒, 鄧啟業(yè)
【申請(qǐng)人】廣州亞美信息科技有限公司
【公開(kāi)日】2016年1月27日
【申請(qǐng)日】2015年9月16日