進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法及裝置制造方法
【專利摘要】本發(fā)明公開了行層級(jí)式數(shù)據(jù)讀取的方法及裝置,其中,該方法包括:接收包含待讀取元素的初始化請(qǐng)求,向讀取服務(wù)器發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素;接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù);顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。本發(fā)明方案能夠在提高性能的同時(shí),盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi)。
【專利說明】進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù),尤其涉及進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法及裝置。
【背景技術(shù)】
[0002]用戶終端可以向網(wǎng)絡(luò)側(cè)的獲取服務(wù)器獲取層級(jí)式數(shù)據(jù)。層級(jí)式數(shù)據(jù)例如為兩層四級(jí):兩層包括2013年第一季度(Ql)和第二季度(Q2)兩個(gè)時(shí)間段,第一級(jí)為片區(qū)數(shù)據(jù)、第二級(jí)為對(duì)應(yīng)各片區(qū)的總監(jiān)數(shù)據(jù)、第三級(jí)為對(duì)應(yīng)各總監(jiān)的小組數(shù)據(jù)、第四級(jí)對(duì)應(yīng)各小區(qū)的個(gè)人數(shù)據(jù)。
[0003]用戶初始進(jìn)入層級(jí)式讀取頁面,將根據(jù)該用戶的權(quán)限確定出對(duì)應(yīng)的元素,該元素為待讀取元素,假設(shè)該用戶權(quán)限可查詢所有片區(qū)的數(shù)據(jù),且時(shí)間段默認(rèn)為第二季度,則確定出的元素為2013Q2片區(qū);用戶終端將顯示2013年第二季度所有片區(qū)的數(shù)據(jù),這里假設(shè)包括華北、華東和華南三個(gè)片區(qū),如圖1所示,為用戶終端顯示的2013年第二季度各片區(qū)業(yè)績數(shù)據(jù),圖中包含了相應(yīng)的各項(xiàng)金額。用戶可以切換頁面右上角顯示的時(shí)間段,以讀取2013年第一季度的各片區(qū)數(shù)據(jù),如圖2所示。并且,用戶可逐級(jí)查看下一級(jí)數(shù)據(jù),例如,用戶點(diǎn)擊某一片區(qū),便可查看該片區(qū)對(duì)應(yīng)的各總監(jiān)數(shù)據(jù),而后,對(duì)點(diǎn)擊某一總監(jiān),便可查看該總監(jiān)對(duì)應(yīng)的各小組數(shù)據(jù),點(diǎn)擊某一小組,便可查看該小組對(duì)應(yīng)的各成員數(shù)據(jù)。
[0004]需要進(jìn)行數(shù)據(jù)讀取時(shí),用戶進(jìn)入層級(jí)式讀取頁面,從讀取服務(wù)器獲取需要的數(shù)據(jù)進(jìn)行顯示。從讀取服務(wù)器獲取數(shù)據(jù)的過程中,用戶終端顯示歡迎頁面,獲取到數(shù)據(jù)后,跳轉(zhuǎn)到數(shù)據(jù)顯示頁面。目前,進(jìn)行層級(jí)式讀取的方式主要采用以下兩種,下面分別進(jìn)行說明。
[0005]方式一:
[0006]用戶請(qǐng)求什么數(shù)據(jù),讀取服務(wù)器就獲取什么數(shù)據(jù)發(fā)送給用戶終端。這種方式的優(yōu)點(diǎn)是數(shù)據(jù)量較小,每次讀取數(shù)據(jù)的響應(yīng)時(shí)間短。缺點(diǎn)是用戶每次輸入讀取請(qǐng)求后都要向讀取服務(wù)器獲取數(shù)據(jù),對(duì)網(wǎng)絡(luò)性能是個(gè)拖累。例如用戶進(jìn)入首頁,第一次請(qǐng)求2013Q2片區(qū)的數(shù)據(jù),讀取服務(wù)器將關(guān)于2013Q2片區(qū)的數(shù)據(jù)反饋給用戶終端進(jìn)行顯示,如圖2所示;之后,如果用戶點(diǎn)擊華北,則向讀取服務(wù)器請(qǐng)求2013Q2華北總監(jiān)的數(shù)據(jù),進(jìn)入華北總監(jiān)的頁面,圖3所示了華北總監(jiān)的數(shù)據(jù)。并且,當(dāng)用戶需要讀取2013年第一季度的數(shù)據(jù)時(shí),需要切換頁面右上角顯示的時(shí)間段,以向服務(wù)器重新獲取數(shù)據(jù)。
[0007]方式二:
[0008]用戶請(qǐng)求什么數(shù)據(jù),就取出與用戶請(qǐng)求相關(guān)的全部數(shù)據(jù)。這種方式的優(yōu)點(diǎn)是為用戶后續(xù)的切換頁面免去了請(qǐng)求數(shù)據(jù),提高了性能。例如用戶進(jìn)入首頁,第一次請(qǐng)求2013Q2片區(qū)的數(shù)據(jù),讀取服務(wù)器將與2013Q2片區(qū)相關(guān)的全部數(shù)據(jù)反饋給用戶終端,用戶終端存儲(chǔ)接收的數(shù)據(jù),并顯示2013Q2片區(qū)的數(shù)據(jù);與2013Q2片區(qū)相關(guān)的全部數(shù)據(jù)包括2013Q2片區(qū)+總監(jiān)+小組+個(gè)人的全部數(shù)據(jù),也就是包括:2013Q2下的三個(gè)片華北+華東+華南的數(shù)據(jù),華北+華東+華南三個(gè)片區(qū)分別對(duì)應(yīng)的總監(jiān)數(shù)據(jù),各總監(jiān)對(duì)應(yīng)的小組數(shù)據(jù),各小組對(duì)應(yīng)的個(gè)人數(shù)據(jù)。這樣,用戶后續(xù)請(qǐng)求下一級(jí)數(shù)據(jù)時(shí),用戶終端可直接從本地提取出需要的數(shù)據(jù)進(jìn)行顯示。但這樣做的缺點(diǎn)是:一次數(shù)據(jù)請(qǐng)求的量較大,增加了在歡迎頁面的等待時(shí)間;并且,大多數(shù)情況下用戶只切換兩個(gè)頁面,也就是后續(xù)再進(jìn)行一次數(shù)據(jù)請(qǐng)求,將其余沒用到的數(shù)據(jù)放入緩存造成了資源浪費(fèi)。并且,當(dāng)用戶需要讀取2013年第一季度的數(shù)據(jù)時(shí),需要切換頁面右上角顯示的時(shí)間段,以向服務(wù)器重新獲取數(shù)據(jù)。
[0009]綜上可見,方式一因請(qǐng)求數(shù)據(jù)次數(shù)多而影響性能,方式二獲取數(shù)據(jù)的等待時(shí)間過長且資源浪費(fèi)大,故也有不足。如果能在方案一和方案二之間取長補(bǔ)短,在提高性能的同時(shí)盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi),將進(jìn)一步滿足需求,但目前還沒有這方面的技術(shù)。
【發(fā)明內(nèi)容】
[0010]本發(fā)明提供了一種進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法,該方法能夠在提高性能的同時(shí),盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi)。
[0011]本發(fā)明提供了一種進(jìn)行層級(jí)式數(shù)據(jù)讀取的裝置,該裝置能夠在提高性能的同時(shí),盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi)。
[0012]一種進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法,該方法包括:
[0013]接收包含待讀取元素的初始化請(qǐng)求,向讀取服務(wù)器發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素;
[0014]接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù);
[0015]顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。
[0016]一種進(jìn)行層級(jí)式數(shù)據(jù)讀取的裝置,該裝置包括初始化處理單元、數(shù)據(jù)接收單元和數(shù)據(jù)顯示單元;
[0017]所述初始化處理單元,接收包含待讀取元素的初始化請(qǐng)求,發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素;
[0018]所述數(shù)據(jù)接收單元,接收反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù);將待讀取元素對(duì)應(yīng)的數(shù)據(jù)發(fā)送給所述數(shù)據(jù)顯示單元;
[0019]所述數(shù)據(jù)顯示單元,顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。
[0020]采用本發(fā)明方案,接收包含待讀取元素的初始化請(qǐng)求后,從讀取服務(wù)器獲取與待讀取元素對(duì)應(yīng)的數(shù)據(jù)以及部分相關(guān)數(shù)據(jù),進(jìn)行存儲(chǔ),所述部分相關(guān)數(shù)據(jù)為用戶后續(xù)最有可能讀取的數(shù)據(jù);這樣,在方案一和方案二之間取長補(bǔ)短,實(shí)現(xiàn)了在提高性能的同時(shí),盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi),進(jìn)一步滿足了需求。
【專利附圖】
【附圖說明】
[0021]圖1為現(xiàn)有技術(shù)進(jìn)行層級(jí)式數(shù)據(jù)讀取的片區(qū)數(shù)據(jù)實(shí)例;
[0022]圖2為現(xiàn)有技術(shù)進(jìn)行層級(jí)式數(shù)據(jù)讀取的頁面切換實(shí)例;
[0023]圖3為現(xiàn)有技術(shù)進(jìn)行層級(jí)式數(shù)據(jù)讀取的總監(jiān)數(shù)據(jù)實(shí)例;
[0024]圖4本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法示意性流程圖;
[0025]圖5為本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的小組數(shù)據(jù)實(shí)例;
[0026]圖6為本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的個(gè)人數(shù)據(jù)實(shí)例;
[0027]圖7為本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的元素樹結(jié)構(gòu)實(shí)例;
[0028]圖8為本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0029]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
[0030]發(fā)明人在實(shí)際應(yīng)用中發(fā)現(xiàn),通常地,進(jìn)行初始化請(qǐng)求后,后續(xù)大多再進(jìn)行一次讀取請(qǐng)求;如果接收初始化請(qǐng)求后,只獲取當(dāng)前請(qǐng)求的數(shù)據(jù)、同一層數(shù)據(jù)以及下一級(jí)數(shù)據(jù),并存儲(chǔ),可實(shí)現(xiàn)在現(xiàn)有技術(shù)方式一和方式二之間取長補(bǔ)短,達(dá)到在提高性能的同時(shí),盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi)。
[0031]參見圖4,為本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法示意性流程圖,其包括以下步驟:
[0032]步驟401,接收包含待讀取元素的初始化請(qǐng)求,向讀取服務(wù)器發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素。
[0033]用戶初始進(jìn)入層級(jí)式讀取頁面,將根據(jù)該用戶的權(quán)限確定出對(duì)應(yīng)的元素,該元素為待讀取元素,假設(shè)該用戶可查詢所有片區(qū)的數(shù)據(jù),且時(shí)間段默認(rèn)為第二季度,則確定出的元素為2013Q2片區(qū);再如,該用戶為總監(jiān)趙剛,且時(shí)間段默認(rèn)為第二季度,則確定出的元素為2013Q2趙剛。
[0034]步驟402,接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù)。
[0035]步驟403,顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。
[0036]現(xiàn)有技術(shù)中,方式一因請(qǐng)求數(shù)據(jù)次數(shù)多而影響性能,方式二獲取數(shù)據(jù)的等待時(shí)間過長且資源浪費(fèi)大,故也有不足。本發(fā)明中,接收包含待讀取元素的初始化請(qǐng)求后,從讀取服務(wù)器獲取與待讀取元素對(duì)應(yīng)的數(shù)據(jù)以及部分相關(guān)數(shù)據(jù),進(jìn)行存儲(chǔ),所述部分相關(guān)數(shù)據(jù)為用戶后續(xù)最有可能讀取的數(shù)據(jù);這樣,在方案一和方案二之間取長補(bǔ)短,實(shí)現(xiàn)了在提高性能的同時(shí),盡量提高數(shù)據(jù)讀取速度、減少緩存資源的浪費(fèi),進(jìn)一步滿足了需求。
[0037]之后,還可能接收到來自用戶輸入的切換請(qǐng)求,進(jìn)行數(shù)據(jù)切換,下面分別進(jìn)行說明:
[0038]1、橫向切換
[0039]接收橫向切換請(qǐng)求,所述橫向切換請(qǐng)求中包含從待讀取元素的同一層元素中選擇的橫向元素,查詢本地是否存儲(chǔ)了與橫向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),進(jìn)行顯示,并向讀取服務(wù)器發(fā)送橫向讀取請(qǐng)求,所述橫向讀取請(qǐng)求包含橫向元素的下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素;
[0040]接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ)。
[0041 ] 如果本地沒有存儲(chǔ)與橫向元素對(duì)應(yīng)的數(shù)據(jù),則直接向讀取服務(wù)器發(fā)送橫向讀取請(qǐng)求,所述橫向讀取請(qǐng)求包含橫向元素、橫向元素的下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素;接收讀取服務(wù)器反饋的數(shù)據(jù),進(jìn)行存儲(chǔ),并顯示與橫向元素對(duì)應(yīng)的數(shù)據(jù)。
[0042]2、向下縱向切換
[0043]接收向下縱向切換請(qǐng)求,所述向下縱向切換請(qǐng)求中包含從待讀取元素的下一級(jí)元素中選擇的向下縱向元素,查詢本地是否存儲(chǔ)了與向下縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),進(jìn)行顯示,并向讀取服務(wù)器發(fā)送向下縱向讀取請(qǐng)求,所述向下縱向讀取請(qǐng)求包含向下縱向元素的同一層元素和下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素;
[0044]接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ)。
[0045]如果本地沒有存儲(chǔ)與向下縱向元素對(duì)應(yīng)的數(shù)據(jù),則直接取服務(wù)器發(fā)送向下縱向讀取請(qǐng)求,所述向下縱向讀取請(qǐng)求包含向下縱向元素、向下縱向元素的同一層元素和下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素;接收讀取服務(wù)器反饋的數(shù)據(jù),進(jìn)行存儲(chǔ),并顯示與向下縱向元素對(duì)應(yīng)的數(shù)據(jù)。
[0046]3、向上縱向切換
[0047]接收向上縱向切換請(qǐng)求,所述向上縱向切換請(qǐng)求中包含從待讀取元素的上一級(jí)元素中選擇的向上縱向元素,查詢本地是否存儲(chǔ)了與向上縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),進(jìn)行顯示;否則,拒絕切換請(qǐng)求。
[0048]最后,如果用戶退出層級(jí)式讀取頁面,用戶終端將刪除存儲(chǔ)的與該頁面應(yīng)用對(duì)應(yīng)的所有數(shù)據(jù)。
[0049]下面同樣以圖1-3所示兩層四級(jí)的實(shí)例,對(duì)本發(fā)明方案進(jìn)行說明。該實(shí)例中兩層包括2013年第一季度(Ql)和第二季度(Q2)兩個(gè)時(shí)間段,四級(jí)依次為片區(qū)、總監(jiān)、小組、個(gè)人。
[0050]用戶通過手機(jī)或平板進(jìn)入關(guān)于業(yè)績數(shù)據(jù)的web應(yīng)用,先在歡迎頁面等待,這里假設(shè)該用戶權(quán)限較高,可查看各片區(qū)數(shù)據(jù)。待數(shù)據(jù)加載完畢后,默認(rèn)進(jìn)入片區(qū)頁面,顯示當(dāng)前季度(2013Q2)的片區(qū)數(shù)據(jù),如圖1所示。根據(jù)各級(jí)頁面右上角的提示,可以切換數(shù)據(jù)的時(shí)間范圍(2013Q1和2013Q2),如圖2所示。
[0051]l)Web應(yīng)用啟動(dòng)后進(jìn)入歡迎頁面,用戶終端向讀取服務(wù)器請(qǐng)求3項(xiàng)數(shù)據(jù)(2013Q2片區(qū)+2013Q1片區(qū)+2013Q2總監(jiān)),數(shù)據(jù)以json格式返回并保存在用戶終端的內(nèi)存中。用戶終端js框架從json數(shù)據(jù)中取出2013Q2片區(qū)數(shù)據(jù)并展示,如圖1所示。
[0052]此時(shí)用戶終端的json數(shù)據(jù)恰好只包含用戶下一次切換頁面的全部可能性。即用戶在看完2013Q2片區(qū)數(shù)據(jù)后,無論是切換時(shí)間范圍還是點(diǎn)擊下鉆到子頁面,第二次請(qǐng)求的數(shù)據(jù)一定在這2項(xiàng)之中(2013Q1片區(qū)+2013Q2總監(jiān))。這樣一來,用戶進(jìn)入下一個(gè)頁面就不用再為請(qǐng)求數(shù)據(jù)而等待,而且這次請(qǐng)求的數(shù)據(jù)是最小范圍的。
[0053]2)假如用戶在頁面上點(diǎn)擊了華北,則進(jìn)入2013Q2華北總監(jiān)頁面,web應(yīng)用從內(nèi)存中直接取出2013Q2華北總監(jiān)的數(shù)據(jù)并展示,同時(shí)向讀取服務(wù)器發(fā)送請(qǐng)求,取出2項(xiàng)數(shù)據(jù)(2013Q1華北總監(jiān)+2013Q2華北小組)并追加到用戶終端內(nèi)存中。華北總監(jiān)數(shù)據(jù)如圖3所
/Jn ο
[0054]這樣做的好處是:
[0055]I下鉆到子頁面,數(shù)據(jù)是從內(nèi)存中獲取,響應(yīng)速度快,保證了良好的用戶體驗(yàn)。
[0056]2將2013Q1華北總監(jiān)+2013Q2華北小組的數(shù)據(jù)取出并存入用戶終端內(nèi)存,不僅不影響用戶體驗(yàn),而且能保證內(nèi)存中的數(shù)據(jù)繼續(xù)包含用戶下一次改變頁面的全部可能性,為用戶下一次改變做準(zhǔn)備。因?yàn)楫?dāng)前是在2013Q2華北總監(jiān)頁面,所以只取2013Q2華北的小組而不是2013Q2所有的小組,目的是盡可能減少不必要的數(shù)據(jù)。
[0057]3)接下來,如果用戶點(diǎn)擊了圖3中的趙剛,則進(jìn)入2013Q2華北總監(jiān)趙剛的小組頁面,web應(yīng)用從內(nèi)存中直接取出2013Q2華北總監(jiān)趙剛的小組數(shù)據(jù)并展示,同時(shí)向服務(wù)器發(fā)送請(qǐng)求,取出2項(xiàng)數(shù)據(jù)(2013Q1華北總監(jiān)趙剛的小組+2013Q2華北總監(jiān)趙剛的小組的組員)并追加到用戶終端內(nèi)存中。華北總監(jiān)趙剛的小組數(shù)據(jù)如圖5所示。這樣做的好處是:
[0058]I下鉆到子頁面,數(shù)據(jù)是從內(nèi)存中取的,響應(yīng)速度快,保證了良好的用戶體驗(yàn)。
[0059]2將2013Q1華北總監(jiān)趙剛的小組+2013Q2華北總監(jiān)趙剛的小組的組員的數(shù)據(jù)取出并存入用戶終端內(nèi)存,不僅不影響用戶體驗(yàn),而且能保證內(nèi)存中的數(shù)據(jù)繼續(xù)包含用戶下一次改變頁面的全部可能性,為用戶下一次改變做準(zhǔn)備。因?yàn)楫?dāng)前是在2013Q2華北總監(jiān)趙剛的小組頁面,所以只取2013Q2華北總監(jiān)趙剛的小組的組員而不是2013Q2所有的組員,目的是盡可能減少不必要的數(shù)據(jù)。
[0060]4)然后,如果用戶點(diǎn)擊圖5中的家電組,則進(jìn)入2013Q2華北總監(jiān)趙剛的家電組的組員頁面,web應(yīng)用從內(nèi)存中直接取出2013Q2華北總監(jiān)趙剛的家電組的組員數(shù)據(jù)并展示,同時(shí)向服務(wù)器發(fā)送請(qǐng)求,取出I項(xiàng)數(shù)據(jù)(2013Q1華北總監(jiān)趙剛的家電組的組員)并追加到用戶終端內(nèi)存中。華北總監(jiān)趙剛的家電組的組員數(shù)據(jù)如圖6所示。
[0061]這樣做的好處是:
[0062]I下鉆到子頁面,數(shù)據(jù)是從內(nèi)存中取的,響應(yīng)速度快,保證了良好的用戶體驗(yàn)。
[0063]2將2013Q1華北總監(jiān)趙剛的家電組的組員的數(shù)據(jù)取出并存入用戶終端內(nèi)存,不僅不影響用戶體驗(yàn),而且能保證內(nèi)存中的數(shù)據(jù)繼續(xù)包含用戶下一次改變頁面的全部可能性,為用戶下一次改變做準(zhǔn)備。因?yàn)楫?dāng)前是在2013Q2華北總監(jiān)趙剛的家電組的組員頁面,已經(jīng)是最底層,沒有下級(jí)頁面,所以只取2013Q1華北總監(jiān)趙剛的家電組的組員的數(shù)據(jù)。
[0064]5)回到步驟1),當(dāng)前頁面是2013Q2片區(qū)頁面,如果用戶把時(shí)間范圍切換成了2013Q1,則進(jìn)入2013Q1片區(qū)頁面。web應(yīng)用從內(nèi)存中直接取出2013Q1片區(qū)數(shù)據(jù)并展示,同時(shí)向服務(wù)器發(fā)送請(qǐng)求,取出I項(xiàng)數(shù)據(jù)(2013Q1總監(jiān))并追加到用戶終端內(nèi)存中。
[0065]這樣做的好處是:
[0066]I切換到同級(jí)別另一時(shí)間范圍的頁面,數(shù)據(jù)是從內(nèi)存中取的,響應(yīng)速度快,保證了良好的用戶體驗(yàn)。
[0067]2將2013Q1總監(jiān)的數(shù)據(jù)取出并存入用戶終端內(nèi)存,不僅不影響用戶體驗(yàn),而且能保證內(nèi)存中的數(shù)據(jù)繼續(xù)包含用戶下一次改變頁面的全部可能性,為用戶下一次改變做準(zhǔn)備。其實(shí)這里原本應(yīng)該是取出2項(xiàng)數(shù)據(jù)(2013Q2片區(qū)+2013Q1總監(jiān)),web應(yīng)用在請(qǐng)求數(shù)據(jù)之前先檢測到內(nèi)存中已有2013Q2片區(qū)數(shù)據(jù),故只需請(qǐng)求I項(xiàng)數(shù)據(jù)(2013Q1總監(jiān))即可,目的是盡可能減少不必要的數(shù)據(jù)。
[0068]步驟1)-5)已覆蓋了用戶點(diǎn)擊和切換的所有場景。本發(fā)明的數(shù)據(jù)讀取方案,其核心思想是永遠(yuǎn)只比用戶先走一步緩存數(shù)據(jù)。對(duì)層級(jí)式數(shù)據(jù)結(jié)構(gòu),使用本發(fā)明方案,隨著用戶交互的進(jìn)行而逐步有規(guī)則地加載數(shù)據(jù)到用戶終端,從而,在提高應(yīng)用性能的同時(shí),盡可能減少資源浪費(fèi),并減少用戶對(duì)請(qǐng)求數(shù)據(jù)的等待時(shí)間。
[0069]從上述實(shí)例的數(shù)據(jù)結(jié)構(gòu),可以獲知本發(fā)明數(shù)據(jù)結(jié)構(gòu)的3點(diǎn)特征:
[0070]I數(shù)據(jù)自上而下是一套完整的樹狀結(jié)構(gòu)(片區(qū)-總監(jiān)-小組-個(gè)人)。
[0071]2整個(gè)系統(tǒng)中的數(shù)據(jù)可以是I棵樹,也可以是并行的N棵樹,N>=1 (2013Q2和2013Q1為兩棵樹)。
[0072]3數(shù)據(jù)的一次切換只能從當(dāng)前位置橫向或縱向移動(dòng)一步,不可跳躍。
[0073]圖7為發(fā)明數(shù)據(jù)結(jié)構(gòu)的示意圖實(shí)例,其包括兩棵樹,分別用細(xì)實(shí)線和粗實(shí)線標(biāo)識(shí)。
[0074]①假設(shè)首頁默認(rèn)顯示細(xì)實(shí)線a的數(shù)據(jù),則在歡迎頁面向服務(wù)器請(qǐng)求3項(xiàng)數(shù)據(jù)(細(xì)實(shí)線a+粗實(shí)線a+細(xì)實(shí)線bl至bk)并存入內(nèi)存。此時(shí)內(nèi)存中的數(shù)據(jù)恰好只包含用戶下一次改變的全部可能性。
[0075]②如果用戶從細(xì)實(shí)線a切換到細(xì)實(shí)線bl,此時(shí)細(xì)實(shí)線bl的數(shù)據(jù)直接從內(nèi)存取出并展示,同時(shí)請(qǐng)求2項(xiàng)數(shù)據(jù)(粗實(shí)線bl+細(xì)實(shí)線Cl至c2)并存入內(nèi)存。此時(shí)內(nèi)存中的數(shù)據(jù)繼續(xù)包含用戶下一次改變的全部可能性。
[0076]③如果用戶從細(xì)實(shí)線bl切換到粗實(shí)線bl,此時(shí)粗實(shí)線bl的數(shù)據(jù)直接從內(nèi)存取出并展示,同時(shí)請(qǐng)求I項(xiàng)數(shù)據(jù)(粗實(shí)線Cl至C2)并存入內(nèi)存。此時(shí)內(nèi)存中的數(shù)據(jù)繼續(xù)包含用戶下一次改變的全部可能性。其實(shí)原本應(yīng)該是請(qǐng)求2項(xiàng)數(shù)據(jù)(細(xì)實(shí)線bl+粗實(shí)線Cl至c2),但在請(qǐng)求數(shù)據(jù)之前先檢測到內(nèi)存中已有細(xì)實(shí)線bl的數(shù)據(jù),故只需請(qǐng)求I項(xiàng)數(shù)據(jù)(粗實(shí)線Cl至c2),盡可能減少不必要的數(shù)據(jù)。
[0077]④如果用戶繼續(xù)向下縱向切換,則重復(fù)步驟2的操作;繼續(xù)橫向切換,則重復(fù)步驟3的操作;如果用戶向上縱向切換,則直接從內(nèi)存中取出目標(biāo)數(shù)據(jù)并展示,不再額外請(qǐng)求數(shù)據(jù)。
[0078]⑤每次請(qǐng)求數(shù)據(jù)之前先檢測內(nèi)存中是否已經(jīng)存在,如某項(xiàng)數(shù)據(jù)已存在則不再請(qǐng)求它,以減少資源浪費(fèi)。
[0079]參見圖8,為本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的裝置,該裝置位于用戶終端內(nèi),用于實(shí)現(xiàn)本發(fā)明進(jìn)行層級(jí)式數(shù)據(jù)讀取的方案,該裝置包括初始化處理單元、數(shù)據(jù)接收單元和數(shù)據(jù)顯示單元;
[0080]所述初始化處理單元,接收包含待讀取元素的初始化請(qǐng)求,發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素;
[0081]所述數(shù)據(jù)接收單元,接收反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù);將待讀取元素對(duì)應(yīng)的數(shù)據(jù)發(fā)送給所述數(shù)據(jù)顯示單元;
[0082]所述數(shù)據(jù)顯示單元,顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。
[0083]較佳地,該裝置還包括橫向切換單元,接收橫向切換請(qǐng)求,所述橫向切換請(qǐng)求中包含從待讀取元素的同一層元素中選擇的橫向元素,查詢本地是否存儲(chǔ)了與橫向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),發(fā)送給所述數(shù)據(jù)顯示單元,并發(fā)送橫向讀取請(qǐng)求,所述橫向讀取請(qǐng)求包含橫向元素的下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素;
[0084]所述數(shù)據(jù)接收單元,還用于接收與所述橫向讀取請(qǐng)求包含的元素對(duì)應(yīng)的數(shù)據(jù),進(jìn)行存儲(chǔ);
[0085]所述數(shù)據(jù)顯示單元,還用于進(jìn)行切換,顯示來自所述橫向切換單元的數(shù)據(jù)。
[0086]較佳地,該裝置還包括向下縱向切換單元,接收向下縱向切換請(qǐng)求,所述向下縱向切換請(qǐng)求中包含從待讀取元素的下一級(jí)元素中選擇的向下縱向元素,查詢本地是否存儲(chǔ)了與向下縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),發(fā)送給所述數(shù)據(jù)顯示單元,并發(fā)送向下縱向讀取請(qǐng)求,所述向下縱向讀取請(qǐng)求包含向下縱向元素的同一層元素和下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素;
[0087]所述數(shù)據(jù)接收單元,還用于接收與所述向下縱向讀取請(qǐng)求包含的元素對(duì)應(yīng)的數(shù)據(jù),進(jìn)行存儲(chǔ);
[0088]所述數(shù)據(jù)顯示單元,還用于進(jìn)行切換,顯示來自所述向下縱向切換單元的數(shù)據(jù)。
[0089]較佳地,該裝置還包括向上縱向切換單元,接收向上縱向切換請(qǐng)求,所述向上縱向切換請(qǐng)求中包含從待讀取元素的上一級(jí)元素中選擇的向上縱向元素,查詢本地是否存儲(chǔ)了與向上縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),發(fā)送給所述數(shù)據(jù)顯示單元;否則,拒絕切換請(qǐng)求;
[0090]所述數(shù)據(jù)顯示單元,還用于進(jìn)行切換,顯示來自所述向上縱向切換單元的數(shù)據(jù)。
[0091]較佳地,所述數(shù)據(jù)接收單元包括刪除子單元,接收應(yīng)用退出指令,刪除存儲(chǔ)的數(shù)據(jù)。
[0092]本發(fā)明所述的用戶終端可具體為移動(dòng)終端。
[0093]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種進(jìn)行層級(jí)式數(shù)據(jù)讀取的方法,其特征在于,該方法包括: 接收包含待讀取元素的初始化請(qǐng)求,向讀取服務(wù)器發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素; 接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù); 顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)之后,該方法還包括: 接收橫向切換請(qǐng)求,所述橫向切換請(qǐng)求中包含從待讀取元素的同一層元素中選擇的橫向元素,查詢本地是否存儲(chǔ)了與橫向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),進(jìn)行顯示,并向讀取服務(wù)器發(fā)送橫向讀取請(qǐng)求,所述橫向讀取請(qǐng)求包含橫向元素的下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素; 接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ)。
3.如權(quán)利要求1所述的方法,其特征在于,所述顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)之后,該方法還包括: 接收向下縱向切換請(qǐng)求,所述向下縱向切換請(qǐng)求中包含從待讀取元素的下一級(jí)元素中選擇的向下縱向元素,查詢本地是否存儲(chǔ)了與向下縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),進(jìn)行顯示,并向讀取服務(wù)器發(fā)送向下縱向讀取請(qǐng)求,所述向下縱向讀取請(qǐng)求包含向下縱向元素的同一層元素和下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素; 接收讀取服務(wù)器反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ)。
4.如權(quán)利要求1所述的方法,其特征在于,所述顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)之后,該方法還包括: 接收向上縱向切換請(qǐng)求,所述向上縱向切換請(qǐng)求中包含從待讀取元素的上一級(jí)元素中選擇的向上縱向元素,查詢本地是否存儲(chǔ)了與向上縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),進(jìn)行顯示;否則,拒絕切換請(qǐng)求。
5.如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)之后,該方法還包括: 接收應(yīng)用退出指令,刪除存儲(chǔ)的數(shù)據(jù)。
6.一種進(jìn)行層級(jí)式數(shù)據(jù)讀取的裝置,其特征在于,該裝置包括初始化處理單元、數(shù)據(jù)接收單元和數(shù)據(jù)顯示單元; 所述初始化處理單元,接收包含待讀取元素的初始化請(qǐng)求,發(fā)送數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求包含待讀取元素、待讀取元素的同一層元素和下一級(jí)元素; 所述數(shù)據(jù)接收單元,接收反饋的數(shù)據(jù),并進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)包括待讀取元素對(duì)應(yīng)的數(shù)據(jù)、待讀取元素的同一層元素和下一級(jí)元素對(duì)應(yīng)的數(shù)據(jù);將待讀取元素對(duì)應(yīng)的數(shù)據(jù)發(fā)送給所述數(shù)據(jù)顯示單元; 所述數(shù)據(jù)顯示單元,顯示待讀取元素對(duì)應(yīng)的數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,其特征在于,該裝置還包括橫向切換單元,接收橫向切換請(qǐng)求,所述橫向切換請(qǐng)求中包含從待讀取元素的同一層元素中選擇的橫向元素,查詢本地是否存儲(chǔ)了與橫向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),發(fā)送給所述數(shù)據(jù)顯示單元,并發(fā)送橫向讀取請(qǐng)求,所述橫向讀取請(qǐng)求包含橫向元素的下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素; 所述數(shù)據(jù)接收單元,還用于接收與所述橫向讀取請(qǐng)求包含的元素對(duì)應(yīng)的數(shù)據(jù),進(jìn)行存儲(chǔ); 所述數(shù)據(jù)顯示單元,還用于進(jìn)行切換,顯示來自所述橫向切換單元的數(shù)據(jù)。
8.如權(quán)利要求6所述的裝置,其特征在于,該裝置還包括向下縱向切換單元,接收向下縱向切換請(qǐng)求,所述向下縱向切換請(qǐng)求中包含從待讀取元素的下一級(jí)元素中選擇的向下縱向元素,查詢本地是否存儲(chǔ)了與向下縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),發(fā)送給所述數(shù)據(jù)顯示單元,并發(fā)送向下縱向讀取請(qǐng)求,所述向下縱向讀取請(qǐng)求包含向下縱向元素的同一層元素和下一級(jí)元素,且不包括已在本地存儲(chǔ)有相應(yīng)數(shù)據(jù)的元素; 所述數(shù)據(jù)接收單元,還用于接收與所述向下縱向讀取請(qǐng)求包含的元素對(duì)應(yīng)的數(shù)據(jù),進(jìn)行存儲(chǔ); 所述數(shù)據(jù)顯示單元,還用于進(jìn)行切換,顯示來自所述向下縱向切換單元的數(shù)據(jù)。
9.如權(quán)利要求6所述的裝置,其特征在于,該裝置還包括向上縱向切換單元,接收向上縱向切換請(qǐng)求,所述向上縱向切換請(qǐng)求中包含從待讀取元素的上一級(jí)元素中選擇的向上縱向元素,查詢本地是否存儲(chǔ)了與向上縱向元素對(duì)應(yīng)的數(shù)據(jù),如果是,則提取數(shù)據(jù),發(fā)送給所述數(shù)據(jù)顯示單元;否則,拒絕切換請(qǐng)求; 所述數(shù)據(jù)顯示單元,還用于進(jìn)行切換,顯示來自所述向上縱向切換單元的數(shù)據(jù)。
10.如權(quán)利要求6至9中任一項(xiàng)所述的裝置,其特征在于,所述數(shù)據(jù)接收單元包括刪除子單元,接收應(yīng)用退出指令,刪除存儲(chǔ)的數(shù)據(jù)。
【文檔編號(hào)】G06F17/30GK104298670SQ201310298055
【公開日】2015年1月21日 申請(qǐng)日期:2013年7月16日 優(yōu)先權(quán)日:2013年7月16日
【發(fā)明者】牛鳴 申請(qǐng)人:騰訊科技(北京)有限公司