亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種更新數(shù)據(jù)的方法及裝置的制造方法_4

文檔序號:9670854閱讀:來源:國知局
新數(shù)據(jù)的通知信息包括更新后的所述數(shù)據(jù)的新位置序號、更新前的所述數(shù)據(jù)的舊位置序號和新數(shù)據(jù)值;
[0181]第三處理單元703,用于若所述第一位置序號大于所述第二位置序號集合中所有的位置序號,則返回執(zhí)行所述第二獲取模塊;
[0182]第四處理單元704,用于若所述第二位置序號集合中最大位置序號大于所述預先存儲的有序數(shù)據(jù)集合的最大位置序號,則結(jié)束更新數(shù)據(jù)的流程。
[0183]具體的,從訂閱列表中取客戶端2可見數(shù)據(jù)偏移f,其值為2 ;
[0184]S6:判定p< = f為是,執(zhí)行S7 ;
[0185]S7:組裝更新協(xié)議{id,xx},{avatar,photol},{nick,Lisa}下發(fā)給客戶端 2,繼續(xù)S8 ;
[0186]S8:從訂閱列表中取客戶端3可見數(shù)據(jù)偏移f,其值為1
[0187]S9:判定p〈 = f為否,不需要發(fā)送更新通知給客戶端3 ;
[0188]S10:結(jié)束本次更新。
[0189]若以上步驟中涉及到有序集合位置變化,需要做特殊處理,
[0190]S21:獲取d[x]數(shù)據(jù)在有序集合中的新舊位置{rank,oldpos,newpos}
[0191]S22:從訂閱列表中取客戶端可見數(shù)據(jù)偏移f,執(zhí)行判定oldpos〈 = f或newpos〈=f,若是轉(zhuǎn)到S29,若否,繼續(xù)S23 ;
[0192]S23:服務(wù)器組裝數(shù)據(jù)更新協(xié)議數(shù)據(jù)下發(fā)給客戶端;
[0193]S24:客戶端接收協(xié)議,解析出{rank,oldpos,newpos},執(zhí)行判定oldpos>f&&newpos< = f,若是,轉(zhuǎn)到 S25 ;若否,轉(zhuǎn)到 S26 ;
[0194]S25:刪除本地第newpos項數(shù)據(jù)單元,并向所述服務(wù)器請求更新后的所述newpos項數(shù)據(jù)單元對應(yīng)的數(shù)據(jù);
[0195]S26:執(zhí)行判定 oldpos〈 = f&&newpos>f,若是,繼續(xù) S27 ;若否,轉(zhuǎn)到 S28 ;
[0196]S27:刪除第oldpos項數(shù)據(jù)單元,并向所述服務(wù)器請求更新后的所述oldpos項數(shù)據(jù)單元對應(yīng)的數(shù)據(jù);
[0197]S28:客戶端更新本地數(shù)據(jù)顯示;
[0198]S29:客戶端數(shù)據(jù)更新結(jié)束。
[0199]本發(fā)明實施例通過在預先設(shè)置的時間內(nèi)檢測預先存儲的數(shù)據(jù)是否有更新;若是,則獲取更新的數(shù)據(jù)信息,所述更新的數(shù)據(jù)信息包括更新的數(shù)據(jù)在預先存儲的有序數(shù)據(jù)集合中的第一位置序號、新數(shù)據(jù)值和更新的數(shù)據(jù)的屬性;獲取訂閱列表中存儲的客戶端中顯示的所有數(shù)據(jù)的第二位置序號集合,所述第二位置序號集合用于標識所述客戶端顯示的所有數(shù)據(jù)在所述有序數(shù)據(jù)集合中的位置序號;比較所述第一位置序號和所述第二位置序號集合中所有的位置序號,根據(jù)比較的結(jié)果更新數(shù)據(jù),實現(xiàn)客戶端同類多項數(shù)據(jù)的實時更新,同時大大降低了客戶端的請求次數(shù)和服務(wù)器的負擔,提升了用戶體驗。
[0200]實施例六
[0201]參考圖8,圖8是本發(fā)明實施例更新數(shù)據(jù)的裝置的功能模塊示意圖。所述裝置還包括:
[0202]接收模塊605,用于接收客戶端發(fā)送的訂閱數(shù)據(jù)的請求,并將所述客戶端加入所述訂閱列表,所述請求包括所述客戶端請求所述有序數(shù)據(jù)集合中的預先設(shè)置范圍內(nèi)的數(shù)據(jù);
[0203]發(fā)送模塊606,用于向所述客戶端發(fā)送與所述請求對應(yīng)的數(shù)據(jù)。
[0204]具體的,客戶端本地沒有數(shù)據(jù),需要向服務(wù)器請求初始數(shù)據(jù),處理過程如下:顯示的最終效果圖如圖3所示,客戶端3向服務(wù)器請求相應(yīng)的數(shù)據(jù)后并顯示在本地。
[0205]S31:客戶端請求訂閱數(shù)據(jù);
[0206]S32:服務(wù)器將客戶端數(shù)據(jù)加入訂閱列表,設(shè)置可見數(shù)據(jù)范圍值為0 ;
[0207]S33:客戶端請求di?dj范圍內(nèi)的數(shù)據(jù);
[0208]S34:服務(wù)器更新可見數(shù)據(jù)范圍值j ;
[0209]S35:服務(wù)器下發(fā)di?dj范圍內(nèi)完整的數(shù)據(jù)給客戶端;
[0210]S36:客戶端顯示d0?dj范圍內(nèi)的數(shù)據(jù)(本處可重復S33?S36步驟,以獲取更多的可見數(shù)據(jù));
[0211]S37:進入更新維護階段。
[0212]優(yōu)選地,S41:客戶端請求取消訂閱數(shù)據(jù);
[0213]S42:服務(wù)器從訂閱列表中移除該客戶端的訂閱數(shù)據(jù)。
[0214]實施例七
[0215]參考圖9,圖9是本發(fā)明實施例更新數(shù)據(jù)的裝置的功能模塊示意圖。
[0216]在實施例七中,所述更新數(shù)據(jù)的裝置包括:
[0217]第一接收模塊901,用于接收服務(wù)器發(fā)送的更新數(shù)據(jù)的通知信息,所述更新數(shù)據(jù)的通知信息包括更新后的所述數(shù)據(jù)的新位置序號、更新前的所述數(shù)據(jù)的舊位置序號和新數(shù)據(jù)值;
[0218]具體的,服務(wù)器端始終保持整個數(shù)據(jù)是有序的。單項數(shù)據(jù)為一個更新單元,每個更新單元都有一個唯一的ID進行標識。每個數(shù)據(jù)單元可包含多個數(shù)據(jù),每個數(shù)據(jù)定義不同的類型加以區(qū)分,其中數(shù)據(jù)單元所在的位置變化采用{rank,新值,舊值}格式,其余數(shù)據(jù)的變化采用{類型,新值}的格式。
[0219]服務(wù)器上的數(shù)據(jù)有變化時,服務(wù)器都會發(fā)送一條通知給訂閱了的所有客戶端,每條通知只包含一個更新單元數(shù)據(jù),同一更新單元數(shù)據(jù)有多個類型數(shù)據(jù)有變化時,可合并到一條更新通知中。
[0220]服務(wù)器檢測到有數(shù)據(jù)更新并計算數(shù)據(jù)所在有序集合中的位置p。
[0221]服務(wù)器進一步獲取數(shù)據(jù)變化類別及對應(yīng)的新值{typel,valuel},{type2,value2}。
[0222]第一更新模塊902,用于若所述舊位置序號大于第二位置序號集合中所有的位置序號且所述新位置序號小于等于所述第二位置序號集合中所有的位置序號,則本地刪除所述第二位置序號對應(yīng)的數(shù)據(jù),并向所述服務(wù)器請求更新后的所述新位置序號對應(yīng)的數(shù)據(jù);
[0223]第二更新模塊903,用于若所述舊位置序號小于等于所述第二位置序號集合中所有的位置序號且所述新位置序號大于所述第二位置序號集合中所有的位置序號,則本地刪除所述舊位置序號對應(yīng)的數(shù)據(jù),并向所述服務(wù)器請求更新后的所述第二位置序號對應(yīng)的數(shù)據(jù);
[0224]第三更新模塊904,用于若所述舊位置序號小于等于所述第二位置序號集合中所有的位置序號且所述新位置序號小于等于所述第二位置序號集合中所有的位置序號,則本地調(diào)整所述數(shù)據(jù)的新位置,并更新其他字段的數(shù)據(jù)。
[0225]具體的,假設(shè)服務(wù)器端有一個5項數(shù)據(jù)的列表,保存的信息依次為用戶id、昵稱、頭像在線時長,按用戶在線時長降序排列,其中第2條數(shù)據(jù)的頭像修改為photo2,昵稱修改為Lisa,執(zhí)行步驟如下:
[0226]S1:獲取更新數(shù)據(jù)所在有序列表中的位置p,其值為2 ;
[0227]S2:獲取數(shù)據(jù)變化類別及對應(yīng)的新值{avatar,photol},{nick, Lisa};
[0228]S3:從訂閱列表中取客戶端1可見數(shù)據(jù)所有的數(shù)據(jù)序號中最大數(shù)據(jù)序號為f = 3 ;
[0229]S4:判定p〈 = f為是,執(zhí)行S5
[0230]S5:組裝更新協(xié)議{id,1009},{avatar,photol},{nick, Lisa}下發(fā)給客戶端 1。
[0231]從訂閱列表中取客戶端2可見數(shù)據(jù)偏移f,其值為2 ;
[0232]S6:判定p< = f為是,執(zhí)行S7 ;
[0233]S7:組裝更新協(xié)議{id,1009},{avatar, photol}, {nick,Lisa}下發(fā)給客戶端 2,繼續(xù)S8 ;
[0234]S8:從訂閱列表中取客戶端3可見數(shù)據(jù)偏移f,其值為1
[0235]S9:判定p〈 = f為否,不需要發(fā)送更新通知給客戶端3 ;
[0236]S10:結(jié)束本次更新。
[0237]若以上步驟中涉及到有序集合位置變化,需要做特殊處理,
[0238]S21:獲取d[x]數(shù)據(jù)在有序集合中的新舊位置{rank,oldpos,newpos}
[0239]S22:從訂閱列表中取客戶端可見數(shù)據(jù)偏移f,執(zhí)行判定oldpos〈 = f或newpos〈=f,若是轉(zhuǎn)到S29,若否,繼續(xù)S23 ;
[0240]S23:服務(wù)器組裝數(shù)據(jù)更新協(xié)議數(shù)據(jù)下發(fā)給客戶端;
[0241]S24:客戶端接收協(xié)議,解析出{rank,oldpos,newpos},執(zhí)行判定oldpos>f&&newpos< = f,若是,轉(zhuǎn)到 S25 ;若否,轉(zhuǎn)到 S26 ;
[0242]S25:刪除本地第newpos項數(shù)據(jù)單元,并向所述服務(wù)器請求更新后的所述newpos項數(shù)據(jù)單元對應(yīng)的數(shù)據(jù);
[0243]S26:執(zhí)行判定 oldpos〈 = f&&newpos>f,若是,繼續(xù) S27 ;若否,轉(zhuǎn)到 S28 ;
[0244]S27:刪除第oldpos項數(shù)據(jù)單元,并向所述服務(wù)器請求更新后的所述oldpos項數(shù)據(jù)單元對應(yīng)的數(shù)據(jù);
[0245]
當前第4頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1