一種數(shù)據(jù)傳輸方法及裝置的制造方法
【專利摘要】一種數(shù)據(jù)傳輸方法及裝置。本發(fā)明實施例公開了一種終端,所述終端包括:輸入器件,用于獲取用戶輸入的第一操作;第一外部通信接口,用于在所述輸入器件獲取所述第一操作時,向服務器發(fā)送第一ID請求消息,并接收所述服務器返回的所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù)ID;第一處理器,用于記錄所述第一外部通信接口接收到的排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;所述第一外部通信接口,還用于將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù);顯示器,用于顯示所述第一外部通信接口接收到的數(shù)據(jù);第一處理器,還用于記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
【專利說明】
一種數(shù)據(jù)傳輸方法及裝置
技術領域
[0001 ]本發(fā)明涉及數(shù)據(jù)業(yè)務領域,尤其涉及一種數(shù)據(jù)傳輸方法及裝置。
【背景技術】
[0002]用戶在手機、個人計算機、平板電腦等電子設備上登錄應用客戶端如微博后,會向對應的服務器發(fā)送數(shù)據(jù)請求如請求獲取關注頁,應用服務器收到該用戶的請求后,會將該用戶所關注的目標用戶產生的動態(tài)數(shù)據(jù)發(fā)送給應用客戶端,應用客戶端將這些數(shù)據(jù)顯示在電子設備的顯示屏上展示給用戶,供用戶瀏覽。
[0003]服務器接收到數(shù)據(jù)請求后,會對該用戶所關注的目標用戶產生的動態(tài)數(shù)據(jù)進行聚合,這些數(shù)據(jù)有很多,服務器并不能將用戶請求的全部數(shù)據(jù)發(fā)給應用客戶端,而是采用緩存機制將這些數(shù)據(jù)緩存在服務器的緩存區(qū),采用分頁拉取的方式將數(shù)據(jù)傳輸給應用客戶端。服務器會將最新的一頁數(shù)據(jù)發(fā)送給應用客戶端,在用戶刷新的時候將當前最新的一頁數(shù)據(jù)發(fā)送給客戶端,在用戶向上滑動到底端進行翻頁時,將下一頁數(shù)據(jù)發(fā)送給應用客戶端;這就要求服務器需要為用戶實時的記錄用戶的查看狀態(tài)即用戶已經獲取到哪條數(shù)據(jù),這樣就可以在用戶翻頁時為用戶提供該條數(shù)據(jù)接下來的下一頁數(shù)據(jù)。如果用戶一直活躍,那服務器為用戶建立的緩存一直存在,服務器可以對緩存進行查詢、添加、刪除。如果該用戶幾天后未登錄,則用戶的緩存就過期了,該用戶就會被標記為沉默用戶。
[0004]沉默用戶再次上線后,如果沉默用戶進行刷新操作,則服務器就會建立新的緩存,向應用客戶端發(fā)送最新的數(shù)據(jù),該新的緩存中加載的是最新的數(shù)據(jù);如果沉默用戶進行向下翻頁操作,由于沉默用戶的太久沒有登錄,該用戶的緩存已經過期被清除,服務器就要為用戶重建緩存,并且要將緩存還原到用戶上次的查看到的數(shù)據(jù),這也需要服務器為用戶實時的記錄用戶的查看狀態(tài)來保證用戶在不活躍一段時間后又突然活躍的時候,能夠還原用戶上次的查看狀態(tài)。
[0005]互聯(lián)網的沉默用戶、僵尸用戶占比在80%左右,有些用戶可能就活躍了一次兩次就不再活躍了,但是服務器仍然要為這些用戶再次活躍時的重建緩存來記錄用戶上次的查看狀態(tài),這部分用戶占比又比較高,大量浪費服務器資源。
【發(fā)明內容】
[0006]有鑒于此,本發(fā)明實施例期望提供一種數(shù)據(jù)傳輸方法及裝置,可以降低服務器資源的浪費。
[0007]為達到上述目的,本發(fā)明實施例的技術方案是這樣實現(xiàn)的:
[0008]—種終端,包括:
[0009]輸入器件,用于獲取用戶輸入的第一操作;
[0010]第一外部通信接口,用于在所述輸入器件獲取所述第一操作時,向服務器發(fā)送第一ID請求消息,并接收所述服務器返回的所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù)ID;
[0011]第一處理器,用于記錄所述第一外部通信接口接收到的排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;
[0012]所述第一外部通信接口,還用于將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù);
[0013]顯示器,用于顯示所述第一外部通信接口接收到的數(shù)據(jù);
[0014]第一處理器,還用于記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0015]上述方案中,所述輸入器件,還用于獲取用戶輸入的第二操作;
[0016]所述第一處理器,還用于在所述輸入器件獲取所述第二操作時,根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID;
[0017]所述第一外部通信接口,還用于將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù)。
[0018]上述方案中,所述第一外部通信接口,還用于在所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID為所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的情況下,在所述輸入器件獲取所述第二操作時,向服務器發(fā)送第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;接收所述服務器返回的排序在所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID之后的第二部分數(shù)據(jù)ID。
[0019]一種服務器,所述服務器包括:
[0020]第二外部通信接口,用于接收終端發(fā)送的第一ID請求消息;
[0021]第二處理器,用于按照預設規(guī)則,獲取所述第二外部通信接口接收到的所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù),確定排序后的第一部分數(shù)據(jù)對應的排序后的第一部分數(shù)據(jù)ID;
[0022]所述第二外部通信接口,還用于將所述第二處理器確定的所述排序后的第一部分數(shù)據(jù)ID發(fā)送給所述終端,接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID,將所述N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。
[0023]上述方案中,第二外部通信接口,還用于接收終端發(fā)送的第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;
[0024]所述第二處理器,還用于按照預設規(guī)則,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給終端。
[0025]一種數(shù)據(jù)傳輸方法,所述方法包括:
[0026]在獲取用戶輸入的第一操作時,向服務器發(fā)送第一ID請求消息,并接收所述服務器返回的所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù)ID;
[0027]記錄所述排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;
[0028]將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù);
[0029]顯示所述第一外部通信接口接收到的數(shù)據(jù);
[0030]記錄顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0031 ]上述方案中,所述方法還包括:
[0032]在獲取用戶輸入的第二操作時,根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID;
[0033]將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù)。
[0034]上述方案中,所述方法還包括:
[0035]在所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID為所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的情況下,在獲取所述第二操作時,向服務器發(fā)送第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;接收所述服務器返回的排序在所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID之后的第二部分數(shù)據(jù)ID。
[0036]一種數(shù)據(jù)傳輸方法,所述方法包括:
[0037]接收終端發(fā)送的第一ID請求消息;
[0038]按照預設規(guī)則,獲取所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù),確定排序后的第一部分數(shù)據(jù)對應的排序后的第一部分數(shù)據(jù)ID;
[0039]將所述排序后的第一部分數(shù)據(jù)ID發(fā)送給所述終端;
[0040]接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID;
[0041 ]將所述N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。
[0042]上述方案中,所述方法還包括:
[0043]接收終端發(fā)送的第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;
[0044]按照預設規(guī)則,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給終端。
[0045]本發(fā)明實施例提供了一種數(shù)據(jù)傳輸方法及終端,將分頁邏輯轉嫁給終端上,讓終端來分頁,在用戶刷新或者翻頁到APP中顯示的數(shù)據(jù)底部時,終端會傳遞last_read_p0st_id(就是所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID)到服務器,服務器將會根據(jù)last_read_p0St_id查詢一定數(shù)目的數(shù)據(jù)ID傳遞給終端;而后,終端只需要傳遞每次分頁的數(shù)據(jù)ID給服務器,服務器獲取每次分頁的數(shù)據(jù)ID對應的數(shù)據(jù),完成數(shù)據(jù)封裝再傳遞給終端顯示即可,服務器不需要去記錄該用戶查看分頁的狀態(tài),不需要關注分頁邏輯,降低了服務器資源的浪費。
[0046]另外,服務器通過分析用戶行為,統(tǒng)計用戶每次查看的數(shù)據(jù)數(shù)目,采用80/20原則,按輸出80%用戶都會查看到數(shù)據(jù)數(shù)目,可以避免一次性輸出太多的數(shù)據(jù)ID給終端,節(jié)省服務器和終端的資源。
【附圖說明】
[0047]圖1為實現(xiàn)本發(fā)明各個實施例的一個可選的移動終端的硬件結構示意圖;
[0048]圖2為如圖1所示的移動終端的無線通信系統(tǒng)示意圖;
[0049]圖3為本發(fā)明實施例一提供的一種終端的結構框圖;
[0050]圖4為本發(fā)明實施例提供的一種用戶進行刷新操作的示意圖;
[0051]圖5為本發(fā)明實施例提供的一種用戶進行翻頁操作的示意圖;
[0052]圖6為本發(fā)明實施例提供的一種服務器的結構框圖;
[0053]圖7為本發(fā)明實施例三提供的一種數(shù)據(jù)傳輸方法的流程示意圖;
[0054]圖8為本發(fā)明實施例四提供的一種數(shù)據(jù)傳輸方法的流程示意圖。
【具體實施方式】
[0055]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。
[0056]現(xiàn)在將參考附圖1來描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
[0057]移動終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數(shù)字廣播接收器、個人數(shù)字助理(PDA)、平板電腦(PAD)、便攜式多媒體播放器(PMP)、導航裝置等等的移動終端以及諸如數(shù)字TV、臺式計算機等等的固定終端。下面,假設終端是移動終端。然而,本領域技術人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實施方式的構造也能夠應用于固定類型的終端。
[0058]圖1為實現(xiàn)本發(fā)明各個實施例的一個可選的移動終端的硬件結構示意圖。
[0059]移動終端100可以包括無線通訊單元110、音頻/視頻(A/V)輸入單元120、用戶輸入單元130、感測單元160、輸出單元150、存儲器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的移動終端,但是應理解的是,并不要求實施所有示出的組件,可以替代地實施更多或更少的組件,將在下面詳細描述移動終端的元件。
[0060]無線通訊單元110通常包括一個或多個組件,其允許移動終端100與無線通訊系統(tǒng)或網絡之間的無線電通訊。例如,無線通訊單元可以包括移動通訊模塊111、無線互聯(lián)網模塊112、短程通訊模塊113和位置信息模塊114中的至少一個。
[0061]移動通訊模塊111將無線電信號發(fā)送到基站(例如,接入點、節(jié)點B等等)、外部終端以及服務器中的至少一個和/或從其接收無線電信號。這樣的無線電信號可以包括語音通話信號、視頻通話信號、或者根據(jù)文本和/或多媒體消息發(fā)送和/或接收的各種類型的數(shù)據(jù)。
[0062]無線互聯(lián)網模塊112支持移動終端的無線互聯(lián)網接入。該模塊可以內部或外部地耦接到終端。該模塊所涉及的無線互聯(lián)網接入技術可以包括無線局域網(WLAN)(W1-Fi)、無線寬帶(Wibro)、全球微波互聯(lián)接入(Wimax)、高速下行鏈路分組接入(HSDPA)等等。
[0063]短程通訊模塊113是用于支持短程通訊的模塊。短程通訊技術的一些示例包括藍牙TM、射頻識別(RFID)、紅外數(shù)據(jù)協(xié)會(IrDA)、超寬帶(UWB)、紫蜂TM等等。
[0064]位置信息模塊114是用于檢查或獲取移動終端的位置信息的模塊。位置信息模塊的典型示例是全球定位系統(tǒng)(GPS)。根據(jù)當前的技術,位置信息模塊114計算來自三個或更多衛(wèi)星的距離信息和準確的時間信息并且對于計算的信息應用三角測量法,從而根據(jù)經度、瑋度和高度準確地計算三維當前位置信息。當前,用于計算位置和時間信息的方法使用三顆衛(wèi)星并且通過使用另外的一顆衛(wèi)星校正計算出的位置和時間信息的誤差。此外,位置信息模塊114能夠通過實時地連續(xù)計算當前位置信息來計算速度信息。
[0065]A/V輸入單元120用于接收音頻或視頻信號;所述A/V輸入單元120可以包括相機121和麥克風122,相機121對在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進行處理。處理后的圖像幀可以顯示在顯示單元151上。經相機121處理后的圖像幀可以存儲在存儲器160(或其它存儲介質)中或者經由無線通訊單元110進行發(fā)送,可以根據(jù)移動終端的構造提供兩個或更多相機121。麥克風122可以在電話通話模式、記錄模式、語音識別模式等等運行模式中經由麥克風接收聲音(音頻數(shù)據(jù)),并且能夠將這樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語音)數(shù)據(jù)可以在電話通話模式的情況下轉換為可經由移動通訊模塊111發(fā)送到移動通訊基站的格式輸出。麥克風122可以實施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發(fā)送音頻信號的過程中產生的噪聲或者干擾。
[0066]用戶輸入單元130可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制移動終端的各種操作,用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋仔片、觸摸板(例如,檢測由于被接觸而導致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當觸摸板以層的形式疊加在顯示單元151上時,可以形成觸摸屏。
[0067]感測單元160檢測移動終端100的當前狀態(tài),(例如,移動終端100的打開或關閉狀態(tài))、移動終端100的位置、用戶對于移動終端100的接觸(S卩,觸摸輸入)的有無、移動終端100的取向、移動終端100的加速或減速移動和方向等等,并且生成用于控制移動終端100的操作的命令或信號。例如,當移動終端100實施為滑動型移動電話時,感測單元160可以感測該滑動型電話是打開還是關閉。另外,感測單元160能夠檢測電源單元190是否提供電力或者接口單元170是否與外部裝置耦接。
[0068]接口單元170用作至少一個外部裝置與移動終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲卡端口、用于連接具有識別模塊的裝置的端口、音頻輸入/輸出(I/O)端口、視頻I/O端口、耳機端口等等。識別模塊可以是存儲用于驗證用戶使用移動終端100的各種信息并且可以包括用戶識別模塊(UIM)、客戶識別模塊(SIM)、通用客戶識別模塊(USM)等等。另外,具有識別模塊的裝置(下面稱為"識別裝置")可以采取智能卡的形式,因此,識別裝置可以經由端口或其它連接裝置與移動終端100連接。接口單元170可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿咏K端100內的一個或多個元件或者可以用于在移動終端和外部裝置之間傳輸數(shù)據(jù)。
[0069]另外,當移動終端100與外部底座連接時,接口單元170可以用作允許通過其將電力從底座提供到移動終端100的路徑或者可以用作允許從底座輸入的各種命令信號通過其傳輸?shù)揭苿咏K端的路徑。從底座輸入的各種命令信號或電力可以用作用于識別移動終端是否準確地安裝在底座上的信號。輸出單元150被構造為以視覺、音頻和/或觸覺方式提供輸出信號(例如,音頻信號、視頻信號、警報信號、振動信號等等)。輸出單元150可以包括顯示單元151、音頻輸出模塊152等等。
[0070]顯示單元151可以顯示在移動終端100中處理的信息。例如,當移動終端100處于電話通話模式時,顯示單元151可以顯示與通話或其它通訊(例如,文本消息收發(fā)、多媒體文件下載等等)相關的用戶界面(UI)或圖形用戶界面(GUI)。當移動終端100處于視頻通話模式或者圖像捕獲模式時,顯示單元151可以顯示捕獲的圖像和/或接收的圖像、示出視頻或圖像以及相關功能的UI或GUI等等。
[0071]同時,當顯示單元151和觸摸板以層的形式彼此疊加以形成觸摸屏時,顯示單元151可以用作輸入裝置和輸出裝置。顯示單元151可以包括液晶顯示器(LCD)、薄膜晶體管IXD(TFT-1XD)、有機發(fā)光二極管(OLED)顯示器、柔性顯示器、三維(3D)顯示器等等中的至少一種。這些顯示器中的一些可以被構造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為TOLED(透明有機發(fā)光二極管)顯示器等等。根據(jù)特定想要的實施方式,移動終端100可以包括兩個或更多顯示單元(或其它顯示裝置),例如,移動終端可以包括外部顯示單元(未示出)和內部顯示單元(未示出)。觸摸屏可用于檢測觸摸輸入壓力以及觸摸輸入位置和觸摸輸入面積。
[0072]音頻輸出模塊152可以在移動終端處于呼叫信號接收模式、通話模式、記錄模式、語音識別模式、廣播接收模式等等模式下時,將無線通訊單元110接收的或者在存儲器160中存儲的音頻數(shù)據(jù)轉換音頻信號并且輸出為聲音。而且,音頻輸出模塊152可以提供與移動終端100執(zhí)行的特定功能相關的音頻輸出(例如,呼叫信號接收聲音、消息接收聲音等等)。音頻輸出模塊152可以包括揚聲器、蜂鳴器等等。
[0073]存儲器160可以存儲由控制器180執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時地存儲己經輸出或將要輸出的數(shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲器160可以存儲關于當觸摸施加到觸摸屏時輸出的各種方式的振動和音頻信號的數(shù)據(jù)。
[0074]存儲器160可以包括至少一種類型的存儲介質,所述存儲介質包括閃存、硬盤、多媒體卡、卡型存儲器(例如,SD或DX存儲器等等)、隨機訪問存儲器(RAM)、靜態(tài)隨機訪問存儲器(SRAM)、只讀存儲器(R0M)、電可擦除可編程只讀存儲器(EEPROM)、可編程只讀存儲器(PROM)、磁性存儲器、磁盤、光盤等等。而且,移動終端100可以與通過網絡連接執(zhí)行存儲器160的存儲功能的網絡存儲裝置協(xié)作。
[0075]控制器180通常控制移動終端的總體操作。例如,控制器180執(zhí)行與語音通話、數(shù)據(jù)通訊、視頻通話等等相關的控制和處理。另外,控制器180可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊181,多媒體模塊181可以構造在控制器180內,或者可以構造為與控制器180分離??刂破?80可以執(zhí)行模式識別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識別為字符或圖像。
[0076]電源單元190在控制器180的控制下接收外部電力或內部電力并且提供操作各元件和組件所需的適當?shù)碾娏Α?br>[0077]這里描述的各種實施方式可以以使用例如計算機軟件、硬件或其任何組合的計算機可讀介質來實施。對于硬件實施,這里描述的實施方式可以通過使用特定用途集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設計為執(zhí)行這里描述的功能的電子單元中的至少一種來實施,在一些情況下,這樣的實施方式可以在控制器180中實施。對于軟件實施,諸如過程或功能的實施方式可以與允許執(zhí)行至少一種功能或操作的單獨的軟件模塊來實施。軟件代碼可以由以任何適當?shù)木幊陶Z言編寫的軟件應用程序(或程序)來實施,軟件代碼可以存儲在存儲器160中并且由控制器180執(zhí)行。
[0078]至此,己經按照其功能描述了移動終端。下面,為了簡要起見,將描述諸如折疊型、直板型、擺動型、滑動型移動終端等等的各種類型的移動終端中的滑動型移動終端作為示例。因此,本發(fā)明能夠應用于任何類型的移動終端,并且不限于滑動型移動終端。
[0079]如圖1中所示的移動終端100可以被構造為利用經由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無線通訊系統(tǒng)以及基于衛(wèi)星的通訊系統(tǒng)來操作。
[0080]現(xiàn)在將參考圖2描述其中根據(jù)本發(fā)明的移動終端能夠操作的通訊系統(tǒng)。
[0081]這樣的通訊系統(tǒng)可以使用不同的空中接口和/或物理層。例如,由通訊系統(tǒng)使用的空中接口包括例如頻分多址(FDMA)、時分多址(TDMA)、碼分多址(CDMA)和通用移動通訊系統(tǒng)(UMTS)(特別地,長期演進(LTE))、全球移動通訊系統(tǒng)(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通訊系統(tǒng),但是這樣的教導同樣適用于其它類型的系統(tǒng)。
[0082]參考圖2,⑶MA無線通訊系統(tǒng)可以包括多個移動終端100、多個基站(BS)270、基站控制器(BSC)275和移動交換中心(MSCUSOJSCSSO被構造為與公共電話交換網絡(PSTN)290形成接口。MSC280還被構造為與可以經由回程線路耦接到基站270的BSC275形成接口。回程線路可以根據(jù)若干己知的接口中的任一種來構造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的系統(tǒng)可以包括多個BSC275。
[0083]每個BS270可以服務一個或多個分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個分區(qū)放射狀地遠離BS270。或者,每個分區(qū)可以由用于分集接收的兩個或更多天線覆蓋。每個BS270可以被構造為支持多個頻率分配,并且每個頻率分配具有特定頻譜(例如,1.251取,5皿取等等)。
[0084]分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子系統(tǒng)(BTS)或者其它等效術語。在這樣的情況下,術語"基站"可以用于籠統(tǒng)地表示單個BSC275和至少一個BS270。基站也可以被稱為〃蜂窩站〃。或者,特定BS270的各分區(qū)可以被稱為多個蜂窩站。
[0085]如圖2中所示,廣播發(fā)射器(BT)295將廣播信號發(fā)送給在系統(tǒng)內操作的移動終端100。如圖1中所示的廣播接收模塊111被設置在移動終端100處以接收由BT295發(fā)送的廣播信號。在圖2中,示出了幾個全球定位系統(tǒng)(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個移動終端100中的至少一個。
[0086]在圖2中,描繪了多個衛(wèi)星300,但是理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。如圖1中所示的位置信息模塊114通常被構造為與衛(wèi)星300配合以獲得想要的定位信息。替代GPS跟蹤技術或者在GPS跟蹤技術之外,可以使用可以跟蹤移動終端的位置的其它技術。另外,至少一個GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
[0087]作為無線通訊系統(tǒng)的一個典型操作,BS270接收來自各種移動終端100的反向鏈路信號。移動終端100通常參與通話、消息收發(fā)和其它類型的通訊。特定基站270接收的每個反向鏈路信號被在特定BS270內進行處理。獲得的數(shù)據(jù)被轉發(fā)給相關的BSC275 ASC提供通話資源分配和包括BS270之間的軟切換過程的協(xié)調的移動管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應地控制BS270以將正向鏈路信號發(fā)送到移動終端100。
[0088]基于上述移動終端硬件結構以及通訊系統(tǒng),提出本發(fā)明方法各個實施例。
[0089]實施例一
[0090]基于前述的實施例,本發(fā)明實施例提供了一種終端,如圖3所示,所述終端包括:輸入器件301、第一外部通信接口 302、第一處理器303、顯示器304,其中:
[0091]輸入器件301,用于獲取用戶輸入的第一操作。
[0092]這里,所述輸入器件301可以是鍵盤、鼠標、觸摸屏等具有輸入功能的器件,本發(fā)明實施例中以輸入器件301為觸摸屏為例進行說明。
[0093]這里,如圖4所示,用戶點擊登錄終端上的應用程序(AppliCat1n,APP)如微博等社交應用,進入好友動態(tài)界面。此時有兩種情況:一種情況是用戶第一次登錄該APP,在這種情況下第一操作即為用戶點擊進入好友動態(tài)界面的操作;另一種情況是用戶曾經登錄過該好友動態(tài)界面,在這種情況下如圖4中所示,該APP中緩存有用戶上次瀏覽時的好友動態(tài)界面,用戶進入好友動態(tài)界面后的刷新操作為用戶輸入的第一操作。當終端的輸入器件301獲取用戶輸入的第一操作后,終端就會向服務器請求加載本用戶好友的最新動態(tài)數(shù)據(jù)。
[0094]示例地,如圖4所示,刷新操作可以是用戶在好友動態(tài)界面頂端的下拉操作或者所述第一操作也可以是點擊界面內的刷新按鈕如點擊圖4中所示的“點擊獲取最新動態(tài)”。
[0095]第一外部通信接口302,用于在所述輸入器件301獲取所述第一操作時,向服務器發(fā)送第一 ID請求消息,并接收所述服務器返回的所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù)ID。
[0096]這里,在所述輸入器件301獲取所述第一操作時,表明用戶請求加載本用戶好友的最新動態(tài)數(shù)據(jù),此時終端就的第一外部通信接口 302就會向服務器發(fā)送第一 ID請求消息,月艮務器接收到第一 ID請求消息后即可得出該用戶在請求獲取該用戶最新的好友動態(tài)數(shù)據(jù)。
[0097]這里,所述第一ID請求消息中攜帶有一個標識,該標識用于表明該第一 ID請求消息是請求獲取本用戶好友的最新動態(tài)數(shù)據(jù)的消息,示例地,所述第一ID請求消息中攜帶有預設值如last_read_post_id = 0 ;即所述服務器接收到第一ID請求消息中攜帶有l(wèi)ast_read_pOSt_id = 0時,即可得出該用戶在請求獲取該用戶好友的最新動態(tài)數(shù)據(jù)的數(shù)據(jù)ID。
[0098]這里,服務器在得出該用戶在請求獲取該用戶好友的最新動態(tài)數(shù)據(jù)的數(shù)據(jù)ID后,會按照預設規(guī)則,獲取所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù);所述預設規(guī)則可以是按照時間先后順序獲取最新的預設數(shù)目的數(shù)據(jù),即承接上述示例,假設預設數(shù)目為500條,則服務器可以按照時間順序獲取該用戶好友的動態(tài)數(shù)據(jù)中的最新的前500條動態(tài)數(shù)據(jù)。
[0099]這里,預設數(shù)目是服務器分析所有用戶的查看行為,根據(jù)大部分用戶(如80%用戶)習慣查看的數(shù)據(jù)數(shù)目確定的。
[0100]這里,服務器查詢獲得按照時間先后順序排序后的500條數(shù)據(jù)后,就會把這500條數(shù)據(jù)對應的500個數(shù)據(jù)ID發(fā)送給終端,其中這500個數(shù)據(jù)ID是按照其對應的數(shù)據(jù)的順序來排序后發(fā)送給終端的。
[0101]第一處理器303,用于記錄所述排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID。
[0102]這里,終端的第一外部通信接口302接收到所述排序后的第一部分數(shù)據(jù)ID后,第一處理器303記錄所述排序后的第一部分數(shù)據(jù)ID,示例地,終端會為該APP下用戶好友圈的數(shù)據(jù)ID建立一個表。終端在接收到服務器返回的第一部分數(shù)據(jù)ID的時候,將第一部分數(shù)據(jù)ID按照排序一條條的存入該表中,記錄到該APP的本地數(shù)據(jù)庫(例如sqllite)中。
[0103]第一處理器303記錄所述排序后的第一部分數(shù)據(jù)ID時,可以按照第一部分數(shù)據(jù)ID的排序進行記錄,即列表中也按照時間順序來記錄第一部分數(shù)據(jù)ID,其對應時間離當前時間越近的在列表的越前面,第一處理器303記錄排序后的第一部分數(shù)據(jù)ID后,需要獲取第一頁數(shù)據(jù)展示給用戶,終端中預設有該APP顯示的每頁數(shù)據(jù)的數(shù)目N,則第一處理器303先獲取列表中的前N個數(shù)據(jù)ID,即獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID。
[0104]這里,所述N為預設值,示例地,N可以為20,即預設取20條數(shù)據(jù)為一頁數(shù)據(jù)。承接上述示例,500個數(shù)據(jù)ID可以是[1898,1897,1896,……1399],第一處理器303記錄好這500個數(shù)據(jù)ID后,需要先獲取第一數(shù)據(jù)的數(shù)據(jù)ID即列表中的前20個數(shù)據(jù)ID[ 1898,1897,1896,……1879] ο
[0105]所述第一外部通信接口302,還用于將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù)。
[0106]這里,第一外部通信接口 302可以將前20個數(shù)據(jù)ID[ 1898,1897,1896,……1879]發(fā)送給服務器,服務器接收到前20個數(shù)據(jù)ID[ 1898,1897,1896,……1879]后,只需要將在數(shù)據(jù)庫中查詢到20個數(shù)據(jù)ID對應的數(shù)據(jù)(任何一條數(shù)據(jù)都有一個唯一的數(shù)據(jù)ID,是數(shù)據(jù)的唯一標示,可以通過數(shù)據(jù)ID來查找數(shù)據(jù)),然后將數(shù)據(jù)ID[ 1898,1897,1896,……1879]對應的20條數(shù)據(jù)返回給終端;終端的第一外部通信接口 302接收數(shù)據(jù)ID [ 1898,1897,1896,……1879]對應的20條數(shù)據(jù)。
[0107]這里,服務器只需要接收數(shù)據(jù)ID查詢這些數(shù)據(jù)ID對應的數(shù)據(jù)即可,不管用戶是不是僵尸用戶,也不用關心用戶當前的查看狀態(tài)。
[0108]顯示器304,用于顯示所述第一外部通信接口302接收到的數(shù)據(jù)。
[0109]這里,終端的顯示器304在該APP的好友動態(tài)界面上為用戶顯示第一外部通信接口302接收到的數(shù)據(jù)ID[1898,1897,1896,……1879]對應的20條數(shù)據(jù),這樣用戶就可以瀏覽本用戶好友的最新20條動態(tài)數(shù)據(jù)。
[0110]第一處理器303,還用于記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0111]這里,第一處理器303需要記錄顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID[ 1879]。
[0112]所述輸入器件301,還用于獲取用戶的第二操作。
[0113]這里,第二操作為翻頁操作,如圖5所示,用戶在上滑查看最后第一頁的數(shù)據(jù)后,到達第一數(shù)據(jù)的底部仍在觸摸屏上進行上滑操作時,輸入器件301就獲取用戶的第二操作即翻頁操作。
[0114]所述第一處理器303,還用于在所述輸入器件301獲取所述第二操作時,根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID0
[0115]這里,輸入器件301獲取用戶的第二操作時,所述第一處理器303會根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID
[1879]之后的M個數(shù)據(jù)ID即第二頁數(shù)據(jù)的數(shù)據(jù)ID。所述M可以與N相同也可以不同;假設M為20,則第一處理器303獲取到[1878,1877,1876,……1859]。
[0116]所述第一外部通信接口302,還用于將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù)。
[0117]這里,第一外部通信接口 302可以將20個數(shù)據(jù)ID[1878,1877,1876,……1859]發(fā)送給服務器,服務器接收到20個數(shù)據(jù)ID[ 1878,1877,1876,……1859 ]后,只需要將在數(shù)據(jù)庫中查詢到20個數(shù)據(jù)ID對應的數(shù)據(jù),然后將數(shù)據(jù)ID[ 1878,1877,1876,……1859]對應的20條數(shù)據(jù)返回給終端;終端的第一外部通信接口 302接收數(shù)據(jù)ID[ 1878,1877,1876,……1859]對應的20條數(shù)據(jù)。
[0118]這里,服務器只需要接收數(shù)據(jù)ID查詢這些數(shù)據(jù)ID對應的數(shù)據(jù)即可,不需要記錄這些用戶是不是僵尸用戶,也不需要記錄用戶上次的查看到哪條數(shù)據(jù)。
[0119]顯示器304,用于顯示所述第一外部通信接口302接收到的數(shù)據(jù)。
[0120]這里,終端的顯示器304在該APP的界面上為用戶顯示第一外部通信接口302接收到的數(shù)據(jù)ID[ 1878,1877,1876,……1859]對應的20條數(shù)據(jù),這樣用戶就可以瀏覽本用戶好友的下一 20條動態(tài)數(shù)據(jù)。
[0121]第一處理器303,還用于記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0122]這里,第一處理器303需要記錄顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID
[1859]。
[0123]當然,輸入器件301再次獲取用戶的第二操作后,循環(huán)進行以下數(shù)據(jù)傳輸流程:所述第一處理器303根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID;所述第一外部通信接口 302,還用于將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù)。顯示器304顯示所述第一外部通信接口 302接收到的數(shù)據(jù);第一處理器303還用于記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0124]這里,在所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID為所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的情況下,即第一部分數(shù)據(jù)ID對應的數(shù)據(jù)已全部分送給終端供用戶瀏覽后,用戶仍然輸入第二操作進行翻頁,此時,所述第一外部通信接口 302向服務器發(fā)送第二ID請求消息,所述第二 ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;接收所述服務器返回的排序在所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID之后的第二部分數(shù)據(jù)ID。
[0125]這里,承接上述實施例,服務器在接收到攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的ID請求消息之后,會按照時間的先后順序,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),然后將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給客戶端。
[0126]終端的第一外部通信接口302接收到所述服務器返回的所述ID請求消息請求的排序后的第二部分數(shù)據(jù)ID后,第一處理器303記錄所述排序后的第二部分數(shù)據(jù)ID,獲取所述排序后的第二部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;所述第一外部通信接口 302將這前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的這前N個數(shù)據(jù)ID對應的數(shù)據(jù);顯示器304顯示所述第一外部通信接口 302接收到的這前N個數(shù)據(jù)ID對應的數(shù)據(jù);第一處理器303記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。用戶查看這N條數(shù)據(jù)后輸入第二操作,參考以上描述,終端通過第一外部通信接口 302向服務器發(fā)送下一頁的數(shù)據(jù)ID,服務器返回該頁數(shù)據(jù)ID對應的數(shù)據(jù)共終端的顯示器304顯示。
[0127]這里,如果用戶在瀏覽第一部分數(shù)據(jù)中的部分數(shù)據(jù)后退出,并在一段時間后再次登錄進入該APP的好友動態(tài)界面,如圖4中所示,該APP中緩存有用戶上次瀏覽時的好友動態(tài)界面,用戶進入好友動態(tài)界面后進行輸入第二操作,此時,終端的第一處理器記錄有所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID,終端可以根據(jù)記錄的排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID;所述第一外部通信接口 302將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù),顯示器304顯示所述M個數(shù)據(jù)ID對應的數(shù)據(jù)即顯示出當前頁的下一頁數(shù)據(jù)。
[0128]本發(fā)明實施例,將分頁邏輯轉嫁給終端上,讓終端來分頁,在用戶刷新或者翻頁到APP中顯示的數(shù)據(jù)底部時,終端會傳遞last_read_p0st_id(就是所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID)到服務器,服務器將會根據(jù)last_read_p0st_id查詢一定數(shù)目的數(shù)據(jù)ID傳遞給終端;而后,終端只需要傳遞每次分頁的數(shù)據(jù)ID(分頁就是比如你瀏覽一個app,數(shù)據(jù)量較大,你要一直向翻頁獲取更多;每一頁包含的就是用戶要看的內容,如果是新聞類應用就是包含新聞,微博類應用就是包含微博;分頁的條數(shù),用戶在每次向下加載更多的時候會輸出多少條,本實施例中20條為一頁。)給服務器,服務器獲取每次分頁的數(shù)據(jù)ID對應的數(shù)據(jù),完成數(shù)據(jù)封裝再傳遞給終端顯示即可,服務器不需要去記錄該用戶查看分頁的狀態(tài),不需要關注分頁邏輯,降低了服務器資源的浪費。另外,服務器通過分析用戶行為,統(tǒng)計用戶每次查看的數(shù)據(jù)數(shù)目,采用80/20原則,按輸出80%用戶都會查看到數(shù)據(jù)數(shù)目,可以避免一次性輸出太多的數(shù)據(jù)ID給終端,節(jié)省服務器和終端的資源。
[0129]實施例二
[0130]基于前述的實施例,本發(fā)明實施例提供了一種服務器,如圖6所示,所述服務器包括第二外部通信接口 601和第二處理器602,其中,
[0131]第二外部通信接口601,用于接收終端發(fā)送的第一 ID請求消息。
[0132]這里,終端在檢測到用戶請求獲取用戶好友的最新動態(tài)數(shù)據(jù)時,會向所述服務器發(fā)送第一ID請求消息,所述第一ID請求消息中攜帶有一個標識,該標識用于表明該第一ID請求消息是請求獲取本用戶好友的最新動態(tài)數(shù)據(jù)的消息,示例地,所述第一ID請求消息中攜帶有預設值如last_read_post_id = 0;即所述服務器的第二外部通信接口 601接收攜帶有l(wèi)ast_read_post_id = 0的第一ID請求消息中。
[0133]第二處理器602,用于按照預設規(guī)則,獲取所述第二外部通信接口601接收到的所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù),確定排序后的第一部分數(shù)據(jù)對應的排序后的第一部分數(shù)據(jù)ID。
[0134]這里,服務器的第二處理器602在得出該用戶在請求獲取該用戶好友的最新動態(tài)數(shù)據(jù)的數(shù)據(jù)ID后,會按照預設規(guī)則,獲取所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù);所述預設規(guī)則可以是按照時間先后順序獲取最新的預設數(shù)目的數(shù)據(jù),即承接上述示例,假設預設數(shù)目為500條,則第二處理器602可以按照時間順序獲取該用戶好友的動態(tài)數(shù)據(jù)中的最新的前500條動態(tài)數(shù)據(jù)。
[0135]這里,預設數(shù)目是服務器分析所有用戶的查看行為,根據(jù)大部分用戶(如80%用戶)習慣查看的數(shù)據(jù)數(shù)目確定的。
[0136]這里,第二處理器602查詢獲得按照時間先后順序排序后的500條數(shù)據(jù)后,確定這500條數(shù)據(jù)對應的500個數(shù)據(jù)ID,這500個數(shù)據(jù)ID是按照其對應的數(shù)據(jù)的順序來排序的。
[0137]所述第二外部通信接口601,還用于將所述第二處理器602確定的所述排序后的第一部分數(shù)據(jù)ID發(fā)送給所述終端,接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID,將所述N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。
[0138]這里,終端接收所述服務器返回的所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù)ID;會記錄所述第一外部通信接口接收到的排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;然后將所述前N個數(shù)據(jù)ID發(fā)送給服務器。服務器的第二外部通信接口 601接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID,只需要將在數(shù)據(jù)庫中查詢到N個數(shù)據(jù)ID對應的數(shù)據(jù),然后將N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。
[0139]這里,服務器只需要根據(jù)接收數(shù)據(jù)ID向終端返回這些數(shù)據(jù)ID對應的數(shù)據(jù)即可,不需要記錄用戶是不是僵尸用戶,也不用實時記錄用戶當前的查看狀態(tài)。
[0140]第二外部通信接口601,還用于接收終端發(fā)送的第二 ID請求消息,所述第二 ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID。
[0141]這里,服務器的第二外部通信接口601還會接收到終端發(fā)送的第二 ID請求消息,所述第二 ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID。
[0142]所述第二處理器602,還用于按照預設規(guī)則,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給終端。
[0143]這里,承接上述示例,第二處理器602在第二外部通信接口601接收到終端發(fā)送的第二 ID請求消息時,會按照時間的先后順序,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),然后將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給客戶端。
[0144]本發(fā)明實施例中,服務器將會根據(jù)第一ID請求消息或第二 ID請求消息查詢一定數(shù)目的數(shù)據(jù)ID傳遞給終端;服務器只需要根據(jù)終端發(fā)送的每次分頁的數(shù)據(jù)ID獲取每次分頁的數(shù)據(jù)ID對應的數(shù)據(jù),完成數(shù)據(jù)封裝再傳遞給終端顯示即可,服務器不需要去記錄該用戶查看分頁的狀態(tài),不需要關注分頁邏輯,降低了服務器資源的浪費。另外,服務器通過分析用戶行為,統(tǒng)計用戶每次查看的數(shù)據(jù)數(shù)目,采用80/20原則,按80%用戶都會查看到數(shù)據(jù)數(shù)目來確定發(fā)送給終端的數(shù)據(jù)ID的數(shù)目,可以避免一次性輸出太多的數(shù)據(jù)ID給終端,節(jié)省服務器和終端的資源。
[0145]實施例三
[0146]基于前述的實施例,本發(fā)明實施例提供了一種數(shù)據(jù)傳輸方法,應用于終端一側,如圖7所示,本實施例方法的處理流程包括以下步驟:
[0147]步驟701、在獲取用戶輸入的第一操作時,向服務器發(fā)送第一ID請求消息。
[0148]這里,如圖4所示,用戶點擊登錄終端上的應用程序(AppliCat1n,APP)如微博等社交應用,進入好友動態(tài)界面。此時有兩種情況:一種情況是用戶第一次登錄該APP,在這種情況下第一操作即為用戶點擊進入好友動態(tài)界面的操作;另一種情況是用戶曾經登錄過該好友動態(tài)界面,在這種情況下如圖4中所示,該APP中緩存有用戶上次瀏覽時的好友動態(tài)界面,用戶進入好友動態(tài)界面后的刷新操作為用戶輸入的第一操作。當終端獲取用戶輸入的第一操作后,終端就會向服務器發(fā)送第一 ID請求消息請求加載本用戶好友的最新動態(tài)數(shù)據(jù)的數(shù)據(jù)ID。
[0149]步驟702、接收所述服務器返回的所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù)ID。
[0150]這里,服務器在得出該用戶在請求獲取該用戶好友的最新動態(tài)數(shù)據(jù)的數(shù)據(jù)ID后,會按照預設規(guī)則,獲取所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù);所述預設規(guī)則可以是按照時間先后順序獲取最新的預設數(shù)目的數(shù)據(jù),即承接上述示例,假設預設數(shù)目為500條,則服務器可以按照時間順序獲取該用戶好友的動態(tài)數(shù)據(jù)中的最新的前500條動態(tài)數(shù)據(jù)。服務器查詢獲得按照時間先后順序排序后的500條數(shù)據(jù)后,就會把這500條數(shù)據(jù)對應的500個數(shù)據(jù)ID發(fā)送給終端,其中這500個數(shù)據(jù)ID是按照其對應的數(shù)據(jù)的順序來排序后發(fā)送給終端的。
[0151]步驟703、記錄所述排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID。
[0152]這里,終端接收到所述排序后的第一部分數(shù)據(jù)ID后,記錄所述排序后的第一部分數(shù)據(jù)ID,示例地,終端會為該APP下用戶好友圈的數(shù)據(jù)ID建立一個表。終端在接收到服務器返回的第一部分數(shù)據(jù)ID的時候,將第一部分數(shù)據(jù)ID按照排序一條條的存入該表中,記錄到該APP的本地數(shù)據(jù)庫(例如sqllite)中。在記錄時可以按照第一部分數(shù)據(jù)ID的排序進行記錄,即列表中也按照時間順序來記錄第一部分數(shù)據(jù)ID,其對應時間離當前時間越近的在列表的越前面,終端記錄排序后的第一部分數(shù)據(jù)ID后,需要獲取第一頁數(shù)據(jù)展示給用戶,終端中預設有該APP顯示的每頁數(shù)據(jù)的數(shù)目N,終端先獲取列表中的前N個數(shù)據(jù)ID,即獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID。
[0153]步驟704、將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù)。
[0154]這里,服務器只需要接收所述前N個數(shù)據(jù)ID,查詢所述前N個數(shù)據(jù)ID對應的數(shù)據(jù),然后將所述前N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端即可,服務器不用管用戶是不是僵尸用戶,也不用關心用戶當前的查看狀態(tài)。
[0155]步驟705、顯示接收到的數(shù)據(jù),記錄顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0156]這里,終端接收到服務器反饋的數(shù)據(jù)后,會在該APP的好友動態(tài)界面上為用戶顯示接收到的數(shù)據(jù),這樣用戶就可以瀏覽本用戶好友的動態(tài)數(shù)據(jù);終端記錄顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID,以便進行實現(xiàn)后續(xù)的翻頁操作。
[0157]以下為用戶的翻頁流程:在獲取用戶輸入的第二操作時,根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID;將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù);終端顯示接收到的數(shù)據(jù),記錄顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。
[0158]或者,終端在所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID為所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的情況下,在獲取所述第二操作時,向服務器發(fā)送第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;接收所述服務器返回的排序在所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID之后的第二部分數(shù)據(jù)ID;記錄所述排序后的第二部分數(shù)據(jù)ID,獲取所述排序后的第二部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;將這前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的這前N個數(shù)據(jù)ID對應的數(shù)據(jù);顯示所述接收到的數(shù)據(jù);記錄顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。用戶查看這N條數(shù)據(jù)后進行翻頁操作,終端通過向服務器發(fā)送下一頁的數(shù)據(jù)ID,獲取服務器返回該頁數(shù)據(jù)ID對應的數(shù)據(jù)供終端顯示。
[0159]本發(fā)明實施例,將分頁邏輯轉嫁給終端上,讓終端來分頁,在用戶刷新或者翻頁到APP中顯示的數(shù)據(jù)底部時,終端會傳遞last_read_p0st_id(就是所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID)到服務器,服務器將會根據(jù)last_read_p0st_id查詢一定數(shù)目的數(shù)據(jù)ID傳遞給終端;而后,終端只需要傳遞每次分頁的數(shù)據(jù)ID(分頁就是比如你瀏覽一個app,數(shù)據(jù)量較大,你要一直向翻頁獲取更多;每一頁包含的就是用戶要看的內容,如果是新聞類應用就是包含新聞,微博類應用就是包含微博;分頁的條數(shù),用戶在每次向下加載更多的時候會輸出多少條,本實施例中20條為一頁。)給服務器,服務器獲取每次分頁的數(shù)據(jù)ID對應的數(shù)據(jù),完成數(shù)據(jù)封裝再傳遞給終端顯示即可,服務器不需要去記錄該用戶查看分頁的狀態(tài),不需要關注分頁邏輯,降低了服務器資源的浪費。另外,服務器通過分析用戶行為,統(tǒng)計用戶每次查看的數(shù)據(jù)數(shù)目,采用80/20原則,按輸出80%用戶都會查看到數(shù)據(jù)數(shù)目,可以避免一次性輸出太多的數(shù)據(jù)ID給終端,節(jié)省服務器和終端的資源。
[0160]實施例四
[0161]基于前述的實施例,本發(fā)明實施例提供了一種數(shù)據(jù)傳輸方法,應用于服務器一側,如圖8所示,本實施例方法的處理流程包括以下步驟:
[0162]步驟801、接收終端發(fā)送的第一ID請求消息。
[0163]這里,終端在檢測到用戶請求獲取用戶好友的最新動態(tài)數(shù)據(jù)時,會向所述服務器發(fā)送第一ID請求消息,所述第一ID請求消息中攜帶有一個標識,該標識用于表明該第一ID請求消息是請求獲取本用戶好友的最新動態(tài)數(shù)據(jù)的消息,示例地,所述第一ID請求消息中攜帶有預設值如last_read_post_id = 0。
[0164]步驟802、按照預設規(guī)則,獲取所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù),確定排序后的第一部分數(shù)據(jù)對應的排序后的第一部分數(shù)據(jù)ID。
[0165]這里,服務器在得出該用戶在請求獲取該用戶好友的最新動態(tài)數(shù)據(jù)的數(shù)據(jù)ID后,會按照預設規(guī)則,獲取所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù);所述預設規(guī)則可以是按照時間先后順序獲取最新的預設數(shù)目的數(shù)據(jù),即承接上述示例,假設預設數(shù)目為500條,則第二處理器602可以按照時間順序獲取該用戶好友的動態(tài)數(shù)據(jù)中的最新的前500條動態(tài)數(shù)據(jù)。
[0166]這里,預設數(shù)目是服務器分析所有用戶的查看行為,根據(jù)大部分用戶(如80%用戶)習慣查看的數(shù)據(jù)數(shù)目確定的。
[0167]這里,服務器查詢獲得按照時間先后順序排序后的500條數(shù)據(jù)后,確定這500條數(shù)據(jù)對應的500個數(shù)據(jù)ID,這500個數(shù)據(jù)ID是按照其對應的數(shù)據(jù)的順序來排序的。
[0168]步驟803、將所述排序后的第一部分數(shù)據(jù)ID發(fā)送給所述終端。
[0169]步驟804、接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID。
[0170]步驟805、將所述N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。
[0171]這里,終端接收所述服務器返回的所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù)ID;會記錄所述排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID;然后將所述前N個數(shù)據(jù)ID發(fā)送給服務器。服務器接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID,只需要將在數(shù)據(jù)庫中查詢到N個數(shù)據(jù)ID對應的數(shù)據(jù),然后將N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。
[0172]這里,服務器只需要根據(jù)接收數(shù)據(jù)ID向終端返回這些數(shù)據(jù)ID對應的數(shù)據(jù)即可,不需要記錄用戶是不是僵尸用戶,也不用實時記錄用戶當前的查看狀態(tài)。
[0173]這里,服務器還會接收到終端發(fā)送的第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID。此時服務器會按照預設規(guī)則,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給終端。
[0174]這里,承接上述示例,服務器在接收到終端發(fā)送的第二ID請求消息時,會按照時間的先后順序,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),然后將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給客戶端。
[0175]本發(fā)明實施例中,服務器將會根據(jù)第一ID請求消息或第二 ID請求消息查詢一定數(shù)目的數(shù)據(jù)ID傳遞給終端;服務器只需要根據(jù)終端發(fā)送的每次分頁的數(shù)據(jù)ID獲取每次分頁的數(shù)據(jù)ID對應的數(shù)據(jù),完成數(shù)據(jù)封裝再傳遞給終端顯示即可,服務器不需要去記錄該用戶查看分頁的狀態(tài),不需要關注分頁邏輯,降低了服務器資源的浪費。另外,服務器通過分析用戶行為,統(tǒng)計用戶每次查看的數(shù)據(jù)數(shù)目,采用80/20原則,按80%用戶都會查看到數(shù)據(jù)數(shù)目來確定發(fā)送給終端的數(shù)據(jù)ID的數(shù)目,可以避免一次性輸出太多的數(shù)據(jù)ID給終端,節(jié)省服務器和終端的資源。
[0176]本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產品的形式。
[0177]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0178]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0179]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0180]以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
【主權項】
1.一種終端,其特征在于,包括: 輸入器件,用于獲取用戶輸入的第一操作; 第一外部通信接口,用于在所述輸入器件獲取所述第一操作時,向服務器發(fā)送第一ID請求消息,并接收所述服務器返回的所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù)ID; 第一處理器,用于記錄所述第一外部通信接口接收到的排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID; 所述第一外部通信接口,還用于將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù); 顯示器,用于顯示所述第一外部通信接口接收到的數(shù)據(jù); 第一處理器,還用于記錄所述顯示器上顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。2.根據(jù)權利要求1所述的裝置,其特征在于, 所述輸入器件,還用于獲取用戶輸入的第二操作; 所述第一處理器,還用于在所述輸入器件獲取所述第二操作時,根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID; 所述第一外部通信接口,還用于將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù)。3.根據(jù)權利要求1所述的裝置,其特征在于, 所述第一外部通信接口,還用于在所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID為所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的情況下,在所述輸入器件獲取所述第二操作時,向服務器發(fā)送第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;接收所述服務器返回的排序在所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID之后的第二部分數(shù)據(jù)ID。4.一種服務器,其特征在于,所述服務器包括: 第二外部通信接口,用于接收終端發(fā)送的第一ID請求消息; 第二處理器,用于按照預設規(guī)則,獲取所述第二外部通信接口接收到的所述第一ID請求消息請求的排序后的第一部分數(shù)據(jù),確定排序后的第一部分數(shù)據(jù)對應的排序后的第一部分數(shù)據(jù)ID; 所述第二外部通信接口,還用于將所述第二處理器確定的所述排序后的第一部分數(shù)據(jù)ID發(fā)送給所述終端,接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID,將所述N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。5.根據(jù)權利要求1所述的服務器,其特征在于, 第二外部通信接口,還用于接收終端發(fā)送的第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID; 所述第二處理器,還用于按照預設規(guī)則,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給終端。6.一種數(shù)據(jù)傳輸方法,其特征在于,所述方法包括: 在獲取用戶輸入的第一操作時,向服務器發(fā)送第一ID請求消息,并接收所述服務器返回的所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù)ID; 記錄所述排序后的第一部分數(shù)據(jù)ID,獲取所述排序后的第一部分數(shù)據(jù)ID中的前N個數(shù)據(jù)ID; 將所述前N個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述前N個數(shù)據(jù)ID對應的數(shù)據(jù); 顯示所述第一外部通信接口接收到的數(shù)據(jù); 記錄顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID。7.根據(jù)權利要求6所述的方法,其特征在于,所述方法還包括: 在獲取用戶輸入的第二操作時,根據(jù)記錄的所述排序后的第一部分數(shù)據(jù)ID,獲取所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID之后的M個數(shù)據(jù)ID; 將所述M個數(shù)據(jù)ID發(fā)送給服務器,并接收所述服務器返回的所述M個數(shù)據(jù)ID對應的數(shù)據(jù)。8.根據(jù)權利要求6所述的方法,其特征在于,所述方法還包括: 在所述顯示的最后一個數(shù)據(jù)的數(shù)據(jù)ID為所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID的情況下,在獲取所述第二操作時,向服務器發(fā)送第二 ID請求消息,所述第二 ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID;接收所述服務器返回的排序在所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID之后的第二部分數(shù)據(jù)ID。9.一種數(shù)據(jù)傳輸方法,其特征在于,所述方法包括: 接收終端發(fā)送的第一 ID請求消息; 按照預設規(guī)則,獲取所述第一 ID請求消息請求的排序后的第一部分數(shù)據(jù),確定排序后的第一部分數(shù)據(jù)對應的排序后的第一部分數(shù)據(jù)ID; 將所述排序后的第一部分數(shù)據(jù)ID發(fā)送給所述終端; 接收所述終端發(fā)送的所述排序后的第一部分數(shù)據(jù)ID中的N個數(shù)據(jù)ID; 將所述N個數(shù)據(jù)ID對應的數(shù)據(jù)返回給終端。10.根據(jù)權利要求9所述的方法,其特征在于,所述方法還包括: 接收終端發(fā)送的第二ID請求消息,所述第二ID請求消息中攜帶有所述第一部分數(shù)據(jù)ID的最后一個數(shù)據(jù)ID; 按照預設規(guī)則,獲取排序在所述第一部分數(shù)據(jù)之后的第二部分數(shù)據(jù),將排序后的第二部分數(shù)據(jù)對應的排序后的第二部分數(shù)據(jù)ID發(fā)送給終端。
【文檔編號】H04L29/08GK105827721SQ201610246977
【公開日】2016年8月3日
【申請日】2016年4月20日
【發(fā)明人】劉孟焱
【申請人】努比亞技術有限公司