一種更新數(shù)據(jù)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例涉及數(shù)據(jù)處理的技術(shù)領(lǐng)域,尤其涉及一種更新數(shù)據(jù)的方法及裝置。
【背景技術(shù)】
[0002]基于C/S模式的應(yīng)用軟件由于有較好的使用體驗,占領(lǐng)了很大的市場份額,備受用戶和開發(fā)者歡迎。其特點是需要一個客戶端和一個服務(wù)器,客戶端從服務(wù)器上取數(shù)據(jù)并在本地顯示,服務(wù)器則負(fù)責(zé)數(shù)據(jù)的存儲和維護。其中數(shù)據(jù)的獲取與更新是C/S應(yīng)用軟件的一個關(guān)鍵環(huán)節(jié),目前普遍采用的方式是手工或定時刷新,每次刷新都請求一遍完整的數(shù)據(jù),造成了數(shù)據(jù)請求冗余,加重了服務(wù)器的負(fù)擔(dān)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例的目的在于提出一種更新數(shù)據(jù)的方法及裝置,旨在解決如何減少服務(wù)器與客戶端之間的數(shù)據(jù)傳輸頻次的問題。
[0004]為達此目的,本發(fā)明實施例采用以下技術(shù)方案:
[0005]第一方面,一種更新數(shù)據(jù)的方法,所述方法包括:
[0006]在預(yù)先設(shè)置的時間內(nèi)檢測預(yù)先存儲的數(shù)據(jù)是否有更新;
[0007]若是,則獲取更新的數(shù)據(jù)信息,所述更新的數(shù)據(jù)信息包括更新的數(shù)據(jù)在預(yù)先存儲的有序數(shù)據(jù)集合中的第一位置序號、新數(shù)據(jù)值和更新的數(shù)據(jù)的屬性;
[0008]獲取訂閱列表中存儲的客戶端中顯示的所有數(shù)據(jù)的第二位置序號集合,所述第二位置序號集合用于標(biāo)識所述客戶端顯示的所有數(shù)據(jù)在所述有序數(shù)據(jù)集合中的位置序號;
[0009]比較所述第一位置序號和所述第二位置序號集合中所有的位置序號,根據(jù)比較的結(jié)果更新數(shù)據(jù)。
[0010]優(yōu)選地,所述比較所述第一位置序號和所述第二位置序號集合中所有的位置序號,根據(jù)比較的結(jié)果更新數(shù)據(jù),包括:
[0011]若所述第一位置序號小于等于所述第二位置序號集合中所有的位置序號,則進一步判斷所述更新后的所述數(shù)據(jù)的新位置序號以及更新前的所述數(shù)據(jù)的舊位置序號,若所述新位置序號和所述舊位置序號均大于等于所述第二位置序號集合中所有的位置序號,則結(jié)束更新數(shù)據(jù)的流程;
[0012]若所述更新后的所述數(shù)據(jù)的新位置序號以及更新前的所述數(shù)據(jù)的舊位置序號中有至少有一個小于所述第二位置序號集合中所有的位置序號,則向所述客戶端發(fā)送更新數(shù)據(jù)的通知信息,所述更新數(shù)據(jù)的通知信息包括更新后的所述數(shù)據(jù)的新位置序號、更新前的所述數(shù)據(jù)的舊位置序號和新數(shù)據(jù)值;
[0013]若所述第一位置序號大于所述第二位置序號集合中所有的位置序號,則返回執(zhí)行獲取訂閱列表中存儲的客戶端中顯示的所有數(shù)據(jù)的第二位置序號集合的步驟;
[0014]若所述第二位置序號集合中最大位置序號大于所述預(yù)先存儲的有序數(shù)據(jù)集合的最大位置序號,則結(jié)束更新數(shù)據(jù)的流程。
[0015]優(yōu)選地,所述方法還包括:
[0016]接收客戶端發(fā)送的訂閱數(shù)據(jù)的請求,并將所述客戶端加入所述訂閱列表,所述請求包括所述客戶端請求所述有序數(shù)據(jù)集合中的預(yù)先設(shè)置范圍內(nèi)的數(shù)據(jù);
[0017]向所述客戶端發(fā)送與所述請求對應(yīng)的數(shù)據(jù)。
[0018]第二方面,一種更新數(shù)據(jù)的方法,所述方法包括:
[0019]接收服務(wù)器發(fā)送的更新數(shù)據(jù)的通知信息,所述更新數(shù)據(jù)的通知信息包括更新后的所述數(shù)據(jù)的新位置序號、更新前的所述數(shù)據(jù)的舊位置序號和新數(shù)據(jù)值;
[0020]若所述舊位置序號大于第二位置序號集合中所有的位置序號且所述新位置序號小于等于所述第二位置序號集合中所有的位置序號,則本地刪除所述第二位置序號對應(yīng)的數(shù)據(jù),并添加所述更新數(shù)據(jù)到本地數(shù)據(jù)所述新位置;
[0021]若所述舊位置序號小于等于所述第二位置序號集合中所有的位置序號且所述新位置序號大于所述第二位置序號集合中所有的位置序號,則本地刪除所述舊位置序號對應(yīng)的數(shù)據(jù),并向所述服務(wù)器請求更新后的所述第二位置序號對應(yīng)的數(shù)據(jù);
[0022]若所述舊位置序號小于等于所述第二位置序號集合中所有的位置序號且所述新位置序號小于等于所述第二位置序號集合中所有的位置序號,則本地調(diào)整所述數(shù)據(jù)的新位置,并更新其他字段的數(shù)據(jù)。
[0023]優(yōu)選地,所述方法還包括:
[0024]向所述服務(wù)器發(fā)送訂閱數(shù)據(jù)的請求,所述請求包括所述客戶端請求所述有序數(shù)據(jù)集合中的預(yù)先設(shè)置范圍內(nèi)的數(shù)據(jù);
[0025]接收所述服務(wù)器發(fā)送的與所述請求對應(yīng)的數(shù)據(jù)。
[0026]第三方面,一種更新數(shù)據(jù)的裝置,所述裝置包括:
[0027]檢測模塊,用于在預(yù)先設(shè)置的時間內(nèi)檢測預(yù)先存儲的數(shù)據(jù)是否有更新;
[0028]第一獲取模塊,用于若是,則獲取更新的數(shù)據(jù)信息,所述更新的數(shù)據(jù)信息包括更新的數(shù)據(jù)在預(yù)先存儲的有序數(shù)據(jù)集合中的第一位置序號、新數(shù)據(jù)值和更新的數(shù)據(jù)的屬性;
[0029]第二獲取模塊,用于獲取訂閱列表中存儲的客戶端中顯示的所有數(shù)據(jù)的第二位置序號集合,所述第二位置序號集合用于標(biāo)識所述客戶端顯示的所有數(shù)據(jù)在所述有序數(shù)據(jù)集合中的位置序號;
[0030]比較模塊,用于比較所述第一位置序號和所述第二位置序號集合中所有的位置序號,根據(jù)比較的結(jié)果更新數(shù)據(jù)。
[0031 ] 優(yōu)選地,所述比較模塊,包括:
[0032]第一處理單元,用于若所述第一位置序號小于等于所述第二位置序號集合中所有的位置序號,則進一步判斷所述更新后的所述數(shù)據(jù)的新位置序號以及更新前的所述數(shù)據(jù)的舊位置序號,若所述新位置序號和所述舊位置序號均大于等于所述第二位置序號集合中所有的位置序號,則結(jié)束更新數(shù)據(jù)的流程;
[0033]第二處理單元,用于若所述更新后的所述數(shù)據(jù)的新位置序號以及更新前的所述數(shù)據(jù)的舊位置序號中有至少有一個小于所述第二位置序號集合中所有的位置序號,則向所述客戶端發(fā)送更新數(shù)據(jù)的通知信息,所述更新數(shù)據(jù)的通知信息包括更新后的所述數(shù)據(jù)的新位置序號、更新前的所述數(shù)據(jù)的舊位置序號和新數(shù)據(jù)值;
[0034]第三處理單元,用于若所述第一位置序號大于所述第二位置序號集合中所有的位置序號,則返回執(zhí)行所述第二獲取模塊;
[0035]第四處理單元,用于若所述第二位置序號集合中最大位置序號大于所述預(yù)先存儲的有序數(shù)據(jù)集合的最大位置序號,則結(jié)束更新數(shù)據(jù)的流程。
[0036]優(yōu)選地,所述裝置還包括:
[0037]接收模塊,用于接收客戶端發(fā)送的訂閱數(shù)據(jù)的請求,并將所述客戶端加入所述訂閱列表,所述請求包括所述客戶端請求所述有序數(shù)據(jù)集合中的預(yù)先設(shè)置范圍內(nèi)的數(shù)據(jù);
[0038]發(fā)送模塊,用于向所述客戶端發(fā)送與所述請求對應(yīng)的數(shù)據(jù)。
[0039]第四方面,一種更新數(shù)據(jù)的裝置,所述裝置包括:
[0040]第一接收模塊,用于接收服務(wù)器發(fā)送的更新數(shù)據(jù)的通知信息,所述更新數(shù)據(jù)的通知信息包括更新后的所述數(shù)據(jù)的新位置序號、更新前的所述數(shù)據(jù)的舊位置序號和新數(shù)據(jù)值;
[0041]第一更新模塊,用于若所述舊位置序號大于第二位置序號集合中所有的位置序號且所述新位置序號小于等于所述第二位置序號集合中所有的位置序號,則本地刪除所述第二位置序號對應(yīng)的數(shù)據(jù),并向所述服務(wù)器請求更新后的所述新位置序號對應(yīng)的數(shù)據(jù);
[0042]第二更新模塊,用于若所述舊位置序號小于等于所述第二位置序號集合中所有的位置序號且所述新位置序號大于所述第二位置序號集合中所有的位置序號,則本地刪除所述舊位置序號對應(yīng)的數(shù)據(jù),并向所述服務(wù)器請求更新后的所述第二位置序號對應(yīng)的數(shù)據(jù);
[0043]第三更新模塊,用于若所述舊位置序號小于等于所述第二位置序號集合中所有的位置序號且所述新位置序號小于等于所述第二位置序號集合中所有的位置序號,則本地調(diào)整所述數(shù)據(jù)的新位置,并更新其他字段的數(shù)據(jù)。
[0044]優(yōu)選地,所述裝置還包括:
[0045]發(fā)送模塊,用于向所述服務(wù)器發(fā)送訂閱數(shù)據(jù)的請求,所述請求包括所述客戶端請求所述有序數(shù)據(jù)集合中的預(yù)先設(shè)置范圍內(nèi)的數(shù)據(jù);
[0046]第二接收模塊,用于接收所述服務(wù)器發(fā)送的與所述請求對應(yīng)的數(shù)據(jù)。
[0047]本發(fā)明實施例通過在預(yù)先設(shè)置的時間內(nèi)檢測預(yù)先存儲的數(shù)據(jù)是否有更新;若是,則獲取更新的數(shù)據(jù)信息,所述更新的數(shù)據(jù)信息包括更新的數(shù)據(jù)在預(yù)先存儲的有序數(shù)據(jù)集合中的第一位置序號、新數(shù)據(jù)值和更新的數(shù)據(jù)的屬性;獲取訂閱列表中存儲的客戶端中顯示的所有數(shù)據(jù)的第二位置序號集合,所述第二位置序號集合用于標(biāo)識所述客戶端顯示的所有數(shù)據(jù)在所述有序數(shù)據(jù)集合中的位置序號;比較所述第一位置序號和所述第二位置序號集合中所有的位置序號,根據(jù)比較的結(jié)果更新數(shù)據(jù),實現(xiàn)客戶端同類多項數(shù)據(jù)的實時更新,同時大大降低了客戶端的請求次數(shù)和服務(wù)器的負(fù)擔(dān),提升了用戶體驗。
【附圖說明】
[0048]圖1是本發(fā)明實施例更新數(shù)據(jù)的方法第一實施例的流程示意圖;
[0049]圖2是本發(fā)明實施例更新數(shù)據(jù)的方法第二實施例的流程示意圖;
[0050]圖3是本發(fā)明實施例提供的一種客戶端請求數(shù)據(jù)的顯示效果圖;
[0051]圖4是本發(fā)明實施例更新數(shù)據(jù)的方法第三實施例的流程示意圖;
[0052]圖5是本發(fā)明實施例更新數(shù)據(jù)的方法第四實施例的流程示意圖;
[0053]圖6是本發(fā)明實施例更新數(shù)據(jù)的裝置的功能模塊示意圖;
[0054]圖7是本