本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種頁(yè)面的渲染方法、裝置和終端設(shè)備。
背景技術(shù):
服務(wù)器和客戶(hù)端基于HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議,簡(jiǎn)稱(chēng)HTTP)進(jìn)行交互,服務(wù)器接收到客戶(hù)端發(fā)送的用于請(qǐng)求目標(biāo)文件的HTTP請(qǐng)求時(shí),服務(wù)器向客戶(hù)端返回包含目標(biāo)文件的HTTP響應(yīng)。在現(xiàn)有的頁(yè)面顯示流程中,服務(wù)端需要向客戶(hù)端傳輸完目標(biāo)文件的數(shù)據(jù)后,客戶(hù)端才會(huì)就接收到的目標(biāo)文件的數(shù)據(jù)進(jìn)行排版和繪制,最終在瀏覽器上顯示頁(yè)面??梢钥闯?,目前的頁(yè)面顯示流程存在的問(wèn)題是:如果待加載的文件的體積非常大的情況下,服務(wù)器向客戶(hù)端傳輸文件的時(shí)長(zhǎng)會(huì)很長(zhǎng),頁(yè)面加載時(shí)間會(huì)難以忍受。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種頁(yè)面的渲染方法、裝置和終端設(shè)備。可解決現(xiàn)有技術(shù)中頁(yè)面加載時(shí)間過(guò)長(zhǎng)的問(wèn)題。
為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種頁(yè)面的渲染方法,包括:
向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求;其中,所述網(wǎng)頁(yè)請(qǐng)求用于指示所述服務(wù)器根據(jù)預(yù)設(shè)順序依次發(fā)送多個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊由所述服務(wù)器根據(jù)頁(yè)面文件包含的對(duì)象劃分所述頁(yè)面文件生成的,每個(gè)對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)塊;
接收所述服務(wù)器發(fā)送的數(shù)據(jù)塊,并將接收的數(shù)據(jù)塊依次寫(xiě)入到數(shù)據(jù)緩存中;
從所述數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,為所述讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層;
在所述創(chuàng)建的圖層上對(duì)所述數(shù)據(jù)塊執(zhí)行渲染操作后生成所述數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象。
相應(yīng)地,本發(fā)明實(shí)施例還提供了一種頁(yè)面的渲染裝置,包括:
網(wǎng)頁(yè)請(qǐng)求模塊,用于向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求;其中,所述網(wǎng)頁(yè)請(qǐng)求用于指 示所述服務(wù)器根據(jù)預(yù)設(shè)順序依次發(fā)送多個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊由所述服務(wù)器根據(jù)頁(yè)面文件包含的對(duì)象劃分所述頁(yè)面文件生成的,每個(gè)對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)塊;
數(shù)據(jù)接收模塊,用于接收所述服務(wù)器發(fā)送的數(shù)據(jù)塊,并將接收的數(shù)據(jù)塊依次寫(xiě)入到數(shù)據(jù)緩存中;
圖層創(chuàng)建模塊,用于從所述數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,為所述讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層;
對(duì)象渲染模塊,用于在所述創(chuàng)建的圖層上對(duì)所述數(shù)據(jù)塊執(zhí)行渲染操作后生成所述數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
接收服務(wù)器依次發(fā)送的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,將接收到的數(shù)據(jù)塊寫(xiě)入數(shù)據(jù)緩存,讀取數(shù)據(jù)緩存中的數(shù)據(jù)塊,為讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)圖層,在圖層上根據(jù)將讀取的數(shù)據(jù)塊渲染成對(duì)象顯示出來(lái),這樣每讀取到一個(gè)數(shù)據(jù)塊就在對(duì)應(yīng)的圖層上執(zhí)行渲染操作,避免接收到所有的對(duì)象數(shù)據(jù)再統(tǒng)一執(zhí)行渲染操作,有效的減少用戶(hù)的等待時(shí)間。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染方法的流程示意圖;
圖2是本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染方法的另一流程示意圖;
圖3是本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染方法的交互流程圖;
圖4是本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染裝置的另一結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是 全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開(kāi)了一種頁(yè)面的渲染方法和裝置,服務(wù)器將頁(yè)面文件劃分為多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)頁(yè)面文件中的一個(gè)對(duì)象,客戶(hù)端向服務(wù)器發(fā)送頁(yè)面請(qǐng)求時(shí),服務(wù)器根據(jù)頁(yè)面請(qǐng)求將多個(gè)數(shù)據(jù)塊依次發(fā)送給客戶(hù)端,每次發(fā)送一個(gè)數(shù)據(jù)塊,直到所有的數(shù)據(jù)塊全部發(fā)送完畢;客戶(hù)端每接收到一個(gè)數(shù)據(jù)塊將數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)緩存中,客戶(hù)端每次從數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,為讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層,在圖層上對(duì)數(shù)據(jù)塊進(jìn)行渲染生成對(duì)應(yīng)的對(duì)象顯示出來(lái),這樣客戶(hù)端每讀取到一個(gè)數(shù)據(jù)塊就執(zhí)行渲染操作,避免接收完所有的對(duì)象數(shù)據(jù)后再統(tǒng)一執(zhí)行渲染操作,減少用戶(hù)的等待時(shí)間。其中客戶(hù)端可以是移動(dòng)終端、平板電腦、個(gè)人電腦等,服務(wù)器為網(wǎng)頁(yè)服務(wù)器。
參見(jiàn)圖1,為本發(fā)明實(shí)施例提供的一種頁(yè)面顯示方法的流程示意圖,在本發(fā)明實(shí)施例中,所述方法包括:
S101、向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求;其中,所述網(wǎng)頁(yè)請(qǐng)求用于指示所述服務(wù)器根據(jù)預(yù)設(shè)順序依次發(fā)送多個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊由所述服務(wù)器根據(jù)頁(yè)面文件包含的對(duì)象劃分所述頁(yè)面文件生成的,每個(gè)對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)塊。
具體的,用戶(hù)在客戶(hù)端的瀏覽器上輸入U(xiǎn)RL地址或用戶(hù)點(diǎn)擊當(dāng)前頁(yè)面上顯示的URL地址時(shí),客戶(hù)端向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求,服務(wù)器根據(jù)網(wǎng)頁(yè)請(qǐng)求向客戶(hù)數(shù)返回頁(yè)面文件。服務(wù)器中存儲(chǔ)有頁(yè)面文件,服務(wù)器可以預(yù)先將頁(yè)面文件劃分為多個(gè)數(shù)據(jù)塊,服務(wù)器在接收到客戶(hù)端發(fā)送的網(wǎng)頁(yè)請(qǐng)求后,直接根據(jù)預(yù)設(shè)順序依次向客戶(hù)端發(fā)送多個(gè)數(shù)據(jù)塊;或者,服務(wù)器在接收到客戶(hù)端發(fā)送的網(wǎng)頁(yè)請(qǐng)求后,再對(duì)網(wǎng)頁(yè)請(qǐng)求指向的網(wǎng)頁(yè)文件的進(jìn)行劃分生成多個(gè)數(shù)據(jù)塊,服務(wù)器根據(jù)預(yù)設(shè)順序依次將多個(gè)數(shù)據(jù)塊發(fā)送給客戶(hù)端。其中,服務(wù)器劃分頁(yè)面文件的方法是:根據(jù)頁(yè)面文件中包含的對(duì)象的進(jìn)行劃分生成多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,即頁(yè)面文件中包含的對(duì)象的數(shù)量和劃分生成的數(shù)據(jù)塊的數(shù)量相等,頁(yè)面文件中包含的對(duì)象指的是頁(yè)面上的文字或圖片。
S102、接收所述服務(wù)器發(fā)送的數(shù)據(jù)塊,并將接收的數(shù)據(jù)塊依次寫(xiě)入到數(shù)據(jù)緩存中。
具體的,服務(wù)器每次從生成的多個(gè)數(shù)據(jù)塊中選擇一個(gè)數(shù)據(jù)塊發(fā)送給客戶(hù)端,客戶(hù)端每接收到服務(wù)器發(fā)送的數(shù)據(jù)塊,將接收到的數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)緩存中。 由于渲染操作耗費(fèi)的時(shí)間會(huì)大于接收數(shù)據(jù)塊的時(shí)間,為了防止接收到的數(shù)據(jù)塊太多在客戶(hù)端來(lái)不及執(zhí)行渲染操作,導(dǎo)致客戶(hù)端阻塞和崩潰,在客戶(hù)端設(shè)置數(shù)據(jù)緩存避免接收速度和處理速度不匹配造成的問(wèn)題。
S103、從所述數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,為所述讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層。
其中,客戶(hù)端選擇數(shù)據(jù)緩存中的一個(gè)數(shù)據(jù)塊,讀取選擇的數(shù)據(jù)塊,每讀取一個(gè)數(shù)據(jù)塊為該數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層。
S104、在所述創(chuàng)建的圖層上對(duì)所述數(shù)據(jù)塊執(zhí)行渲染操作后生成所述數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象。
其中,每當(dāng)一個(gè)數(shù)據(jù)塊在對(duì)應(yīng)的圖層上完成渲染操作后,數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象就會(huì)顯示出來(lái)。每個(gè)對(duì)象位于各自的圖層上,每個(gè)對(duì)象對(duì)應(yīng)不同的圖層,待劃分的數(shù)據(jù)塊全部完成渲染操作后,頁(yè)面文件包含的所有對(duì)象會(huì)顯示出來(lái),從而完成頁(yè)面文件的渲染,用戶(hù)就可以查看到完整的頁(yè)面。
實(shí)施本發(fā)明的實(shí)施例,接收服務(wù)器依次發(fā)送的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,將接收到的數(shù)據(jù)塊寫(xiě)入數(shù)據(jù)緩存,讀取數(shù)據(jù)緩存中的數(shù)據(jù)塊,為讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)圖層,在圖層上根據(jù)將讀取的數(shù)據(jù)塊渲染成對(duì)象顯示出來(lái),這樣每讀取到一個(gè)數(shù)據(jù)塊就在對(duì)應(yīng)的圖層上執(zhí)行渲染操作,避免接收到所有的對(duì)象數(shù)據(jù)再統(tǒng)一執(zhí)行渲染操作,有效的減少用戶(hù)的等待時(shí)間。
參見(jiàn)圖2,為本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染方法的另一流程示意圖,在本發(fā)明實(shí)施例中,所述方法包括:
S201、向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求;其中,所述網(wǎng)頁(yè)請(qǐng)求用于指示所述服務(wù)器根據(jù)預(yù)設(shè)順序依次發(fā)送多個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊由所述服務(wù)器根據(jù)頁(yè)面文件包含的對(duì)象劃分所述頁(yè)面文件生成的,每個(gè)對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)塊。
具體的,用戶(hù)在客戶(hù)端的瀏覽器上輸入U(xiǎn)RL地址或用戶(hù)點(diǎn)擊當(dāng)前頁(yè)面上顯示的URL地址時(shí),客戶(hù)端向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求,服務(wù)器根據(jù)網(wǎng)頁(yè)請(qǐng)求向客戶(hù)數(shù)返回頁(yè)面文件。服務(wù)器中存儲(chǔ)有頁(yè)面文件,服務(wù)器可以預(yù)先將頁(yè)面文件劃分為多個(gè)數(shù)據(jù)塊,服務(wù)器在接收到客戶(hù)端發(fā)送的網(wǎng)頁(yè)請(qǐng)求后,直接根據(jù)預(yù)設(shè)順序依次向客戶(hù)端發(fā)送多個(gè)數(shù)據(jù)塊;或者,服務(wù)器在接收到客戶(hù)端發(fā)送的網(wǎng)頁(yè)請(qǐng)求后,再對(duì)網(wǎng)頁(yè)請(qǐng)求指向的網(wǎng)頁(yè)文件的進(jìn)行劃分生成多個(gè)數(shù)據(jù)塊,服務(wù)器根據(jù)預(yù)設(shè)順序依次將多個(gè)數(shù)據(jù)塊發(fā)送給客戶(hù)端。其中,服務(wù)器劃分頁(yè)面文件的方法是: 根據(jù)頁(yè)面文件中包含的對(duì)象的進(jìn)行劃分生成多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,即頁(yè)面文件中包含的對(duì)象的數(shù)量和劃分生成的數(shù)據(jù)塊的數(shù)量相等,頁(yè)面文件中包含的對(duì)象指的是頁(yè)面上的文字或圖片。
示例性的,頁(yè)面文件中包含N個(gè)對(duì)象,服務(wù)器將頁(yè)面文件劃分為N個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,假設(shè)N=4,頁(yè)面文件中包含對(duì)象1、對(duì)象2、對(duì)象3和對(duì)象4,服務(wù)器將頁(yè)面文件劃分為4個(gè)數(shù)據(jù)塊,分別為數(shù)據(jù)塊1、數(shù)據(jù)塊2、數(shù)據(jù)塊3和數(shù)據(jù)塊4,其中數(shù)據(jù)塊1對(duì)象對(duì)象1,數(shù)據(jù)塊2對(duì)應(yīng)對(duì)象2、數(shù)據(jù)塊3對(duì)應(yīng)對(duì)象3、數(shù)據(jù)塊4對(duì)應(yīng)對(duì)象4。用戶(hù)點(diǎn)擊客戶(hù)端瀏覽器上的鏈接地址或在瀏覽器的地址欄中輸入鏈接地址,鏈接地址指向服務(wù)器上的頁(yè)面文件,客戶(hù)端向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求,服務(wù)器接收網(wǎng)頁(yè)請(qǐng)求后,服務(wù)器將劃分的4個(gè)數(shù)據(jù)塊依次發(fā)送給客戶(hù)端,直到4個(gè)數(shù)據(jù)塊全部發(fā)送完畢。其中,服務(wù)器選擇數(shù)據(jù)塊的方式可以為:優(yōu)先發(fā)送將位于頁(yè)面上方的對(duì)象對(duì)應(yīng)的數(shù)據(jù)塊,例如屬于頁(yè)面的標(biāo)題欄的數(shù)據(jù)塊。
可以理解的是,劃分后的各個(gè)數(shù)據(jù)塊的大小可能會(huì)不相等,其中,按照發(fā)送順序,首個(gè)數(shù)據(jù)塊攜帶劃分的數(shù)據(jù)塊的總長(zhǎng)度和自身的長(zhǎng)度,后續(xù)數(shù)據(jù)塊只攜帶自身的長(zhǎng)度;或者,首個(gè)數(shù)據(jù)塊攜帶劃分的數(shù)據(jù)塊的總數(shù)量和自身的序號(hào),后續(xù)數(shù)據(jù)塊只攜帶自身的序號(hào),這樣便于客戶(hù)端接收數(shù)據(jù)塊后判斷是否全部接收完畢。
S202、接收所述服務(wù)器發(fā)送的數(shù)據(jù)塊。
客戶(hù)端接收服務(wù)器發(fā)送過(guò)來(lái)的數(shù)據(jù)塊,其中,客戶(hù)端可以通過(guò)識(shí)別數(shù)據(jù)塊攜帶的身份標(biāo)識(shí)來(lái)確定數(shù)據(jù)塊是否屬于請(qǐng)求的頁(yè)面文件,如果不屬于請(qǐng)求的頁(yè)面文件,丟棄接收到的數(shù)據(jù)塊。
S203、統(tǒng)計(jì)從所述服務(wù)器接收到的數(shù)據(jù)塊的數(shù)量。
具體的,客戶(hù)端對(duì)接收到的屬于頁(yè)面文件的數(shù)據(jù)塊的數(shù)量進(jìn)行統(tǒng)計(jì),客戶(hù)端可通過(guò)從接收到的首個(gè)數(shù)據(jù)塊獲取劃分的數(shù)據(jù)塊的數(shù)量,每接收到一個(gè)頁(yè)面文件的數(shù)據(jù)塊后,將接收到的數(shù)據(jù)塊的數(shù)量加1。
S204、接收到的數(shù)據(jù)塊的數(shù)量是否達(dá)到所述頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量。
具體的,客戶(hù)端判斷接收到的數(shù)據(jù)塊的數(shù)量是否達(dá)到頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量,如果為是,執(zhí)行S206,如果為否,執(zhí)行S205。
S205、將接收到的數(shù)據(jù)塊依次寫(xiě)入到數(shù)據(jù)緩存中。
具體的,客戶(hù)端將接收到的屬于頁(yè)面文件的數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)緩存中,寫(xiě)入的方法可以是:按照先進(jìn)先出的順序?qū)⒔邮盏降臄?shù)據(jù)塊寫(xiě)入到數(shù)據(jù)緩存中數(shù)據(jù)塊隊(duì)列的隊(duì)列尾。其中,數(shù)據(jù)緩存可以為SRAM或DRAM。
S206、停止向所述數(shù)據(jù)緩存寫(xiě)入數(shù)據(jù)塊。
具體的,當(dāng)頁(yè)面文件的數(shù)據(jù)塊全部接收完畢,停止向數(shù)據(jù)緩存寫(xiě)入數(shù)據(jù)塊,防止不屬于頁(yè)面文件的數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)緩存中,造成數(shù)據(jù)污染。
S207、數(shù)據(jù)緩存是否為空。
具體的,客戶(hù)端判斷數(shù)據(jù)緩存是否為空,即數(shù)據(jù)緩存中的數(shù)據(jù)塊的數(shù)量為零,如果為是,執(zhí)行S208,如果為否,執(zhí)行S209。
S208、統(tǒng)計(jì)從所述數(shù)據(jù)緩存讀取到的數(shù)據(jù)塊的數(shù)量。
其中,客戶(hù)端統(tǒng)計(jì)從數(shù)據(jù)緩存中讀取到的數(shù)據(jù)塊的數(shù)量??蛻?hù)端可采用先出的方式讀取數(shù)據(jù)緩存中的數(shù)據(jù)塊,首先讀取數(shù)據(jù)緩存中的數(shù)據(jù)塊隊(duì)列的隊(duì)列頭,讀取出來(lái)后,隊(duì)列頭進(jìn)行出隊(duì)操作生成新的隊(duì)列頭??蛻?hù)端可以從首個(gè)讀取的數(shù)據(jù)塊中獲取頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量,對(duì)從數(shù)據(jù)緩存中讀取的數(shù)據(jù)塊進(jìn)行計(jì)數(shù)。
S209、若所述讀取到的數(shù)據(jù)塊的數(shù)量未達(dá)到所述頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量,等待預(yù)設(shè)時(shí)長(zhǎng)。
具體的,如果S208統(tǒng)計(jì)的從數(shù)據(jù)緩存中讀取的數(shù)據(jù)塊的數(shù)量未達(dá)到頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量,表明服務(wù)器還有未發(fā)送完的數(shù)據(jù)塊或客戶(hù)端還有未寫(xiě)入數(shù)據(jù)緩存的數(shù)據(jù)塊,等待預(yù)設(shè)時(shí)長(zhǎng),待客戶(hù)端將剩余的數(shù)據(jù)塊寫(xiě)入數(shù)據(jù)緩存中再?gòu)臄?shù)據(jù)緩存中讀取。
S210、從所述數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,為所述讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層。
具體的,客戶(hù)端從數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,客戶(hù)端為數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層,圖層的大小和形狀可以與對(duì)象的形狀和大小相同,然后在創(chuàng)建的圖層上對(duì)數(shù)據(jù)塊執(zhí)行渲染操作,渲染操作完成后,用戶(hù)可以在客戶(hù)端上看到完成渲染操作后的對(duì)象。每個(gè)對(duì)象位于各自的圖層上,每個(gè)對(duì)象對(duì)應(yīng)不同的圖層,待劃分的數(shù)據(jù)塊全部完成渲染操作后,頁(yè)面文件包含的所有對(duì)象會(huì)顯示出來(lái),從而完成頁(yè)面文件的渲染,用戶(hù)就可以查看到完整的頁(yè)面。
S211、接收用于移動(dòng)目標(biāo)對(duì)象的移動(dòng)指令;其中,所述目標(biāo)對(duì)象為所述頁(yè)面文件包含的對(duì)象中的任意一個(gè)。
具體的,頁(yè)面文件劃分的數(shù)據(jù)塊全部完成渲染操作后,生成頁(yè)面文件對(duì)應(yīng)的目標(biāo)頁(yè)面,如果目標(biāo)頁(yè)面上存在活動(dòng)的對(duì)象時(shí),用戶(hù)對(duì)目標(biāo)對(duì)象進(jìn)行移動(dòng)時(shí),客戶(hù)端監(jiān)控目標(biāo)對(duì)象移動(dòng)的軌跡。其中,用戶(hù)可以通過(guò)觸摸屏、鼠標(biāo)或鍵盤(pán)對(duì)目標(biāo)對(duì)象進(jìn)行移動(dòng)。
S212、確定目標(biāo)對(duì)象的最終位置,并對(duì)所述目標(biāo)對(duì)象在所述最終位置重新執(zhí)行渲染操作。
具體的,當(dāng)目標(biāo)對(duì)象停止移動(dòng)時(shí),根據(jù)目標(biāo)對(duì)象的坐標(biāo)確定其最終位置,在最終位置上對(duì)目標(biāo)對(duì)象重新執(zhí)行渲染操作,這樣重新渲染時(shí),只需要對(duì)目標(biāo)對(duì)象進(jìn)行渲染,不需要對(duì)目標(biāo)頁(yè)面上的其他對(duì)象重新執(zhí)行渲染操作,能提高渲染的效率。
可選的,客戶(hù)端完成渲染操作的對(duì)象緩存至本地磁盤(pán)中的對(duì)象緩存中。其中,對(duì)象可以是文字或圖片的截圖,本發(fā)明不作限制。當(dāng)客戶(hù)端接收渲染數(shù)據(jù)塊的操作時(shí),可以首先在對(duì)象緩存中查詢(xún)是否存在于數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象,如果命中,直接將本地磁盤(pán)中的對(duì)象顯示在瀏覽器上,這樣可以提高頁(yè)面渲染的響應(yīng)速度。
實(shí)施本發(fā)明的實(shí)施例,接收服務(wù)器依次發(fā)送的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)對(duì)象,將接收到的數(shù)據(jù)塊寫(xiě)入數(shù)據(jù)緩存,讀取數(shù)據(jù)緩存中的數(shù)據(jù)塊,為讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)圖層,在圖層上根據(jù)將讀取的數(shù)據(jù)塊渲染成對(duì)象顯示出來(lái),這樣每讀取到一個(gè)數(shù)據(jù)塊就在對(duì)應(yīng)的圖層上執(zhí)行渲染操作,避免接收到所有的對(duì)象數(shù)據(jù)再統(tǒng)一執(zhí)行渲染操作,有效的減少用戶(hù)的等待時(shí)間。
參見(jiàn)圖3,為本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染方法的交互示意圖,在本發(fā)明實(shí)施例設(shè)計(jì)的設(shè)備包括服務(wù)器1和客戶(hù)端2,其中交互流程如下:
S301、服務(wù)器根據(jù)頁(yè)面文件包含的對(duì)象將所述頁(yè)面文件劃分為N個(gè)數(shù)據(jù)塊。其中,N為大于1的整數(shù),頁(yè)面文件中的對(duì)象包括文本對(duì)象、表格對(duì)象或圖形對(duì)象等,劃分后的每個(gè)數(shù)據(jù)塊對(duì)應(yīng)頁(yè)面文件中的一個(gè)對(duì)象。
S302、客戶(hù)端向服務(wù)器網(wǎng)頁(yè)請(qǐng)求。其中,網(wǎng)頁(yè)請(qǐng)求用于請(qǐng)求頁(yè)面文件。
S303、服務(wù)器依次將所述N個(gè)數(shù)據(jù)塊發(fā)送給客戶(hù)端。
S304、客戶(hù)端將接收到的數(shù)據(jù)塊寫(xiě)入到數(shù)據(jù)緩存中。
S305、客戶(hù)端讀取數(shù)據(jù)緩存中的數(shù)據(jù)塊,為讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層。其中,頁(yè)面文件劃分的N個(gè)數(shù)據(jù)塊中,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)單獨(dú)的圖層。
S306、在所述創(chuàng)建的圖層上對(duì)所述數(shù)據(jù)塊執(zhí)行渲染操作后生成所述數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象。其中N個(gè)數(shù)據(jù)塊均渲染完畢后,生成頁(yè)面文件對(duì)應(yīng)的完整頁(yè)面。
本發(fā)明實(shí)施例和方法實(shí)施例一和二基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體過(guò)程請(qǐng)參照方法實(shí)施例一和方法實(shí)施例二的描述,此處不再贅述。
參見(jiàn)圖4,為本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染裝置結(jié)構(gòu)示意圖,用于執(zhí)行本發(fā)明實(shí)施例一的頁(yè)面的渲染方法,在本發(fā)明實(shí)施例中所述頁(yè)面顯示裝置包括寫(xiě)網(wǎng)頁(yè)請(qǐng)求模塊40、數(shù)據(jù)接收模塊41、圖層創(chuàng)建模塊42和對(duì)象渲染模塊43。
網(wǎng)頁(yè)請(qǐng)求模塊40,用于向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求;其中,所述網(wǎng)頁(yè)請(qǐng)求用于指示所述服務(wù)器根據(jù)預(yù)設(shè)順序依次發(fā)送多個(gè)數(shù)據(jù)塊,所述多個(gè)數(shù)據(jù)塊由所述服務(wù)器根據(jù)頁(yè)面文件包含的對(duì)象劃分所述頁(yè)面文件生成的,每個(gè)對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)塊。
數(shù)據(jù)接收模塊41,用于接收所述服務(wù)器發(fā)送的數(shù)據(jù)塊,并將接收的數(shù)據(jù)塊依次寫(xiě)入到數(shù)據(jù)緩存中。
圖層創(chuàng)建模塊42,用于從所述數(shù)據(jù)緩存中讀取一個(gè)數(shù)據(jù)塊,為所述讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層。
對(duì)象渲染模塊43,用于在所述創(chuàng)建的圖層上對(duì)所述數(shù)據(jù)塊執(zhí)行渲染操作后生成所述數(shù)據(jù)塊對(duì)應(yīng)的對(duì)象。
本發(fā)明實(shí)施例和方法實(shí)施例一基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體請(qǐng)參照方法實(shí)施例一的描述,此處不再贅述。
參見(jiàn)圖5,為本發(fā)明實(shí)施例提供的一種頁(yè)面的渲染裝置的另一結(jié)構(gòu)示意圖,用于執(zhí)行本發(fā)明實(shí)施例二的頁(yè)面的渲染方法,在本發(fā)明實(shí)施例中,所述頁(yè)面顯示裝置除包括:網(wǎng)頁(yè)請(qǐng)求模塊40、數(shù)據(jù)接收模塊41、圖層創(chuàng)建模塊42和對(duì)象渲染模塊43,還包括:指令接收模塊44、重渲染模塊45、統(tǒng)計(jì)模塊46、停止模塊47、判斷模塊48和等待模塊49。
其中,指令接收模塊44,用于接收用于移動(dòng)目標(biāo)對(duì)象的移動(dòng)指令;其中,所述目標(biāo)對(duì)象為所述頁(yè)面文件包含的對(duì)象中的任意一個(gè)。
重渲染模塊45,用于確定目標(biāo)對(duì)象的最終位置,并對(duì)所述目標(biāo)對(duì)象在所述最終位置重新進(jìn)行執(zhí)行渲染操作。
其中,統(tǒng)計(jì)模塊46,用于統(tǒng)計(jì)從所述服務(wù)器接收到的數(shù)據(jù)塊的數(shù)量。
停止模塊47,用于當(dāng)接收到的數(shù)據(jù)塊的數(shù)量達(dá)到所述頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量時(shí),停止向所述數(shù)據(jù)緩存中寫(xiě)入數(shù)據(jù)塊。
其中,判斷模塊48,用于判斷所述數(shù)據(jù)緩存是否為空,若為是,統(tǒng)計(jì)從所述數(shù)據(jù)緩存讀取到的數(shù)據(jù)塊的數(shù)量。
等待模塊49,用于若所述讀取到的數(shù)據(jù)塊的數(shù)量未達(dá)到所述頁(yè)面文件劃分的數(shù)據(jù)塊的數(shù)量,若為是,等待預(yù)設(shè)時(shí)長(zhǎng)。
可選的,所述圖層創(chuàng)建模塊42用于從所述讀取的數(shù)據(jù)塊中獲取對(duì)應(yīng)的對(duì)象的形狀信息,并根據(jù)所述形象信息為所述讀取的數(shù)據(jù)塊創(chuàng)建一個(gè)單獨(dú)的圖層。
本發(fā)明實(shí)施例和方法實(shí)施例二基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體請(qǐng)操作方法實(shí)施例二的描述,此處不再贅述。
本發(fā)明實(shí)施例還提供了一種終端設(shè)備,包括裝置實(shí)施例一和裝置實(shí)施例二的頁(yè)面的渲染裝置,其中,終端設(shè)備可以是智能手機(jī)、個(gè)人電腦、筆記本電腦、平板電腦、個(gè)人數(shù)字助理或車(chē)載影音平臺(tái)等,本發(fā)明不作限制。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。