本申請涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種頁面展現(xiàn)流的控制方法、系統(tǒng)及其裝置。
背景技術(shù):
通常,應(yīng)用軟件客戶端(例如微信)會存在大量內(nèi)容數(shù)據(jù),為了顯示這些內(nèi)容數(shù)據(jù),通常會使用feed流(即展示流)根據(jù)更新數(shù)據(jù)的時間順序?qū)崿F(xiàn)顯示展現(xiàn)塊。由于feed流通常都比較長,不能很好的進(jìn)行內(nèi)容數(shù)據(jù)的顯示,因此為了優(yōu)化性能通常采用分頁的形式進(jìn)行顯示內(nèi)容數(shù)據(jù)。
目前,現(xiàn)有feed流的分頁方式主要分為兩類:一類是基于頁碼進(jìn)行分頁??蛻舳嗽诿看畏猪摰臅r候,會把當(dāng)前的頁碼作為參數(shù)傳給服務(wù)器,服務(wù)器再根據(jù)已經(jīng)約定好的每頁數(shù)據(jù)量查詢下頁的數(shù)據(jù),并將查詢的數(shù)據(jù)返回給客戶端進(jìn)行加載。客戶端在接收到服務(wù)器返回的數(shù)據(jù)后以feed流方式展示并更新頁碼,為下一次的分頁做準(zhǔn)備。另一類是基于最后一條展現(xiàn)塊id進(jìn)行分頁??蛻舳嗽诿看畏猪摰臅r候,獲取當(dāng)前的feed流的最后一條展現(xiàn)塊的id,并把它作為參數(shù)傳給服務(wù)器。之后服務(wù)器再根據(jù)接收到的id以向后的順序獲取下一頁數(shù)據(jù)并返回至客戶端進(jìn)行加載??蛻舳私邮盏綌?shù)據(jù)后以feed流方式展示將下一頁數(shù)據(jù)內(nèi)容展現(xiàn)出來。
但是,上述兩種分頁方式,在feed流出現(xiàn)排序不穩(wěn)定的情況時,即展示塊的順序?qū)崟r發(fā)生變化時,兩種分頁方式會存在問題。例如在feed流中,存在a,b,c,d,e,f,g,h,i,j,k幾個展現(xiàn)塊,假定每頁顯示的展現(xiàn)塊數(shù)量為4,此時第一頁的展現(xiàn)塊即為a,b,c,d。如果在進(jìn)行下一次分頁之前,展現(xiàn)塊e的狀態(tài)發(fā)生了變化,根據(jù)規(guī)則,展現(xiàn)塊e會被置于頁面的頂部,即新的feed流順序為e,a,b,c,d,f,g,h,i,j,k。如果按照頁碼進(jìn)行分頁,第二頁的數(shù)據(jù)為d,f,g,h,這樣會出現(xiàn)一個重復(fù)展現(xiàn)塊f,如果按照最后一條展現(xiàn)塊id進(jìn)行分頁,第二頁的數(shù)據(jù)為f,g,h,i,這樣則會漏掉一條展現(xiàn)塊e。因此,傳統(tǒng)的兩種分頁方式都無法滿足feed流展現(xiàn)的需求。
技術(shù)實現(xiàn)要素:
本申請的目的旨在至少在一定程度上解決上述的技術(shù)問題之一。
為此,本申請的第一個目的在于提出一種頁面展現(xiàn)流的控制方法,該方法可有效改善 展現(xiàn)塊在頁面中展現(xiàn)排序的穩(wěn)定性,并減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象,同時能夠優(yōu)化展現(xiàn)塊的顯示性能,提升用戶的使用體驗。
本申請的第二個目的在于提出了一種頁面展現(xiàn)流的控制系統(tǒng)。
本申請的第三個目的在于提出了一種客戶端。
本申請的第四個目的在于提出了一種服務(wù)器。
為達(dá)上述目的,根據(jù)本申請第一方面實施例提出的一種頁面展現(xiàn)流的控制方法,包括以下步驟:接收服務(wù)器發(fā)送的展現(xiàn)塊的id列表,其中,id列表包括m個展現(xiàn)塊的標(biāo)識,m為正整數(shù);接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量;接收用戶的下拉加載指令,并根據(jù)下拉加載指令獲取當(dāng)前頁碼;根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊的標(biāo)識,并將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器;以及接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn)。
本申請實施例通過服務(wù)器發(fā)送的展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
為達(dá)上述目的,根據(jù)本申請的第二方面實施例提出的一種頁面展現(xiàn)流的控制系統(tǒng),包括:包括客戶端和服務(wù)器,其中,客戶端,用于接收服務(wù)器發(fā)送的展現(xiàn)塊的id列表,接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),以及接收用戶的下拉加載指令并根據(jù)下拉加載指令獲取當(dāng)前頁碼,和根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊的標(biāo)識,以及接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),其中,id列表包括m個展現(xiàn)塊的標(biāo)識,m為正整數(shù),其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量;以及服務(wù)器,用于向客戶端發(fā)送展現(xiàn)塊的id列表和第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù),以及接收客戶端發(fā)送的待加載展現(xiàn)塊的標(biāo)識,和根據(jù)待加載展現(xiàn)塊的標(biāo)識獲取待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并發(fā)送至客戶端。
本申請實施例通過服務(wù)器發(fā)送的展現(xiàn)塊id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化在頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
為達(dá)上述目的,根據(jù)本申請的第三方面實施例提出的一種客戶端,包括:第一接收模塊,用于接收服務(wù)器發(fā)送的展現(xiàn)塊的id列表,其中,id列表包括m個展現(xiàn)塊的標(biāo)識,m為正整數(shù);第一展現(xiàn)模塊,用于接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量;加載模塊,用于接收用戶的下拉加載指令,并根據(jù)下拉加載指令獲取當(dāng)前頁碼;第一發(fā)送模塊,用于根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊 的標(biāo)識,并將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器;以及第二展現(xiàn)模塊,用于接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn)。
本申請實施例通過服務(wù)器發(fā)送的展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化在頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
為達(dá)上述目的,根據(jù)本申請的第四方面實施例提出的一種服務(wù)器,包括:包括:第四發(fā)送模塊,用于向客戶端發(fā)送展現(xiàn)塊的id列表和第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù),其中,n為客戶端的頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量;第五接收模塊,用于接收客戶端發(fā)送的待加載展現(xiàn)塊的標(biāo)識;獲取模塊,用于根據(jù)待加載展現(xiàn)塊的標(biāo)識獲取待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù);第五發(fā)送模塊,用于將待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)發(fā)送至客戶端。
本申請實施例通過服務(wù)器發(fā)送展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化在頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
本申請附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
附圖說明
本申請的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是根據(jù)本申請實施例的頁面展現(xiàn)流的控制方法的流程圖;
圖2是根據(jù)本申請實施例的一個具體頁面展現(xiàn)流的示意圖;
圖3是根據(jù)本申請實施例的一個頁面展現(xiàn)流的控制方法的流程圖;
圖4是根據(jù)本申請實施例的服務(wù)器根據(jù)時間戳確定待加載展現(xiàn)塊對應(yīng)的數(shù)據(jù)的流程圖;
圖5是根據(jù)本申請實施例的一個微博頁面展現(xiàn)內(nèi)容數(shù)據(jù)數(shù)量的示意圖;
圖6是根據(jù)本申請實施例的頁面展現(xiàn)流的控制系統(tǒng)的結(jié)構(gòu)示意圖;
圖7是根據(jù)本申請實施例的客服端的結(jié)構(gòu)示意圖;
圖8是根據(jù)本申請實施例的一個客戶端的結(jié)構(gòu)示意圖;
圖9是根據(jù)本申請實施例的另一個客戶端的結(jié)構(gòu)示意圖;
圖10是根據(jù)本申請實施例的又一個客戶端的結(jié)構(gòu)示意圖;
圖11是根據(jù)本申請實施例的服務(wù)器的結(jié)構(gòu)示意圖;以及
圖12是根據(jù)本申請實施例的獲取模塊的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細(xì)描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本申請,而不能理解為對本申請的限制。
本申請?zhí)峁┮环N頁面展現(xiàn)流的控制方法,該頁面展現(xiàn)流的控制過程可以包括:接收服務(wù)器發(fā)送的展現(xiàn)塊的id列表;接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn);接收用戶的下拉加載指令,并根據(jù)下拉加載指令獲取當(dāng)前頁碼;根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊的標(biāo)識,并將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器;以及接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn)。該頁面展現(xiàn)流的控制方法可以作為一個獨(dú)立的應(yīng)用,例如頁面展現(xiàn)流的展現(xiàn),或者一個展現(xiàn)塊加載程序來實現(xiàn)上述頁面展現(xiàn)流的控制過程,即根據(jù)展現(xiàn)塊的id和當(dāng)前頁碼得到展現(xiàn)塊的標(biāo)識,從而獲得展現(xiàn)塊對應(yīng)的的內(nèi)容數(shù)據(jù)并將其在相應(yīng)頁面進(jìn)行展現(xiàn)。
圖1是根據(jù)本申請實施例的頁面展現(xiàn)流的控制方法的流程圖。
如圖1所示,該頁面展現(xiàn)流的控制方法包括:
s110,接收服務(wù)器發(fā)送的展現(xiàn)塊的id列表,其中,id列表包括m個展現(xiàn)塊的標(biāo)識,m為正整數(shù)。在本申請的實施例中,由于展現(xiàn)塊的id為字段,因此網(wǎng)絡(luò)流量消耗很少,不會對客戶端的流量造成損失。
在本申請的一個實施例中,在用戶通過客戶端進(jìn)行首次請求內(nèi)容數(shù)據(jù)時或者客戶端進(jìn)行更新時,服務(wù)器會將所有的相關(guān)展現(xiàn)塊的id列表發(fā)送至客戶端。其中,服務(wù)器所發(fā)送的所有展現(xiàn)塊的id列表中還包括m個展現(xiàn)塊標(biāo)識。展現(xiàn)塊的標(biāo)識可為服務(wù)器后面進(jìn)行確定與之對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)提供有效依據(jù),即客戶端可根據(jù)展現(xiàn)塊標(biāo)識從服務(wù)器獲取對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)。例如,客戶端在加載待展現(xiàn)塊時,只需將待加載展現(xiàn)塊的標(biāo)識發(fā)送給服務(wù)器,服務(wù)器就可根據(jù)待加載展現(xiàn)塊的標(biāo)識確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。
可以理解,展現(xiàn)塊的標(biāo)識具有唯一性,可用于唯一標(biāo)識對應(yīng)的展現(xiàn)塊。
本申請的另一個實施例中,服務(wù)器在發(fā)送展現(xiàn)塊的id列表的同時,還會將當(dāng)前時間作為時間戳發(fā)送至客戶端。其中,時間戳用于標(biāo)記當(dāng)前請求時間的字段。由于服務(wù)器會對展現(xiàn)塊中的內(nèi)容數(shù)據(jù)進(jìn)行更新,因此就需要記錄當(dāng)前的時間戳,以便于在之后的展現(xiàn)塊更新過程中,參考時間戳進(jìn)行更新,后續(xù)會進(jìn)行詳細(xì)介紹。
舉例而言,如圖2所示,服務(wù)器可向客戶端發(fā)送展現(xiàn)塊的id列表和每個展現(xiàn)塊的時間戳。例如,參照圖2所示,服務(wù)器向客戶端發(fā)送id為1-500的展現(xiàn)塊列表(即m=500), 以及當(dāng)前時間戳t3,以及首頁內(nèi)容。當(dāng)客戶端接收到服務(wù)器發(fā)送的展現(xiàn)塊的id列表和相應(yīng)的時間戳之后,會將其保存在本地,并將首頁內(nèi)容數(shù)據(jù)展現(xiàn)在客戶端的頁面中,并記錄當(dāng)前頁碼為1。
需要說明的是,本申請中客戶端可以是智能手機(jī),個人電腦,平板電腦等設(shè)備。
s120,接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。
在本申請的一個實施例中,對于首次請求內(nèi)容數(shù)據(jù),第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)可為客戶端的首頁內(nèi)容數(shù)據(jù),例如第1-第5展現(xiàn)塊,其中,n為五,為頁面中所能展現(xiàn)的最大展現(xiàn)塊數(shù)量。在本申請的另一個實施例中,對于更新內(nèi)容數(shù)據(jù)時,第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)根據(jù)上一頁頁面的展現(xiàn)塊確定。參照圖2所示,由于是首次請求,因此在頁面中展現(xiàn)首頁內(nèi)容數(shù)據(jù),即第1-5個展現(xiàn)塊。
在本申請的另一個實施例中,還需要在頁面中展現(xiàn)第1-m的展現(xiàn)塊id列表。
s130,接收用戶的下拉加載指令,并根據(jù)下拉加載指令獲取當(dāng)前頁碼。
接收用戶針對頁面的下拉手勢,并根據(jù)下拉手勢生成下拉加載指令,以及獲取當(dāng)前頁面的當(dāng)前頁碼。
繼續(xù)參考圖2所示的例子,如果首頁內(nèi)容數(shù)據(jù)為第1-第5展現(xiàn)塊,則頁面的當(dāng)前頁碼就為1。
s140,根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊的標(biāo)識,并將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器。
在本申請的實施例中,獲取待加載展現(xiàn)塊的標(biāo)識可通過以下公式進(jìn)行獲取,例如:[當(dāng)前頁碼*n+1,(當(dāng)前頁碼+1)*n],其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。如上所述的,通過將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器,可準(zhǔn)確地確定對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù),簡單高效。
例如用戶瀏覽微博時,當(dāng)閱讀完當(dāng)前頁面的內(nèi)容數(shù)據(jù)后,需要查看新的內(nèi)容時,可通過下拉客戶端的展示頁面加載新的內(nèi)容??蛻舳烁鶕?jù)下拉加載指令根據(jù)用戶當(dāng)前瀏覽頁面的頁碼和頁面顯示的內(nèi)容數(shù)量進(jìn)行相關(guān)計算得到下一頁的內(nèi)容數(shù)據(jù)的標(biāo)識,并將得到的下一頁內(nèi)容數(shù)據(jù)的標(biāo)識發(fā)送給相關(guān)服務(wù)器進(jìn)行查詢。服務(wù)器根據(jù)這些內(nèi)容數(shù)據(jù)的標(biāo)識在id列表中進(jìn)行確定對應(yīng)內(nèi)容數(shù)據(jù)的內(nèi)容隊列,并根據(jù)對應(yīng)的時間戳找出相應(yīng)的內(nèi)容數(shù)據(jù)快照將其包裝到展現(xiàn)塊中,返回給客戶端。舉例而言,如圖2所示,由于首頁展現(xiàn)的是第1-5個展現(xiàn)塊的內(nèi)容數(shù)據(jù),從而通過待加載展現(xiàn)塊的標(biāo)識公式和首頁的頁碼,可以計算得到下一頁的展現(xiàn)塊的標(biāo)識,即第6-10個展現(xiàn)塊的標(biāo)識,并且將得到的展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器 以查詢對應(yīng)的展現(xiàn)塊,即第6-10個展現(xiàn)塊。
s150,接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn)。如圖5所示,為頁面中的展現(xiàn)結(jié)果。
在本申請的實施例中,在客戶端接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)之后先進(jìn)行渲染,將渲染后的內(nèi)容數(shù)據(jù)進(jìn)行展現(xiàn)并將頁面的頁碼進(jìn)行更新。
在本申請的一個實施例中,客戶端接收用戶的上拉操作,并生成上拉更新指令??蛻舳藢⑸侠轮噶畎l(fā)送至服務(wù)器,并接收服務(wù)器反饋的展現(xiàn)塊的新id列表及新的時間戳。當(dāng)然在客戶端進(jìn)行重啟之后,也需要接收服務(wù)器發(fā)送的展現(xiàn)塊的新id列表及新的時間戳。繼續(xù)參照2所示,進(jìn)一步地,在服務(wù)器通過上述第6-10個展現(xiàn)塊的標(biāo)識查詢到對應(yīng)的展現(xiàn)塊之后,將展現(xiàn)塊的內(nèi)容數(shù)據(jù)反饋至客戶端,客戶端將其進(jìn)行渲染后在進(jìn)行展現(xiàn),并且將當(dāng)前頁面更新為2。
上述的各執(zhí)行步驟可以是由一個執(zhí)行主體執(zhí)行,也可以是由不同的執(zhí)行主體來實現(xiàn),該執(zhí)行主體可以是指一個程序模塊,或者一個功能模塊,根據(jù)具體場景可以有不同定義。
為了使得本領(lǐng)域的技術(shù)人員更加清楚的了解本申請,舉例進(jìn)行說明,如圖3所示,該頁面展現(xiàn)流的控制方法還包括:
s310,接收服務(wù)器發(fā)送的每個展現(xiàn)塊對應(yīng)的時間戳。
在本申請的一個實施例中,時間戳是標(biāo)記當(dāng)前請求時間的字段,能夠唯一地標(biāo)識某一刻的時間,便于在加載更多的內(nèi)容數(shù)據(jù)時,尋找更合適的展現(xiàn)塊的快照。
s320,將待加載展現(xiàn)塊對應(yīng)的時間戳發(fā)送至服務(wù)器,以使服務(wù)器根據(jù)時間戳確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。
在本申請的實施例中,客戶端將時間戳發(fā)送至服務(wù)器,服務(wù)器根據(jù)時間戳選擇對應(yīng)的內(nèi)容數(shù)據(jù)反饋給客戶端。
具體而言,如圖4所示,服務(wù)器根據(jù)時間戳確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)具體包括:
s410,服務(wù)器根據(jù)時間戳判斷待加載展現(xiàn)塊是否有更新,例如,判斷該展現(xiàn)塊的數(shù)據(jù)內(nèi)容在時間戳之后是否被更新過。
s420,如果判斷有更新,則將待加載展現(xiàn)塊在時間戳之前的數(shù)據(jù)作為內(nèi)容數(shù)據(jù)。由于目前未收到用戶的上拉更新指令,因此待加載展現(xiàn)塊對應(yīng)的時間戳還是之前服務(wù)器發(fā)送的,此時如果展現(xiàn)塊的數(shù)據(jù)內(nèi)容被更新過,則該展現(xiàn)塊的內(nèi)容將與其他的展現(xiàn)塊的內(nèi)容不對應(yīng),因此在判斷有更新時,服務(wù)器依然將時間戳之前的數(shù)據(jù)反饋給客戶端。因此,本申請實施例解決了由于展示塊更新產(chǎn)生的問題。
s430,如果判斷沒有更新,則將待加載展現(xiàn)塊的當(dāng)前數(shù)據(jù)作為內(nèi)容數(shù)據(jù)。
本申請實施例通過服務(wù)器發(fā)送的展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
下面對本申請公開實施例的一種頁面展現(xiàn)流的控制系統(tǒng)結(jié)合附圖進(jìn)行具體描述,參照圖6所示。
圖6是根據(jù)本申請的頁面展現(xiàn)流的控制系統(tǒng)的結(jié)構(gòu)示意圖。
如圖6所示,該頁面展現(xiàn)流的控制系統(tǒng)100包括:客戶端110和服務(wù)器120。
其中,客戶端110用于接收服務(wù)器120發(fā)送的展現(xiàn)塊的id列表,接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),以及接收用戶的下拉加載指令并根據(jù)下拉加載指令獲取當(dāng)前頁碼,和根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊的標(biāo)識,以及接收服務(wù)器120反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),其中,id列表包括m個展現(xiàn)塊的標(biāo)識,m為正整數(shù),其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。
在本申請的實施例中,由于展現(xiàn)塊的id為字段,因此網(wǎng)絡(luò)流量消耗很少,不會對客戶端的流量造成損失。
在本申請的一個實施例中,在用戶通過客戶端110進(jìn)行首次請求內(nèi)容數(shù)據(jù)時或者客戶端110進(jìn)行更新時,服務(wù)器120會將所有的相關(guān)展現(xiàn)塊的id列表發(fā)送至客戶端110。其中,服務(wù)器120所發(fā)送的所有展現(xiàn)塊的id列表中還包括m個展現(xiàn)塊標(biāo)識。展現(xiàn)塊的標(biāo)識可為服務(wù)器120后面進(jìn)行確定與之對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)提供有效依據(jù),即客戶端110可根據(jù)展現(xiàn)塊標(biāo)識從服務(wù)器120獲取對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)。例如,客戶端110在加載待展現(xiàn)塊時,只需將待展現(xiàn)塊的標(biāo)識發(fā)送給服務(wù)器120,服務(wù)器120就可根據(jù)待加載展現(xiàn)塊的標(biāo)識確定對應(yīng)的待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。
可以理解,展現(xiàn)塊的標(biāo)識具有唯一性,可用于唯一標(biāo)識對應(yīng)的展現(xiàn)快。
本申請的另一個實施例中,服務(wù)器120在發(fā)送展現(xiàn)塊的id列表的同時,還會將當(dāng)前時間作為時間戳發(fā)送至客戶端110。其中,時間戳用于標(biāo)記當(dāng)前請求時間的字段。由于服務(wù)器120會對展現(xiàn)塊中的內(nèi)容數(shù)據(jù)進(jìn)行更新,因此就需要記錄當(dāng)前的時間戳,以便于在之后的展現(xiàn)塊更新過程中,參考時間戳進(jìn)行更新,后續(xù)會進(jìn)行詳細(xì)介紹。舉例而言,如圖2所示,服務(wù)器120可向客戶端110發(fā)送展現(xiàn)塊的id列表和每個展現(xiàn)塊的時間戳。例如,參照圖2所示,服務(wù)器向客戶端發(fā)送id為1-500的展現(xiàn)塊列表(即m=500),以及當(dāng)前時間戳t3,以及首頁內(nèi)容。當(dāng)客戶端110接收到服務(wù)器120發(fā)送的展現(xiàn)塊的id列表和相應(yīng)的時 間戳之后,會將其保存在本地,并將首頁內(nèi)容數(shù)據(jù)展現(xiàn)在客戶端110的頁面中,并記錄當(dāng)前頁碼為1。
需要說明的是,本申請中客戶端110可以是智能手機(jī),個人電腦,平板電腦等設(shè)備。
在本申請的實施例中,對于首次請求內(nèi)容數(shù)據(jù),第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)可為客戶端的首頁內(nèi)容數(shù)據(jù),例如第1-第5展現(xiàn)塊,其中,n為五,為頁面中所能展現(xiàn)的最大展現(xiàn)塊數(shù)量。在本申請的另一個實施例中,對于更新內(nèi)容數(shù)據(jù)時,第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)根據(jù)上一頁頁面的展現(xiàn)塊確定。參照圖2所示,由于是首次請求,因此在頁面中展現(xiàn)首頁內(nèi)容數(shù)據(jù),即第1-5個展現(xiàn)塊。
在本申請的另一個實施例中,還需要在頁面中展現(xiàn)第1-m的展現(xiàn)塊id列表。
在本申請的一個實施例中,客戶端110接收用戶針對頁面的下拉手勢,并根據(jù)下拉手勢生成下拉加載指令,以及獲取當(dāng)前頁面的當(dāng)前頁碼。繼續(xù)參考圖2所示的例子,如果首頁內(nèi)容數(shù)據(jù)為第1-第5展現(xiàn)塊,則頁面的當(dāng)前頁碼就為1。
在本申請的實施例中,獲取待加載展現(xiàn)塊的標(biāo)識可通過以下公式進(jìn)行獲取,例如:[當(dāng)前頁碼*n+1,(當(dāng)前頁碼+1)*n],其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。如上所述,通過將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器120可準(zhǔn)確地確定對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù),簡單高效。
進(jìn)一步地,在本申請的一個實施例中,客戶端110還用于接收服務(wù)器120發(fā)送的每個展現(xiàn)塊對應(yīng)的時間戳,并將待加載展現(xiàn)塊對應(yīng)的時間戳發(fā)送至服務(wù)器120,以使服務(wù)器120根據(jù)時間戳確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。
例如用戶瀏覽微博時,當(dāng)閱讀完當(dāng)前頁面的內(nèi)容數(shù)據(jù)后,需要查看新的內(nèi)容時,可通過下拉客戶端110的展示頁面加載新的內(nèi)容??蛻舳?10根據(jù)下拉指令,根據(jù)用戶當(dāng)前瀏覽頁面的頁碼和頁面顯示的內(nèi)容數(shù)量進(jìn)行相關(guān)計算得到下一頁的內(nèi)容數(shù)據(jù)的標(biāo)識,并將得到的下一頁內(nèi)容數(shù)據(jù)的標(biāo)識發(fā)送給相關(guān)服務(wù)器進(jìn)行查詢。服務(wù)器根據(jù)這些內(nèi)容數(shù)據(jù)的標(biāo)識在id列表中進(jìn)行確定對應(yīng)內(nèi)容數(shù)據(jù)的內(nèi)容隊列,并根據(jù)對應(yīng)的時間戳找出相應(yīng)的內(nèi)容數(shù)據(jù)快照將其包裝到展現(xiàn)塊中,返回給客戶端110。舉例而言,如圖2所示,由于首頁展現(xiàn)的是第1-5個展現(xiàn)塊的內(nèi)容數(shù)據(jù),從而通過待加載展現(xiàn)塊的標(biāo)識公式和首頁的頁碼,可以計算得到下一頁的展現(xiàn)塊的標(biāo)識,即第6-10個展現(xiàn)塊的標(biāo)識,并且將得到的展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器以查詢對應(yīng)的展現(xiàn)塊,即第6-10個展現(xiàn)塊。
在本申請的實施例中,在客戶端110接收服務(wù)器120反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)之后先進(jìn)行渲染,將渲染后的內(nèi)容數(shù)據(jù)進(jìn)行展現(xiàn)并將頁面的頁碼進(jìn)行更新。
在本申請的一個實施例中,客戶端110接收用戶的上拉操作,并生成上拉更新指令??蛻舳?10將上拉更新指令發(fā)送至服務(wù)器120,并接收服務(wù)器120反饋的展現(xiàn)塊的新id列 表及新的時間戳。當(dāng)然在客戶端進(jìn)行重啟之后,也需要接收服務(wù)器發(fā)送的展現(xiàn)塊的新id列表及新的時間戳。如圖2所示,進(jìn)一步地,在服務(wù)器通過上述獲取第6-10個展現(xiàn)塊的標(biāo)識查詢到對應(yīng)的展現(xiàn)塊之后,將展現(xiàn)塊的內(nèi)容數(shù)據(jù)反饋至客戶端,客戶端將其進(jìn)行渲染后進(jìn)行展現(xiàn),并且將當(dāng)前頁面更新為2。
其中,服務(wù)器120用于向客戶端發(fā)送展現(xiàn)塊的id列表和第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù),以及接收客戶端發(fā)送的待加載展現(xiàn)塊的標(biāo)識,和根據(jù)待加載展現(xiàn)塊的標(biāo)識獲取待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并發(fā)送至客戶端。
在本申請的一個實施例中,服務(wù)器120根據(jù)時間戳判斷待加載展現(xiàn)塊是否有更新,以及在判斷有更新時將待加載展現(xiàn)塊在時間戳之前的數(shù)據(jù)作為內(nèi)容數(shù)據(jù),且在判斷沒有更新時將待加載展現(xiàn)塊的當(dāng)前數(shù)據(jù)作為內(nèi)容數(shù)據(jù)。
由于目前未收到用戶的上拉更新指令,因此待加載展現(xiàn)塊對應(yīng)的時間戳還是之前服務(wù)器發(fā)送的,此時如果展現(xiàn)塊的數(shù)據(jù)內(nèi)容被更新過,則該展現(xiàn)塊的內(nèi)容將與其他的展現(xiàn)塊的內(nèi)容不對應(yīng),因此在判斷有更新時,服務(wù)器依然將時間戳之前的數(shù)據(jù)反饋給客戶端。因此,本申請實施例解決了由于展示塊更新產(chǎn)生的問題。
本申請實施例通過服務(wù)器發(fā)送的展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
本申請實施例還提出一種客戶端,下面通過附圖對其進(jìn)行詳細(xì)描述,如圖7所示。圖7是根據(jù)本申請實施例的客戶端的結(jié)構(gòu)示意圖。
該客戶端200包括:第一接收模塊210、第一展現(xiàn)模塊220、加載模塊230、第一發(fā)送模塊240和第二展現(xiàn)模塊250。
其中,第一接收模塊210用于接收服務(wù)器發(fā)送的展現(xiàn)塊的id列表,其中,id列表包括m個展現(xiàn)塊的標(biāo)識,m為正整數(shù)。在本申請的實施例中,由于展現(xiàn)塊的id為字段,因此網(wǎng)絡(luò)流量消耗很少,不會對客戶端200的流量造成損失。
在本申請的一個實施例中,在用戶通過客戶端200進(jìn)行首次請求內(nèi)容數(shù)據(jù)時或者客戶端200進(jìn)行更新時,服務(wù)器會將所有的相關(guān)展現(xiàn)塊的id列表發(fā)送至客戶端200。其中,服務(wù)器所發(fā)送的所有展現(xiàn)塊的id列表中還包括m個展現(xiàn)塊標(biāo)識。展現(xiàn)塊的標(biāo)識可為服務(wù)器后面進(jìn)行確定與之對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)提供有效依據(jù),即客戶端200可根據(jù)展現(xiàn)塊標(biāo)識從服務(wù)器獲取對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)。例如,客戶端200在加載待展現(xiàn)塊時,只需將 待加載展現(xiàn)塊的標(biāo)識發(fā)送給服務(wù)器,服務(wù)器就可根據(jù)待加載展現(xiàn)塊的標(biāo)識確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。
可以理解,展現(xiàn)塊的標(biāo)識具有唯一性,可用于唯一標(biāo)識對應(yīng)的展現(xiàn)塊。
本申請的另一個實施例中,服務(wù)器在發(fā)送展現(xiàn)塊的id列表的同時,還會將當(dāng)前時間作為時間戳發(fā)送至客戶端200。其中,時間戳用于標(biāo)記當(dāng)前請求時間的字段。由于服務(wù)器會對展現(xiàn)塊中的內(nèi)容數(shù)據(jù)進(jìn)行更新,因此就需要記錄當(dāng)前的時間戳,以便于在之后的展現(xiàn)塊更新過程中,參考時間戳進(jìn)行更新,后續(xù)會進(jìn)行詳細(xì)介紹。
進(jìn)一步地,在本申請的一個實施例中,如圖8所示,該客戶端200還包括:第二接收模塊260。其中,第二接收模塊260用于接收服務(wù)器發(fā)送的每個展現(xiàn)塊對應(yīng)的時間戳。在本申請的一個實施例中,時間戳是標(biāo)記當(dāng)前請求時間的字段,能夠唯一地標(biāo)識某一刻的時間,便于在加載更多的內(nèi)容數(shù)據(jù)時,尋找更合適的展現(xiàn)塊的快照。
舉例而言,如圖2所示,服務(wù)器可向客戶端200發(fā)送展現(xiàn)塊的id列表和每個展現(xiàn)塊的時間戳。例如,參照圖2所示,服務(wù)器向客戶端200發(fā)送id為1-500的展現(xiàn)塊列表(即m=500),以及當(dāng)前時間戳t3,以及首頁內(nèi)容。當(dāng)客戶端200接收到服務(wù)器發(fā)送的展現(xiàn)塊的id列表和相應(yīng)的時間戳之后,會將其保存在本地,并將首頁內(nèi)容數(shù)據(jù)展現(xiàn)在客戶端200的頁面中,并記錄當(dāng)前頁碼為1。
需要說明的是,本申請中客戶端200可以是智能手機(jī),個人電腦,平板電腦等設(shè)備。
其中,第一展現(xiàn)模塊220用于接收第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn),其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。
在本申請的一個實施例中,對于首次請求內(nèi)容數(shù)據(jù),第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)可為客戶端200的首頁內(nèi)容數(shù)據(jù),例如第1-第5展現(xiàn)塊,其中,n為五,為頁面中所能展現(xiàn)的最大展現(xiàn)塊數(shù)量。在本申請的另一個實施例中,對于更新內(nèi)容數(shù)據(jù)時,第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù)根據(jù)上一頁頁面的展現(xiàn)塊確定。參照圖2所示,由于是首次請求,因此在頁面中展現(xiàn)首頁內(nèi)容數(shù)據(jù),即第1-5個展現(xiàn)塊。
在本申請的另一個實施例中,還需要在頁面中展現(xiàn)第1-m的展現(xiàn)塊id列表。
其中,加載模塊230用于接收用戶的下拉加載指令,并根據(jù)下拉加載指令獲取當(dāng)前頁碼。
接收用戶針對頁面的下拉手勢,并根據(jù)下拉手勢生成下拉加載指令,以及獲取當(dāng)前頁面的當(dāng)前頁碼。
繼續(xù)參考圖2所示的例子,如果首頁內(nèi)容數(shù)據(jù)為第1-第5展現(xiàn)塊,則頁面的當(dāng)前頁碼就為1。
其中,第一發(fā)送模塊240用于根據(jù)頁碼和id列表獲取待加載展現(xiàn)塊的標(biāo)識,并將待加 載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器。
在本申請的實施例中,獲取待加載展現(xiàn)塊的標(biāo)識可通過以下公式進(jìn)行獲取,例如:[當(dāng)前頁碼*n+1,(當(dāng)前頁碼+1)*n],其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。如上所述的,通過將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器,可準(zhǔn)確地確定對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù),簡單高效。
例如用戶瀏覽微博時,當(dāng)閱讀完當(dāng)前頁面的內(nèi)容數(shù)據(jù)后,需要查看新的內(nèi)容時,可通過下拉客戶端200的展示頁面加載新的內(nèi)容??蛻舳?00根據(jù)下拉加載指令根據(jù)用戶當(dāng)前瀏覽頁面的頁碼和頁面顯示的內(nèi)容數(shù)量進(jìn)行相關(guān)計算得到下一頁的內(nèi)容數(shù)據(jù)的標(biāo)識,并將得到的下一頁內(nèi)容數(shù)據(jù)的標(biāo)識發(fā)送給相關(guān)服務(wù)器進(jìn)行查詢。服務(wù)器根據(jù)這些內(nèi)容數(shù)據(jù)的標(biāo)識在id列表中進(jìn)行確定對應(yīng)內(nèi)容數(shù)據(jù)的內(nèi)容隊列,并根據(jù)對應(yīng)的時間戳找出相應(yīng)的內(nèi)容數(shù)據(jù)快照將其包裝到展現(xiàn)塊中,返回給客戶端200。舉例而言,如圖2所示,由于首頁展現(xiàn)的是第1-5個展現(xiàn)塊的內(nèi)容數(shù)據(jù),從而通過待加載展現(xiàn)塊的標(biāo)識公式和首頁的頁碼,可以計算得到下一頁的展現(xiàn)塊的標(biāo)識,即第6-10個展現(xiàn)塊的標(biāo)識,并且將得到的展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器查詢得到對應(yīng)的展現(xiàn)塊,即第6-10個展現(xiàn)塊。
進(jìn)一步地,在本申請的一個實施例中,如圖8所示,該客戶端200還包括:第二發(fā)送模塊270。其中,第二發(fā)送模塊270用于將待加載展現(xiàn)塊對應(yīng)的時間戳發(fā)送至服務(wù)器,以使服務(wù)器根據(jù)時間戳確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。在本申請的實施例中,客戶端200將時間戳發(fā)送至服務(wù)器,服務(wù)器根據(jù)時間戳選擇對應(yīng)的內(nèi)容數(shù)據(jù)反饋給客戶端200。
其中,第二展現(xiàn)模塊250用于接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn)。如圖5所示,為頁面中的展現(xiàn)結(jié)果。
在本申請的實施例中,在客戶端200接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)之后先進(jìn)行渲染,將渲染后的內(nèi)容數(shù)據(jù)進(jìn)行展現(xiàn)并將頁面的頁碼進(jìn)行更新。
進(jìn)一步地,在本申請的一個實施例中,如圖9所示,該客戶端200還包括:更新模塊280。其中更新模塊280用于在接收服務(wù)器反饋的待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)并在頁面中展現(xiàn)之后,更新頁面的頁碼。
進(jìn)一步地,在本申請的一個實施例中,如圖10所示,該客戶端200還包括:第三接收模塊290、第三發(fā)送模塊2100和第四接收模塊2110。其中,第三接收模塊290用于接收用戶的上拉更新指令;第三發(fā)送模塊2100用于向服務(wù)器發(fā)送更新請求;第四接收模塊2110用于接收服務(wù)器發(fā)送的展現(xiàn)塊的新id列表及對應(yīng)的新時間戳。當(dāng)然在客戶端200進(jìn)行重啟之后,也需要接收服務(wù)器發(fā)送的展現(xiàn)塊的新id列表及新的時間戳。如圖2所示,進(jìn)一步地,在服務(wù)器通過上述獲取第6-10個展現(xiàn)塊的標(biāo)識查詢到對應(yīng)的展現(xiàn)塊之后,將展現(xiàn)塊的內(nèi)容數(shù)據(jù)反饋至客戶端200,客戶端200將其進(jìn)行渲染后進(jìn)行展現(xiàn),并且將當(dāng)前頁面更新為2。
本申請實施例通過服務(wù)器發(fā)送的展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
本申請實施例還提出一種服務(wù)器,下面結(jié)合附圖對其進(jìn)行詳細(xì)描述,如圖11所示,圖11是根據(jù)本申請實施例的服務(wù)器的結(jié)構(gòu)示意圖。
該服務(wù)器300包括:第四發(fā)送模塊310、第五接收模塊320、獲取模塊330以及第五發(fā)送模塊340。
其中,第四發(fā)送模塊310用于向客戶端發(fā)送展現(xiàn)塊的id列表和第i0至第in個展現(xiàn)塊的內(nèi)容數(shù)據(jù),其中,n為所述客戶端的頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。
在本申請的一個實施例中,在用戶通過客戶端進(jìn)行首次請求內(nèi)容數(shù)據(jù)時或者客戶端進(jìn)行更新時,服務(wù)器300會將所有的相關(guān)展現(xiàn)塊的id列表發(fā)送至客戶端。其中,服務(wù)器300所發(fā)送的所有展現(xiàn)塊的id列表中還包括m個展現(xiàn)塊標(biāo)識。展現(xiàn)塊的標(biāo)識可為服務(wù)器300后面進(jìn)行確定與之對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)提供有效依據(jù),即客戶端可根據(jù)展現(xiàn)塊標(biāo)識從服務(wù)器300獲取對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù)。例如,客戶端在加載待展現(xiàn)塊時,只需將待加載展現(xiàn)塊的標(biāo)識發(fā)送給服務(wù)器300,服務(wù)器300就可根據(jù)待加載展現(xiàn)塊的標(biāo)識確定待加載展現(xiàn)塊對應(yīng)的內(nèi)容數(shù)據(jù)。
可以理解,展現(xiàn)塊的標(biāo)識具有唯一性,可用于唯一標(biāo)識對應(yīng)的展現(xiàn)塊。
本申請的另一個實施例中,服務(wù)器300在發(fā)送展現(xiàn)塊的id列表的同時,還會將當(dāng)前時間作為時間戳發(fā)送至客戶端。其中,時間戳用于標(biāo)記當(dāng)前請求時間的字段。由于服務(wù)器300會對展現(xiàn)塊中的內(nèi)容數(shù)據(jù)進(jìn)行更新,因此就需要記錄當(dāng)前的時間戳,以便于在之后的展現(xiàn)塊更新過程中,參考時間戳進(jìn)行更新,后續(xù)會進(jìn)行詳細(xì)介紹。
舉例而言,如圖2所示,服務(wù)器300可向客戶端發(fā)送展現(xiàn)塊的id列表和每個展現(xiàn)塊的時間戳。例如,參照圖2所示,服務(wù)器300向客戶端發(fā)送id為1-500的展現(xiàn)塊列表(即m=500),以及當(dāng)前時間戳t3,以及首頁內(nèi)容。當(dāng)客戶端接收到服務(wù)器300發(fā)送的展現(xiàn)塊的id列表和相應(yīng)的時間戳之后,會將其保存在本地,并將首頁內(nèi)容數(shù)據(jù)展現(xiàn)在客戶端的頁面中,并記錄當(dāng)前頁碼為1。
需要說明的是,本申請中客戶端可以是智能手機(jī),個人電腦,平板電腦等設(shè)備。
其中,第五接收模塊320用于接收客戶端發(fā)送的待加載展現(xiàn)塊的標(biāo)識。
在本申請的實施例中,獲取待加載展現(xiàn)塊的標(biāo)識可通過以下公式進(jìn)行獲取,例如:[當(dāng)前頁碼*n+1,(當(dāng)前頁碼+1)*n],其中,n為頁面所能展現(xiàn)的展現(xiàn)塊的數(shù)量。如上所述的,通過將待加載展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器300,可準(zhǔn)確地確定對應(yīng)的展現(xiàn)塊的內(nèi)容數(shù)據(jù), 簡單高效。
例如用戶瀏覽微博時,當(dāng)閱讀完當(dāng)前頁面的內(nèi)容數(shù)據(jù)后,需要查看新的內(nèi)容時,可通過下拉客戶端的展示頁面加載新的內(nèi)容??蛻舳烁鶕?jù)下拉加載指令根據(jù)用戶當(dāng)前瀏覽頁面的頁碼和頁面顯示的內(nèi)容數(shù)量進(jìn)行相關(guān)計算得到下一頁的內(nèi)容數(shù)據(jù)的標(biāo)識,并將得到的下一頁內(nèi)容數(shù)據(jù)的標(biāo)識發(fā)送給相關(guān)服務(wù)器300進(jìn)行查詢。服務(wù)器300根據(jù)這些內(nèi)容數(shù)據(jù)的標(biāo)識在id列表中進(jìn)行確定對應(yīng)內(nèi)容數(shù)據(jù)的內(nèi)容隊列,并根據(jù)對應(yīng)的時間戳找出相應(yīng)的內(nèi)容數(shù)據(jù)快照將其包裝到展現(xiàn)塊中,返回給客戶端。舉例而言,如圖2所示,由于首頁展現(xiàn)的是第1-5個展現(xiàn)塊的內(nèi)容數(shù)據(jù),從而通過待加載展現(xiàn)塊的標(biāo)識公式和首頁的頁碼,可以計算得到下一頁的展現(xiàn)塊的標(biāo)識,即第6-10個展現(xiàn)塊的標(biāo)識,并且將得到的展現(xiàn)塊的標(biāo)識發(fā)送至服務(wù)器300以查詢對應(yīng)的展現(xiàn)塊,即第6-10個展現(xiàn)塊。
其中,獲取模塊330用于根據(jù)待加載展現(xiàn)塊的標(biāo)識獲取待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)。
在本申請的一個實施例中,服務(wù)器300根據(jù)這些內(nèi)容數(shù)據(jù)的標(biāo)識在id列表中進(jìn)行確定對應(yīng)內(nèi)容數(shù)據(jù)的內(nèi)容隊列,并根據(jù)對應(yīng)的時間戳找出相應(yīng)的內(nèi)容數(shù)據(jù)快照將其包裝到展現(xiàn)塊中,返回給客戶端。
進(jìn)一步地,在本申請的一個實施例中,獲取模塊330具體包括:判斷子模塊3310和獲取子模塊3320,如圖12所示。其中,判斷子模塊3310用于根據(jù)時間戳判斷待加載展現(xiàn)塊是否有更新,例如,判斷該展現(xiàn)塊的數(shù)據(jù)內(nèi)容在時間戳之后是否被更新過。
其中,獲取子模塊3320用于在判斷模塊判斷有更新時將待加載展現(xiàn)塊在時間戳之前的數(shù)據(jù)作為內(nèi)容數(shù)據(jù),且在判斷模塊判斷沒有更新時將待加載展現(xiàn)塊的當(dāng)前數(shù)據(jù)作為內(nèi)容數(shù)據(jù)。由于目前未收到用戶的上拉更新指令,因此待加載展現(xiàn)塊對應(yīng)的時間戳還是之前服務(wù)器發(fā)送的,此時如果展現(xiàn)塊的數(shù)據(jù)內(nèi)容被更新過,則該展現(xiàn)塊的內(nèi)容將與其他的展現(xiàn)塊的內(nèi)容不對應(yīng),因此在判斷有更新時,服務(wù)器依然將時間戳之前的數(shù)據(jù)反饋給客戶端。因此,本申請實施例解決了由于展示塊更新產(chǎn)生的問題。
其中,第五發(fā)送模塊340用于將待加載展現(xiàn)塊的內(nèi)容數(shù)據(jù)發(fā)送至客戶端。如圖5所示,為頁面中的展現(xiàn)結(jié)果。
本申請實施例通過服務(wù)器300發(fā)送的展現(xiàn)塊的id列表,可以根據(jù)當(dāng)前頁碼和展現(xiàn)塊的id列表推算待加載展現(xiàn)塊的標(biāo)識。因此在不改變展現(xiàn)塊在頁面中展現(xiàn)形式的前提下,提高了展現(xiàn)塊的展現(xiàn)穩(wěn)定性,并且減少甚至避免了展現(xiàn)塊的丟失或者重復(fù)的現(xiàn)象。此外還能夠優(yōu)化頁面中展現(xiàn)塊的展示性能,提升用戶使用體驗。
在本申請的描述中,需要理解的是,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本申請的描述中,“多個”的含義是 至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個或多個實施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進(jìn)行結(jié)合和組合。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本申請的實施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。盡管上面已經(jīng)示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領(lǐng)域的普通技術(shù)人員在本申請的范圍內(nèi)可以對上述實施例進(jìn)行變化、修改、替換和變型。