專利名稱:用于處理斷層數(shù)據(jù)的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種用于處理斷層數(shù)據(jù)的裝置和方法。
背景技術(shù):
隨著智能終端設(shè)備的普及,閱讀客戶端(以下在本申請(qǐng)中簡(jiǎn)稱為“客戶端”)越來越多的被應(yīng)用于智能終端設(shè)備上。但是其主要功能部分——數(shù)據(jù)的存儲(chǔ)以及斷層數(shù)據(jù)的處理,一直以來都是較為核心、技術(shù)難度較大、卻又優(yōu)化不夠的地方。而這又是構(gòu)成客戶端用戶體驗(yàn)中,一個(gè)非常重要的組成部分??蛻舳说拈喿x數(shù)據(jù)包括文章、圖片、視頻、“微博”等。在使用客戶端的過程中,有一種最為普遍的場(chǎng)景是用戶先在某一時(shí)間段(如中午午休時(shí))通過客戶端下載閱讀數(shù)據(jù),一般而言,客戶端會(huì)請(qǐng)求到約20條閱讀數(shù)據(jù),將其保存到數(shù)據(jù)庫(kù)中以便顯示。當(dāng)用戶看了一段時(shí)間后,退出客戶端,繼續(xù)自己的事情。而后在另一時(shí)間段(如傍晚六時(shí)),用戶再次進(jìn)入客戶端下載新的閱讀數(shù)據(jù),一般而言,出于對(duì)流量、傳輸速度和體驗(yàn)的考慮,客戶端不會(huì)將從上次下載過的數(shù)據(jù)(如之前提到的中午午休時(shí))一直到現(xiàn)在的閱讀數(shù)據(jù)都請(qǐng)求過來,這期間服務(wù)器端有可能已有了數(shù)百條閱讀數(shù)據(jù),因此客戶端僅是為用戶請(qǐng)求到約最新的20條閱讀數(shù)據(jù)。那么,在剛剛請(qǐng)求的20條閱讀數(shù)據(jù)和之前用戶請(qǐng)求的20條閱讀(如午休時(shí))的中間,形成了一些還沒有被下載到客戶端的閱讀數(shù)據(jù)。這些夾在最新的閱讀數(shù)據(jù)和已有閱讀數(shù)據(jù)的中間的“空心”部分稱之為“斷層數(shù)據(jù)”?,F(xiàn)有技術(shù)中的一種做法是在下載完新的閱讀數(shù)據(jù)后,不考慮中間是否有斷層數(shù)據(jù),直接將新下載的閱讀數(shù)據(jù)插入到已有閱讀數(shù)據(jù)之前,并且在顯示時(shí)全部顯示出來。這使得用戶無法獲知所顯示的數(shù)據(jù)之間是否有斷層數(shù)據(jù),更無法獲取斷層數(shù)據(jù)。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種用于處理斷層數(shù)據(jù)的裝置和方法。依據(jù)本發(fā)明的一個(gè)方面,提供了一種用于處理斷層數(shù)據(jù)的裝置,該裝置包括數(shù)據(jù)庫(kù)單元、顯示單元、斷層數(shù)據(jù)下載單元和第一數(shù)據(jù)庫(kù)維護(hù)單元以及新數(shù)據(jù)下載單元和第二數(shù)據(jù)庫(kù)維護(hù)單元;所述數(shù)據(jù)庫(kù)單元,適于保存數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中,最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效;所述顯示單元,適于顯示所述數(shù)據(jù)庫(kù)單元中的顯示標(biāo)記為有效的數(shù)據(jù);所述斷層數(shù)據(jù)下載單元,適于向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)單元中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù);所述第一數(shù)據(jù)庫(kù)維護(hù)單元,適于判斷所述返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)單元中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)單元中刪除所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果未填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)單元中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí);所述新數(shù)據(jù)下載單元,適于向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù);所述第二數(shù)據(jù)庫(kù)維護(hù)單元,適于判斷所述返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)單元中的已有數(shù)據(jù)銜接,如果銜接,將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元中,并將所述返回的數(shù)據(jù)的顯示標(biāo)記置為有效,如果不銜接,將數(shù)據(jù)庫(kù)單元中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效??蛇x地,所述斷層數(shù)據(jù)下載單元向服務(wù)器發(fā)送的下載請(qǐng)求包括最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí);所述第一數(shù)據(jù)庫(kù)維護(hù)單元,進(jìn)一步適于在所述返回的斷層數(shù)據(jù)的條數(shù)大于0且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在所述返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。可選地,該裝置進(jìn)一步包括第一斷層區(qū)間維護(hù)單元;所述第一斷層區(qū)間維護(hù)單元,適于遍歷數(shù)據(jù)庫(kù)單元中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。可選地,所述數(shù)據(jù)庫(kù)單元保存的斷層區(qū)間中的所述斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。可選地,所述數(shù)據(jù)庫(kù)單元保存的所述斷層區(qū)間集合是由JAVA類庫(kù)中的數(shù)組表實(shí)現(xiàn)的??蛇x地,該裝置進(jìn)一步包括顯示單元;所述顯示單元,適于在所述斷層數(shù)據(jù)下載單元接收到的服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)為0時(shí),向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù)??蛇x地,所述新數(shù)據(jù)下載單元向所述服務(wù)器發(fā)送的所述下載新數(shù)據(jù)的請(qǐng)求中包含請(qǐng)求下載的新數(shù)據(jù)條數(shù)和已下載到數(shù)據(jù)庫(kù)單元中的最新一條數(shù)據(jù)的標(biāo)識(shí);所述第二數(shù)據(jù)庫(kù)維護(hù)單元,進(jìn)一步適于在所述返回的新數(shù)據(jù)的條數(shù)小于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為銜接,在所述返回的新數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為不銜接??蛇x地,該裝置進(jìn)一步包括第二斷層區(qū)間維護(hù)單元;所述第二斷層區(qū)間維護(hù)單元,適于用所述返回的新數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)和所述已下載到庫(kù)中數(shù)據(jù)庫(kù)單元中的最新一條數(shù)據(jù)的標(biāo)識(shí)組成一個(gè)表示斷層區(qū)間的數(shù)組,并該數(shù)組保存到數(shù)據(jù)庫(kù)單元中的表示斷層區(qū)間集合的數(shù)組集合中。
可選地,所述提示單元,進(jìn)一步適于在所述新數(shù)據(jù)下載單元接收到的服務(wù)器返回的新數(shù)據(jù)的條數(shù)為0時(shí),向用戶提示數(shù)據(jù)庫(kù)單元中的最新數(shù)據(jù)即為服務(wù)器上的最新數(shù)據(jù)。依據(jù)本發(fā)明的另一方面,提供了一種用于處理斷層數(shù)據(jù)的方法,該方法包括向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù);其中,所述數(shù)據(jù)庫(kù)中保存有已下載的數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效,且顯示標(biāo)記為有效的數(shù)據(jù)能夠被顯示;判斷所述返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)中刪除所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果未填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí);向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù);判斷所述返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)銜接;如果銜接,將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效;如果不銜接,將數(shù)據(jù)庫(kù)中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。可選地,所述下載請(qǐng)求包括最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí);所述判斷所述返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間包括在所述返回的斷層數(shù)據(jù)的條數(shù)大于0且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在所述返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。可選地,在向服務(wù)器發(fā)送下載請(qǐng)求之前該方法進(jìn)一步包括遍歷數(shù)據(jù)庫(kù)中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間??蛇x地,所述斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)??蛇x地,該方法進(jìn)一步包括采用JAVA類庫(kù)中的數(shù)組表來實(shí)現(xiàn)所述斷層區(qū)間集
口 o可選地,該方法進(jìn)一步包括如果接收到的服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)為0,向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù)??蛇x地,所述下載新數(shù)據(jù)的請(qǐng)求中包括請(qǐng)求下載的新數(shù)據(jù)條數(shù),和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí);所述判斷所述返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)銜接包括在所述返回的新數(shù)據(jù)的條數(shù)小于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為銜接,在所述返回的新數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為不銜接。可選地,該方法進(jìn)一步包括如果不銜接,用所述返回的新數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)和所述已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)組成一個(gè)表示斷層區(qū)間的數(shù)組,并該數(shù)組保存到表示斷層區(qū)間集合的數(shù)組集合中??蛇x地,該方法進(jìn)一步包括如果接收到的服務(wù)器返回的新數(shù)據(jù)的條數(shù)為0,向用戶提示數(shù)據(jù)庫(kù)中的最新數(shù)據(jù)即為服務(wù)器上的最新數(shù)據(jù)。根據(jù)本發(fā)明的這種用于處理斷層數(shù)據(jù)的方案中,可以根據(jù)所記錄的斷層區(qū)間集合,從服務(wù)器獲取斷層數(shù)據(jù)并填補(bǔ)到對(duì)應(yīng)的斷層區(qū)間中,并且向用戶顯示的一直都是最新連續(xù)的數(shù)據(jù),由此解決了用戶無法獲知所顯示的數(shù)據(jù)中是否存在斷層數(shù)據(jù),以及無法獲得斷層數(shù)據(jù)的問題。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種數(shù)據(jù)下載方法的流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)下載方法的流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)下載過程中客戶端的數(shù)據(jù)變化示意圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于處理斷層數(shù)據(jù)的方法的流程圖;圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于處理斷層數(shù)據(jù)的方法的流程圖;圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的一次下載的斷層數(shù)據(jù)能填滿斷層區(qū)間的示意圖;圖7示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的一次下載的斷層數(shù)據(jù)不能填滿斷層區(qū)間的不意圖;圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于處理斷層數(shù)據(jù)的裝置的結(jié)構(gòu)圖;圖9示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于處理斷層數(shù)據(jù)的裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。在本發(fā)明的方案中,在每次下載新數(shù)據(jù)的過程中維護(hù)數(shù)據(jù)的顯示標(biāo)記并記錄斷層區(qū)間,之后在需要下載斷層數(shù)據(jù)時(shí),根據(jù)所記錄的斷層區(qū)間請(qǐng)求相應(yīng)的斷層數(shù)據(jù),并維護(hù)數(shù)據(jù)的顯示標(biāo)記,使得一直顯示的都是最新連續(xù)的數(shù)據(jù)。以下分為兩大部分對(duì)發(fā)明的技術(shù)方案進(jìn)行說明請(qǐng)求新數(shù)據(jù)和請(qǐng)求斷層數(shù)據(jù)。一請(qǐng)求新數(shù)據(jù)圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種新數(shù)據(jù)下載方法的流程圖。如圖1所示,該方法包括步驟S110,向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,該客戶端向服務(wù)器發(fā)送的下載新數(shù)據(jù)的請(qǐng)求中包括請(qǐng)求下載的新數(shù)據(jù)條數(shù),和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)。這樣,服務(wù)器端認(rèn)為客戶端所請(qǐng)求的數(shù)據(jù)是從服務(wù)器端當(dāng)前最新的一條數(shù)據(jù)到所述請(qǐng)求中包含的數(shù)據(jù)標(biāo)識(shí)為止的數(shù)據(jù),且請(qǐng)求的數(shù)據(jù)條數(shù)為所述請(qǐng)求中的包含的條數(shù)。這里,“新”和“舊”比較的是數(shù)據(jù)的產(chǎn)生時(shí)間,“新”為產(chǎn)生時(shí)間在后的數(shù)據(jù),“舊”為產(chǎn)生時(shí)間在先的數(shù)據(jù)。步驟S120,判斷服務(wù)器返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)銜接,如果是執(zhí)行步驟S130,如果否執(zhí)行步驟S140。在本發(fā)明的一個(gè)實(shí)施例中,在服務(wù)器回的新數(shù)據(jù)的條數(shù)小于請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為銜接,在服務(wù)器返回的新數(shù)據(jù)的條數(shù)大于或等于請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為不銜接。這是因?yàn)榉?wù)器端以客戶端發(fā)送的下載新數(shù)據(jù)的請(qǐng)求中包含的請(qǐng)求下載的數(shù)據(jù)條數(shù),和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)為返回?cái)?shù)據(jù)的依據(jù)的結(jié)果。以數(shù)據(jù)的標(biāo)識(shí)依照其產(chǎn)生時(shí)間的先后順序依次遞增為例客戶端已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)為1000,當(dāng)前請(qǐng)求20條數(shù)據(jù)。如果服務(wù)器端接收到客戶端的請(qǐng)求時(shí),服務(wù)器端的最新一條數(shù)據(jù)的標(biāo)識(shí)已到1050,則服務(wù)器會(huì)向客戶端返回標(biāo)識(shí)為103f 1050的20條數(shù)據(jù),客戶端會(huì)判斷為不銜接。如果服務(wù)器端接收到客戶端的請(qǐng)求時(shí),月艮務(wù)器端的最新一條數(shù)據(jù)的標(biāo)識(shí)已到1015,則服務(wù)器會(huì)向客戶端返回標(biāo)識(shí)為IOOf 1015的15條數(shù)據(jù),客戶端會(huì)判斷為銜接。步驟S130,將服務(wù)器返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將該返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。執(zhí)行步驟S150。步驟S140,將數(shù)據(jù)庫(kù)中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將服務(wù)器返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將服務(wù)器返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。執(zhí)行步驟S150。步驟S150,只顯示數(shù)據(jù)庫(kù)中的顯示標(biāo)記為有效的數(shù)據(jù)。圖1所示的技術(shù)方案中,在每次請(qǐng)求到新數(shù)據(jù)后都判斷新數(shù)據(jù)和已有的數(shù)據(jù)是否銜接,當(dāng)不銜接時(shí)則說明數(shù)據(jù)產(chǎn)生了斷層,通過設(shè)置和維護(hù)數(shù)據(jù)的顯示標(biāo)記,并在顯示時(shí)只顯示最新的連續(xù)的數(shù)據(jù),這樣用戶看到數(shù)據(jù)是連續(xù)的數(shù)據(jù),其中不存在斷層數(shù)據(jù),由此解決了用戶不能獲知所顯示的數(shù)據(jù)中是否存在斷層數(shù)據(jù)的問題。圖1所示的方法還可以在步驟S120中判斷為不銜接時(shí),進(jìn)一步將與不銜接的斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間保存到所維護(hù)的斷層區(qū)間集合中。具體為用服務(wù)器返回的新數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)組成一個(gè)表示斷層區(qū)間的數(shù)組,并將該數(shù)組保存到表示斷層區(qū)間集合的數(shù)組集合中。例如,以前述的客戶端已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)為1000,當(dāng)前請(qǐng)求20條數(shù)據(jù),服務(wù)器端接收到客戶端的請(qǐng)求時(shí),服務(wù)器端的最新一條數(shù)據(jù)的標(biāo)識(shí)已到1050,服務(wù)器向客戶端返回標(biāo)識(shí)為1031 1050的20條數(shù)據(jù)為例,該不銜接的斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間為數(shù)組為[1031,1000]。斷層區(qū)間[1031,1000]的兩個(gè)端點(diǎn)數(shù)據(jù)1000和1031不包括在斷層數(shù)據(jù)內(nèi),即對(duì)應(yīng)的斷層數(shù)據(jù)為1001 1030。為使本發(fā)明的技術(shù)方案更加清楚,以下對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)說明。圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)下載方法的流程圖。圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)下載過程中客戶端的數(shù)據(jù)變化示意圖。以下結(jié)合圖3對(duì)圖2所示的方法進(jìn)行說明,如圖2所示,客戶端請(qǐng)求一次新數(shù)據(jù)的流程包括步驟S202,客戶端向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求。在本發(fā)明的一個(gè)實(shí)施例中,該客戶端向服務(wù)器發(fā)送的下載新數(shù)據(jù)的請(qǐng)求中包括請(qǐng)求下載的新數(shù)據(jù)條數(shù),和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)。首先,客戶端需確定要“請(qǐng)求下載的新數(shù)據(jù)條數(shù)”,如一般情況下為20條。此外,客戶端還需要獲取已有數(shù)據(jù)中(即已下載到客戶端數(shù)據(jù)庫(kù)中的)的最新一條數(shù)據(jù)的標(biāo)識(shí),如圖3中的線條310。將上述“請(qǐng)求下載的數(shù)據(jù)條數(shù)”和“已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”存為一個(gè)變量備用。然后,客戶端將“請(qǐng)求下載的數(shù)據(jù)條數(shù)”和“已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”拼接成一個(gè)URL,向服務(wù)器請(qǐng)求下載更新的數(shù)據(jù)。步驟S204,客戶端接收服務(wù)器返回的新數(shù)據(jù)。在這里,服務(wù)器會(huì)根據(jù)“已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”來判斷應(yīng)返回多少條數(shù)據(jù),以及返回哪些數(shù)據(jù)。通常情況下,“已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”在服務(wù)器上的表現(xiàn)形式為“請(qǐng)求到該數(shù)據(jù)標(biāo)識(shí)為止”(如圖3中線條310),也即,獲取數(shù)據(jù)的范圍的區(qū)間是“正無窮到已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”,公式為(⑴,已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)),其范圍內(nèi)不包括該已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)所指定的數(shù)據(jù)。同時(shí),“請(qǐng)求下載的數(shù)據(jù)條數(shù)”也將作為一種條件限制,即服務(wù)器端“返回的數(shù)據(jù)條數(shù)”要小于或者等于該限制。最終,服務(wù)器端的返回?cái)?shù)據(jù)的條件為一、返回?cái)?shù)據(jù)的條數(shù)要小于或者等于“請(qǐng)求下載的數(shù)據(jù)條數(shù)”;二、獲取數(shù)據(jù)的范圍是(⑴,已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)),兩條件成“與”的關(guān)系。步驟S206,客戶端判斷服務(wù)器返回的新數(shù)據(jù)條數(shù)是否小于或等于0,是則執(zhí)行步驟S208,否則執(zhí)行步驟S210。步驟S208,如果服務(wù)器返回的新數(shù)據(jù)條數(shù)小于或者等于0,則表示客戶端中最新的數(shù)據(jù)標(biāo)識(shí)已經(jīng)是服務(wù)器端的最新數(shù)據(jù)標(biāo)識(shí)了,即客戶端的數(shù)據(jù)已是最新,服務(wù)器端沒有更新的數(shù)據(jù),客戶端向用戶提示數(shù)據(jù)庫(kù)中的最新數(shù)據(jù)即為服務(wù)器上的最新數(shù)據(jù),無需再請(qǐng)求,傳輸過程終止。步驟S210,如果服務(wù)器返回的新數(shù)據(jù)條數(shù)大于0,則表示服務(wù)器端已有比客戶端的最新數(shù)據(jù)還要新的數(shù)據(jù),因此繼續(xù)判斷服務(wù)器返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)銜接,具體為判斷服務(wù)器返回的新數(shù)據(jù)條數(shù)是否小于所請(qǐng)求下載的新數(shù)據(jù)條數(shù),是則執(zhí)行步驟S212,否則執(zhí)行步驟S214。步驟S212,如果服務(wù)器返回的新數(shù)據(jù)條數(shù)小于所請(qǐng)求下載的新數(shù)據(jù)條數(shù),則表示服務(wù)器返回的數(shù)據(jù)與客戶端本地的數(shù)據(jù)能夠銜接,客戶端將服務(wù)器返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將服務(wù)器此次返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。例如,在本發(fā)明的一個(gè)實(shí)施例中,用一條INSERT的SQL語句即可實(shí)現(xiàn)將服務(wù)器返回的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。結(jié)束流程。步驟S214,如果服務(wù)器返回的新數(shù)據(jù)條數(shù)大于或等于所請(qǐng)求下載的新數(shù)據(jù)條數(shù),則表示服務(wù)器返回的新數(shù)據(jù)與客戶端本地的數(shù)據(jù)不能夠銜接,存在斷層數(shù)據(jù),則客戶端將于該斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間保存到所維護(hù)的斷層區(qū)間集合中。在本發(fā)明的一個(gè)實(shí)施例中,客戶端首先將服務(wù)器返回的數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)記錄下來,并保存為一個(gè)變量,在本實(shí)施例中,可稱為“服務(wù)器返回?cái)?shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)”,如圖3中線條320所示。然后,客戶端將“已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”,如圖3中的線條310所示,保存為一個(gè)變量,備用。再然后,從數(shù)據(jù)庫(kù)中取出“斷層的區(qū)間集合”(如圖3中,有兩處斷層區(qū)間分別標(biāo)記為331和332,則這兩個(gè)合起來就是“斷層的區(qū)間集合”)。“斷層區(qū)間集合”主要用來記錄每個(gè)斷層的范圍區(qū)間,這些斷層都還未下載到客戶端中,但又要在客戶端需要時(shí)能夠向服務(wù)器請(qǐng)求。而取出“斷層區(qū)間集合”的目的是要在該集合中添加新的斷層區(qū)間。在本發(fā)明的一個(gè)實(shí)施例中,采用JAVA類庫(kù)中的數(shù)組表ArrayList來實(shí)現(xiàn)斷層區(qū)間集合。而具體到Android客戶端中的做法為,通過SQLite語句將斷層區(qū)間集合取出。由于取出來的是Bytes類型(也可用字符串描述斷層區(qū)間),客戶端會(huì)通過反序列化技術(shù)(de-serialize),也即 Android 的 ObjectlnputStream 類的 readObject 方法,將該記錄轉(zhuǎn)化為一個(gè)ArrayList對(duì)象。而ArrayList當(dāng)中,每一項(xiàng)都由Integer的一維數(shù)組構(gòu)成,每個(gè)數(shù)組有兩個(gè)元素,分別用來表示該斷層區(qū)間的兩個(gè)邊界??蛻舳艘龅氖菍⑾惹疤岬降摹胺?wù)器返回的數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)”和“已有數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”作為斷層區(qū)間的兩個(gè)邊界,分別填入新的Integer的一維數(shù)組中,然后將其添加到ArrayList對(duì)象中,最后,再將其序列化(serialize)為一個(gè)Bytes對(duì)象,也即Android的ObjectOutputStream的toByteArray (),最終,再將其存回?cái)?shù)據(jù)庫(kù)當(dāng)中。至此,斷層區(qū)間集合將多了一個(gè)新的斷層區(qū)間,圖3中的333為該新增加的斷層區(qū)間。步驟S216,將數(shù)據(jù)庫(kù)中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效。即將客戶端中已有的數(shù)據(jù)(如圖3中的數(shù)據(jù)段311)顯示標(biāo)記的值從I (顯示)改為0 (隱藏),以確保斷層333之前的已有數(shù)據(jù)段311不會(huì)顯示在客戶端的顯示界面中。具體做法為通過一條SQL語句,將所有已有數(shù)據(jù)的顯示標(biāo)記的值從I (顯示)改為0 (隱藏)。步驟S218,然后將服務(wù)器返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將服務(wù)器返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。客戶端會(huì)將之前由服務(wù)器端返回的那些數(shù)據(jù)333都插入到數(shù)據(jù)庫(kù)中,并將其顯示標(biāo)記的值置為I (顯示)。至此,整個(gè)傳輸過程結(jié)束。由上述可見,本發(fā)明的技術(shù)方案中,通過設(shè)置和維護(hù)顯示標(biāo)記,只顯示最新的連續(xù)的數(shù)據(jù),這樣用戶看到數(shù)據(jù)是連續(xù)的數(shù)據(jù),此外還記錄了斷層區(qū)間,這樣當(dāng)用戶想請(qǐng)求斷層數(shù)據(jù)時(shí),可以根據(jù)記錄的斷層區(qū)間請(qǐng)求相應(yīng)的斷層數(shù)據(jù)。二請(qǐng)求斷層數(shù)據(jù)圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于處理斷層數(shù)據(jù)的方法的流程圖。如圖4所示,該方法包括步驟S410,向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù)。其中,根據(jù)前述的請(qǐng)求新數(shù)據(jù)的過程,數(shù)據(jù)庫(kù)中保存有已下載的數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效,且顯示標(biāo)記為有效的數(shù)據(jù)能夠被顯示。在本發(fā)明的一個(gè)實(shí)施例中,客戶端向服務(wù)器發(fā)送的斷層數(shù)據(jù)下載請(qǐng)求包括數(shù)據(jù)庫(kù)中的最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)。具體來說,遍歷數(shù)據(jù)庫(kù)中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。其中,斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。步驟S420,判斷服務(wù)器返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間,是則執(zhí)行步驟S430,否則執(zhí)行步驟S440。在本發(fā)明的一個(gè)實(shí)施例中,在服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)大于O且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。步驟S430,將服務(wù)器返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)中刪除所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。步驟S440,將服務(wù)器返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。這樣,通過圖4所示的方法,可以根據(jù)所記錄的斷層區(qū)間獲取斷層數(shù)據(jù)。重復(fù)圖4所示的方法,可以從最新連續(xù)的數(shù)據(jù)開始依次地獲取斷層數(shù)據(jù),填補(bǔ)斷層區(qū)間,直至將所有的斷層區(qū)間填補(bǔ)完。觸發(fā)一次斷層數(shù)據(jù)下載的流程的條件一般為用戶看到“最新連續(xù)的數(shù)據(jù)中的最舊一條數(shù)據(jù)”(可以想象為,在沒有網(wǎng)絡(luò)環(huán)境的情況下,用戶可以一直閱覽這些連續(xù)的數(shù)據(jù),直到觸及到最舊的一條,之后或許開始出現(xiàn)斷層,或許沒有更舊的數(shù)據(jù))。這時(shí),為了保證舊的數(shù)據(jù)能夠下載并讓用戶看到,需要向服務(wù)器請(qǐng)求下載斷層數(shù)據(jù)。具體過程如圖5所示。圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于處理斷層數(shù)據(jù)的方法的流程圖。圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的一次下載的斷層數(shù)據(jù)能填滿斷層區(qū)間的示意圖。圖7示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的一次下載的斷層數(shù)據(jù)不能填滿斷層區(qū)間的示意圖。以下結(jié)合圖6和圖7對(duì)圖5所示的用于處理斷層數(shù)據(jù)的方法進(jìn)行說明。如圖5所示,客戶端請(qǐng)求一次斷層數(shù)據(jù)的流程包括步驟S502,客戶端向服務(wù)器發(fā)送下載斷層數(shù)據(jù)的請(qǐng)求。在本發(fā)明的一個(gè)實(shí)施例中,客戶端向服務(wù)器發(fā)送的斷層數(shù)據(jù)下載請(qǐng)求包括數(shù)據(jù)庫(kù)中的最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)。
例如參見圖6 :首先,客戶端需要知道數(shù)據(jù)庫(kù)中的最新連續(xù)數(shù)據(jù)644中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí),如圖6中的線條620,將其存為一個(gè)變量備用。具體地可以通過SQL語句,獲取所有的顯示標(biāo)記為I (顯示)且表示號(hào)碼為最小的那條數(shù)據(jù)的標(biāo)識(shí)。同時(shí),客戶端還需要了解一共要請(qǐng)求的斷層數(shù)據(jù)條數(shù),在這里,假設(shè)和獲取新數(shù)據(jù)一樣,一次性獲取不超過20條數(shù)據(jù),然后,將“請(qǐng)求下載的斷層數(shù)據(jù)條數(shù)”保存為一個(gè)變量備用。緊接著,客戶端需要獲取在“數(shù)據(jù)庫(kù)中的最新連續(xù)數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)”的之后,緊接著的“斷層區(qū)間”,以下簡(jiǎn)稱為“緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間”,如圖6中的斷層區(qū)間655,也即線條620到線條610之間的部分。仍以Android系統(tǒng)為例,首先通過SQLite語句將斷層集合取出,將其反序列化(de-serialize),再將該記錄轉(zhuǎn)化為一個(gè)ArrayList對(duì)象。從ArrayList中的第一個(gè)元素(最后添加的元素),該元素為一個(gè)Integer的一維數(shù)組,表示一個(gè)“斷層區(qū)間”。然后,讀取該“斷層區(qū)間”的兩個(gè)邊界值,它們分別位于該數(shù)組的第一個(gè)元素和第二個(gè)元素。這里仍以“文章標(biāo)識(shí)以遞減順序從新到舊”的排列為例,第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。這樣,客戶端便獲得了請(qǐng)求斷層數(shù)據(jù)時(shí)的必要參數(shù)“最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”、“請(qǐng)求下載的斷層數(shù)據(jù)條數(shù)”,以及“緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”,將以上三個(gè)參數(shù)拼接成一個(gè)URL,向服務(wù)器發(fā)起請(qǐng)求,等待返回結(jié)果。步驟S504,客戶端接收服務(wù)器返回的斷層數(shù)據(jù)。服務(wù)器會(huì)根據(jù)“最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”和“緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”,共同判斷應(yīng)返回多少條數(shù)據(jù),以及返回哪些數(shù)據(jù)。通常情況下,“最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”在服務(wù)器上的表現(xiàn)形式為“自該條數(shù)據(jù)標(biāo)識(shí)開始”,而“緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”在服務(wù)器上的表現(xiàn)形式為“請(qǐng)求到該臺(tái)數(shù)數(shù)據(jù)標(biāo)識(shí)為止”,也即獲取數(shù)據(jù)的范圍的區(qū)間是圖6中的斷層區(qū)間655,且范圍內(nèi)不包括該起止標(biāo)識(shí)所指定的數(shù)據(jù)。同時(shí),“請(qǐng)求下載的斷層數(shù)據(jù)條數(shù)”也將作為一種條件限制,需要服務(wù)器端“返回的斷層數(shù)據(jù)條數(shù)”要小于或者等于該限制。最終,服務(wù)器端的返回?cái)鄬訑?shù)據(jù)的依據(jù)為
一、返回的斷層數(shù)據(jù)條數(shù)要小于或者等于請(qǐng)求下載的斷層數(shù)據(jù)條數(shù);二、獲取數(shù)據(jù)的范圍是從“最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”開始到“緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”,兩者成“與”的關(guān)系。下面將服務(wù)器端返回的斷層數(shù)據(jù)標(biāo)識(shí)為666。步驟S506,判斷服務(wù)器返回的斷層數(shù)據(jù)條數(shù)是否小于或等于0,是則執(zhí)行步驟S508,否則執(zhí)行步驟S510。步驟S508,客戶端向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù),結(jié)束流程。步驟S510,判斷服務(wù)器返回的斷層數(shù)據(jù)條數(shù)是否小于所請(qǐng)求的斷層數(shù)據(jù)條數(shù),是則執(zhí)行步驟S512,否則執(zhí)行步驟S518。本步驟中是判斷服務(wù)器當(dāng)前返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。具體為如果服務(wù)器返回的斷層數(shù)據(jù)小于所請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),則表示斷層可被填滿,如圖6所示,服務(wù)器返回的斷層數(shù)據(jù)666能夠填滿斷層區(qū)間655,斷層區(qū)間可以直接從斷層區(qū)間集合刪除。反之,如果服務(wù)器返回的斷層數(shù)據(jù)大于或等于所請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),則表示斷層不可被填滿,如圖7所示,服務(wù)器返回的斷層數(shù)據(jù)666不能夠填滿斷層區(qū)間655,需要縮小該斷層區(qū)間的范圍。步驟S512,將服務(wù)器返回的斷層數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中,并設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效。參見圖6,將服務(wù)器返回的斷層數(shù)據(jù)666插入到數(shù)據(jù)庫(kù)中,正好能夠填滿斷層區(qū)間655。并將插入的斷層數(shù)據(jù)666的顯示標(biāo)記設(shè)置為有效(設(shè)置為1,顯示),即新下載的數(shù)據(jù)需
要顯示。步驟S514,將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效。在圖6中,斷層區(qū)間655和其下一個(gè)斷層區(qū)間677之間的已下載數(shù)據(jù)為數(shù)據(jù)塊633,即將數(shù)據(jù)塊633中數(shù)據(jù)的顯示標(biāo)記置為有效,這樣數(shù)據(jù)塊633、新下載的斷層數(shù)據(jù)666和原連續(xù)數(shù)據(jù)644組成了新連續(xù)數(shù)據(jù),并且都被顯示。具體來說客戶端需讀取之前保存的“緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)”和“斷層區(qū)間所在ArrayList的位置”(以下簡(jiǎn)稱為“斷層位置”),后者主要用來在列表中準(zhǔn)確的定位到那個(gè)斷層區(qū)間上。然后,客戶端通過ArrayList. get (斷層位置+1),來獲取在該當(dāng)前斷層區(qū)間655之后的下一個(gè)斷層區(qū)間677。然后,獲取斷層區(qū)間677對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),并將其保存為一個(gè)變量,備用。最后,通過SQL語句,客戶端將“斷層區(qū)間655對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)”和“下一個(gè)區(qū)間677對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)”之間的數(shù)據(jù)的顯示標(biāo)記值,從O (隱藏)修改為I (顯示)。這樣,斷層區(qū)間將被填滿,斷層區(qū)間之前已有的文章將會(huì)銜接在斷層數(shù)據(jù)后面,直到下一個(gè)斷層為止。步驟S516,從數(shù)據(jù)庫(kù)中刪除該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。結(jié)束流程。具體來說,在“ArrayList對(duì)象”中,刪除已經(jīng)被填充完的斷層區(qū)間。步驟S518,將服務(wù)器返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,并設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效。參見圖7,將服務(wù)器返回的斷層數(shù)據(jù)666插入到數(shù)據(jù)庫(kù)中,還不能夠填滿斷層區(qū)間655。將插入的斷層數(shù)據(jù)666的顯示標(biāo)記設(shè)置為有效(設(shè)置為1,顯示),即新下載的數(shù)據(jù)需要顯示。此時(shí)的最新的連續(xù)數(shù)據(jù)由新下載的斷層數(shù)據(jù)666和原數(shù)據(jù)644組成。步驟S520,將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。結(jié)束流程。參見圖7,在下載斷層數(shù)據(jù)之前,最新連續(xù)數(shù)據(jù)為644,緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間為655。在下載斷層數(shù)據(jù)之后,最新連續(xù)數(shù)據(jù)為644和666的組合,緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間為688。這樣可顯示的范圍擴(kuò)大了,緊鄰的斷層區(qū)間縮小了。具體來說,在修改完緊鄰的斷層區(qū)間的邊界值后,將該斷層區(qū)間放回ArrayList。在Android操作系統(tǒng)中,由于采用的是Java編程語言,而緩存的數(shù)組實(shí)為指針類型,也即“緊鄰的斷層區(qū)間”對(duì)象和ArrayList內(nèi)的對(duì)象是關(guān)聯(lián)的,故不需要做其它的操作。而在其它語言中,則可能還需要將其放回到ArrayList,并需要覆蓋原來的對(duì)象。至此,傳輸過程結(jié)束。重復(fù)圖5所示的流程可以依次獲取斷層數(shù)據(jù),直到所有的斷層區(qū)間都被填滿。
圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于處理斷層數(shù)據(jù)的裝置的結(jié)構(gòu)圖。如圖8所示,該用于處理斷層數(shù)據(jù)的裝置800包括數(shù)據(jù)庫(kù)單元801、顯示單元802、斷層數(shù)據(jù)下載單元803、第一數(shù)據(jù)庫(kù)維護(hù)單元804、第一斷層區(qū)間維護(hù)單元805和提示單元806。數(shù)據(jù)庫(kù)單元801,適于保存數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中,最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效。顯示單元802,適于顯示數(shù)據(jù)庫(kù)單元801中的顯示標(biāo)記為有效的數(shù)據(jù)。斷層數(shù)據(jù)下載單元803,適于向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)單元801中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù)。第一數(shù)據(jù)庫(kù)維護(hù)單元804,適于判斷服務(wù)器返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果填滿,將服務(wù)器返回的斷層數(shù)據(jù)插入到數(shù)據(jù)庫(kù)單元801中,設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)單元801中刪除該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果未填滿,將服務(wù)器返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)單元801中,設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。在本發(fā)明的一個(gè)實(shí)施例中,斷層數(shù)據(jù)下載單元803向服務(wù)器發(fā)送的下載請(qǐng)求包括最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)。第一數(shù)據(jù)庫(kù)維護(hù)單元804,進(jìn)一步適于在服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)大于O且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。第一斷層區(qū)間維護(hù)單元805,適于遍歷數(shù)據(jù)庫(kù)單元801中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)庫(kù)單元801保存的斷層區(qū)間集合中的斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)庫(kù)單元801保存的斷層區(qū)間集合是由JAVA類庫(kù)中的數(shù)組表實(shí)現(xiàn)的。顯示單元806,適于在斷層數(shù)據(jù)下載單元803接收到的服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)為O時(shí),向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù)。圖9示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于處理斷層數(shù)據(jù)的裝置的結(jié)構(gòu)圖。如圖9所示,該用于處理斷層數(shù)據(jù)的裝置900包括數(shù)據(jù)庫(kù)單元901、顯示單元902、斷層數(shù)據(jù)下載單元903、第一數(shù)據(jù)庫(kù)維護(hù)單元904、第一斷層區(qū)間維護(hù)單元905和提示單元906。此外,還包括新數(shù)據(jù)下載單元907、第二數(shù)據(jù)庫(kù)維護(hù)單元908和第二斷層區(qū)間維護(hù)單元909。新數(shù)據(jù)下載單元907,適于向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,新數(shù)據(jù)下載單元907向服務(wù)器發(fā)送的下載新數(shù)據(jù)的請(qǐng)求中包括請(qǐng)求下載的新數(shù)據(jù)條數(shù),和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)。第二數(shù)據(jù)庫(kù)維護(hù)單元908,適于判斷服務(wù)器返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)單元901中的已有數(shù)據(jù)銜接,如果銜接,將服務(wù)器返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元901中,并將服務(wù)器返回的數(shù)據(jù)的顯示標(biāo)記置為有效,如果不銜接,將數(shù)據(jù)庫(kù)單元901中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將服務(wù)器返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元901中,并將服務(wù)器返回的該新數(shù)據(jù)的顯示標(biāo)記置為有效。數(shù)據(jù)庫(kù)單元901,適于保存數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中,最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效。顯示單元902,適于顯示數(shù)據(jù)庫(kù)單元901中的顯示標(biāo)記為有效的數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,新數(shù)據(jù)下載單元907向服務(wù)器發(fā)送的下載新數(shù)據(jù)的請(qǐng)求中包含請(qǐng)求下載的數(shù)據(jù)條數(shù)和已下載到數(shù)據(jù)庫(kù)單元901中的最新一條數(shù)據(jù)的標(biāo)識(shí)。月艮務(wù)器端的返回?cái)?shù)據(jù)的條件為一、返回?cái)?shù)據(jù)數(shù)要小于或者等于“請(qǐng)求下載的新數(shù)據(jù)條數(shù)”;
二、獲取數(shù)據(jù)的范圍是(①,已下載到數(shù)據(jù)庫(kù)單元901中的最新一條數(shù)據(jù)的標(biāo)識(shí)),兩條件成“與”的關(guān)系。則第二數(shù)據(jù)庫(kù)維護(hù)單元908,適于在服務(wù)器返回的新數(shù)據(jù)的條數(shù)小于請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為銜接,在服務(wù)器返回的新數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為不銜接。第二斷層區(qū)間維護(hù)單元909,適于在服務(wù)器返回的新數(shù)據(jù)與數(shù)據(jù)庫(kù)單元901中的已有數(shù)據(jù)不銜接時(shí),將與不銜接的斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間保存在數(shù)據(jù)庫(kù)單元901中維護(hù)的斷層區(qū)間集合中。具體來說,第二斷層區(qū)間維護(hù)單元909用服務(wù)器返回的數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)和已下載到數(shù)據(jù)庫(kù)單元901中的最新一條數(shù)據(jù)的標(biāo)識(shí)組成一個(gè)表示斷層區(qū)間的數(shù)組,并該數(shù)組保存到數(shù)據(jù)庫(kù)單元901中的表示斷層區(qū)間集合的數(shù)組集合中。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)庫(kù)單元901中的斷層區(qū)間集合是由JAVA類庫(kù)中的數(shù)組表實(shí)現(xiàn)的。提示單元906,適于在服務(wù)器返回給新數(shù)據(jù)下載單元907的新數(shù)據(jù)的條數(shù)為O時(shí),向用戶提示數(shù)據(jù)庫(kù)中的最新數(shù)據(jù)即為服務(wù)器上的最新數(shù)據(jù)。斷層數(shù)據(jù)下載單元903,適于向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)單元901中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù)。第一數(shù)據(jù)庫(kù)維護(hù)單元904,適于判斷服務(wù)器返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果填滿,將服務(wù)器返回的斷層數(shù)據(jù)插入到數(shù)據(jù)庫(kù)單元901中,設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)單元901中刪除該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果未填滿,將服務(wù)器返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)單元901中,設(shè)置服務(wù)器返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將該緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。在本發(fā)明的一個(gè)實(shí)施例中,斷層數(shù)據(jù)下載單元903向服務(wù)器發(fā)送的下載請(qǐng)求包括最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)。第一數(shù)據(jù)庫(kù)維護(hù)單元904,進(jìn)一步適于在服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)大于O且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。第一斷層區(qū)間維護(hù)單元905,適于遍歷數(shù)據(jù)庫(kù)單元901中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)庫(kù)單元901保存的斷層區(qū)間集合中的斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。顯示單元906,適于在斷層數(shù)據(jù)下載單元903接收到的服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)為O時(shí),向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù)。綜上所述,在本發(fā)明的這種用于處理斷層數(shù)據(jù)的裝置中,通過設(shè)置和維護(hù)顯示標(biāo)記,只顯示最新的連續(xù)的數(shù)據(jù),這樣用戶看到數(shù)據(jù)是連續(xù)的數(shù)據(jù),此外還記錄了斷層區(qū)間,并能夠根據(jù)所記錄的斷層區(qū)間集合,從服務(wù)器獲取斷層數(shù)據(jù)并填補(bǔ)到對(duì)應(yīng)的斷層區(qū)間中,方便了用戶的使用。需要說明的是在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP )來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的用于處理斷層數(shù)據(jù)的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種用于處理斷層數(shù)據(jù)的裝置,該裝置包括數(shù)據(jù)庫(kù)單元、顯示單元、斷層數(shù)據(jù)下載單元和第一數(shù)據(jù)庫(kù)維護(hù)單元以及新數(shù)據(jù)下載單元和第二數(shù)據(jù)庫(kù)維護(hù)單元; 所述數(shù)據(jù)庫(kù)單元,適于保存數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中,最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效; 所述顯示單元,適于顯示所述數(shù)據(jù)庫(kù)單元中的顯示標(biāo)記為有效的數(shù)據(jù); 所述斷層數(shù)據(jù)下載單元,適于向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)單元中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù); 所述第一數(shù)據(jù)庫(kù)維護(hù)單元,適于判斷所述返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)單元中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)單元中刪除所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間;如果未填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)單元中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí); 所述新數(shù)據(jù)下載單元,適于向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù); 所述第二數(shù)據(jù)庫(kù)維護(hù)單元,適于判斷所述返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)單元中的已有數(shù)據(jù)銜接,如果銜接,將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元中,并將所述返回的數(shù)據(jù)的顯示標(biāo)記置為有效,如果不銜接,將數(shù)據(jù)庫(kù)單元中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。
2.如權(quán)利要求1所述的裝置,其中, 所述斷層數(shù)據(jù)下載單元向服務(wù)器發(fā)送的下載請(qǐng)求包括最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí); 所述第一數(shù)據(jù)庫(kù)維護(hù)單元,進(jìn)一步適于在所述返回的斷層數(shù)據(jù)的條數(shù)大于O且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在所述返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。
3.如權(quán)利要求2所述的裝置,其中,該裝置進(jìn)一步包括第一斷層區(qū)間維護(hù)單元; 所述第一斷層區(qū)間維護(hù)單元,適于遍歷數(shù)據(jù)庫(kù)單元中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。
4.如權(quán)利要求1所述的裝置,其中, 所述數(shù)據(jù)庫(kù)單元保存的斷層區(qū)間集合中的所述斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。
5.如權(quán)利要求4所述的裝置,其中,所述數(shù)據(jù)庫(kù)單元保存的所述斷層區(qū)間集合是由JAVA類庫(kù)中的數(shù)組表實(shí)現(xiàn)的。
6.如權(quán)利要求1所述的裝置,其中,該裝置進(jìn)一步包括顯示單元, 所述顯示單元,適于在所述斷層數(shù)據(jù)下載單元接收到的服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)為O時(shí),向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù)。
7.如權(quán)利要求1至6中任一項(xiàng)所述的裝置,其特征在于, 所述新數(shù)據(jù)下載單元向所述服務(wù)器發(fā)送的所述下載新數(shù)據(jù)的請(qǐng)求中包含請(qǐng)求下載的新數(shù)據(jù)條數(shù)和已下載到數(shù)據(jù)庫(kù)單元中的最新一條數(shù)據(jù)的標(biāo)識(shí); 所述第二數(shù)據(jù)庫(kù)維護(hù)單元,進(jìn)一步適于在所述返回的新數(shù)據(jù)的條數(shù)小于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為銜接,在所述返回的新數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為不銜接。
8.如權(quán)利要求1至6中任一項(xiàng)所述的裝置,其中,該裝置進(jìn)一步包括第二斷層區(qū)間維護(hù)單元; 所述第二斷層區(qū)間維護(hù)單元,適于用所述返回的新數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)和所述已下載到庫(kù)中數(shù)據(jù)庫(kù)單元中的最新一條數(shù)據(jù)的標(biāo)識(shí)組成一個(gè)表示斷層區(qū)間的數(shù)組,并該數(shù)組保存到數(shù)據(jù)庫(kù)單元中的表示斷層區(qū)間集合的數(shù)組集合中。
9.如權(quán)利要求1至6中任一項(xiàng)所述的裝置,其中, 所述提示單元,進(jìn)一步適于在所述新數(shù)據(jù)下載單元接收到的服務(wù)器返回的新數(shù)據(jù)的條數(shù)為O時(shí),向用戶提示數(shù)據(jù)庫(kù)單元中的最新數(shù)據(jù)即為服務(wù)器上的最新數(shù)據(jù)。
10.一種用于處理斷層數(shù)據(jù)的方法,該方法包括 向服務(wù)器發(fā)送請(qǐng)求緊鄰數(shù)據(jù)庫(kù)中最新連續(xù)數(shù)據(jù)的一定數(shù)量斷層數(shù)據(jù)的下載請(qǐng)求,接收服務(wù)器返回的斷層數(shù)據(jù);其中,所述數(shù)據(jù)庫(kù)中保存有已下載的數(shù)據(jù)、數(shù)據(jù)的顯示標(biāo)記以及由與斷層數(shù)據(jù)對(duì)應(yīng)的斷層區(qū)間組成的斷層區(qū)間集合,其中最新連續(xù)數(shù)據(jù)的顯示標(biāo)記為有效,其他數(shù)據(jù)的顯示標(biāo)記為無效,且顯示標(biāo)記為有效的數(shù)據(jù)能夠被顯示; 判斷所述返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間; 如果填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間及所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的下一個(gè)斷層區(qū)間之間的已下載數(shù)據(jù)的顯示標(biāo)記置為有效,以及從數(shù)據(jù)庫(kù)中刪除所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間; 如果未填滿,將所述返回的斷層數(shù)據(jù)插入到所述數(shù)據(jù)庫(kù)中,設(shè)置所述返回的斷層數(shù)據(jù)的顯示標(biāo)記為有效,并將所述緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間的表示該斷層區(qū)間中最新一條數(shù)據(jù)的標(biāo)識(shí),修改為所述返回的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí); 向服務(wù)器發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù); 判斷所述返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)銜接; 如果銜接,將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效; 如果不銜接,將數(shù)據(jù)庫(kù)中已有的顯示標(biāo)記為有效的數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。
11.如權(quán)利要求10所述的方法,其中, 所述下載請(qǐng)求包括最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)、請(qǐng)求下載的斷層數(shù)據(jù)條數(shù),以及緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí); 所述判斷所述返回的斷層數(shù)據(jù)是否填滿緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間包括在所述返回的斷層數(shù)據(jù)的條數(shù)大于O且小于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為填滿,在所述返回的斷層數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的斷層數(shù)據(jù)的條數(shù)時(shí)判斷為未填滿。
12.如權(quán)利要求11所述的方法,其中,在向服務(wù)器發(fā)送下載請(qǐng)求之前該方法進(jìn)一步包括 遍歷數(shù)據(jù)庫(kù)中的斷層區(qū)間集合,找到對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條閱讀數(shù)據(jù)的標(biāo)識(shí)與最新連續(xù)數(shù)據(jù)中的最舊一條閱讀數(shù)據(jù)的標(biāo)識(shí)緊鄰的斷層區(qū)間,該斷層區(qū)間為緊鄰最新連續(xù)數(shù)據(jù)的斷層區(qū)間。
13.如權(quán)利要求10所述的方法,其中, 所述斷層區(qū)間為一個(gè)包含兩個(gè)元素的數(shù)組,該數(shù)組中的第一個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最新一條數(shù)據(jù)的標(biāo)識(shí),第二個(gè)元素為該斷層區(qū)間所對(duì)應(yīng)的斷層數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)。
14.如權(quán)利要求13所述的方法,其中,該方法進(jìn)一步包括 采用JAVA類庫(kù)中的數(shù)組表來實(shí)現(xiàn)所述斷層區(qū)間集合。
15.如權(quán)利要求10所述的方法,其中,該方法進(jìn)一步包括 如果接收到的服務(wù)器返回的斷層數(shù)據(jù)的條數(shù)為0,向用戶提示服務(wù)器上沒有更舊的數(shù)據(jù)。
16.如權(quán)利要求10至15中任一項(xiàng)所述的方法,其中,所述下載新數(shù)據(jù)的請(qǐng)求中包括請(qǐng)求下載的新數(shù)據(jù)條數(shù),和已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí); 所述判斷所述返回的新數(shù)據(jù)是否能與數(shù)據(jù)庫(kù)中的已有數(shù)據(jù)銜接包括在所述返回的新數(shù)據(jù)的條數(shù)小于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為銜接,在所述返回的新數(shù)據(jù)的條數(shù)大于或等于所述請(qǐng)求下載的新數(shù)據(jù)條數(shù)時(shí)判斷為不銜接。
17.如權(quán)利要求10至15中任一項(xiàng)所述的方法,其中,該方法進(jìn)一步包括 如果不銜接,用所述返回的新數(shù)據(jù)中的最舊一條數(shù)據(jù)的標(biāo)識(shí)和所述已下載到數(shù)據(jù)庫(kù)中的最新一條數(shù)據(jù)的標(biāo)識(shí)組成一個(gè)表示斷層區(qū)間的數(shù)組,并該數(shù)組保存到表示斷層區(qū)間集合的數(shù)組集合中。
18.如權(quán)利要求10至15中任一項(xiàng)所述的方法,其中,該方法進(jìn)一步包括 如果接收到的服務(wù)器返回的新數(shù)據(jù)的條數(shù)為0,向用戶提示數(shù)據(jù)庫(kù)中的最新數(shù)據(jù)即為服務(wù)器上的最新數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種用于處理斷層數(shù)據(jù)的裝置和方法。所述裝置包括數(shù)據(jù)庫(kù)單元、顯示單元、斷層數(shù)據(jù)下載單元和第一數(shù)據(jù)庫(kù)維護(hù)單元以及新數(shù)據(jù)下載單元和第二數(shù)據(jù)庫(kù)維護(hù)單元;其中,新數(shù)據(jù)下載單元適于發(fā)送下載新數(shù)據(jù)的請(qǐng)求,接收服務(wù)器返回的新數(shù)據(jù);第二數(shù)據(jù)庫(kù)維護(hù)單元適于判斷新數(shù)據(jù)是否能與已有數(shù)據(jù)銜接,如果銜接,將新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元中,并將其顯示標(biāo)記置為有效,如果不銜接,將數(shù)據(jù)的顯示標(biāo)記都置為無效,然后將所述返回的新數(shù)據(jù)保存到數(shù)據(jù)庫(kù)單元中,并將所述返回的新數(shù)據(jù)的顯示標(biāo)記置為有效。本發(fā)明的技術(shù)方案可以從服務(wù)器獲取斷層數(shù)據(jù)并填補(bǔ)到對(duì)應(yīng)的斷層區(qū)間中,并且向用戶顯示的一直都是最新連續(xù)的數(shù)據(jù)。
文檔編號(hào)G06F17/30GK103064910SQ201210555559
公開日2013年4月24日 申請(qǐng)日期2012年12月19日 優(yōu)先權(quán)日2012年12月19日
發(fā)明者張炅軒, 范國(guó)峰 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司