網(wǎng)頁渲染的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種網(wǎng)頁渲染的方法、裝置及系統(tǒng),涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,解決了網(wǎng)頁渲染速度過慢的問題。本發(fā)明的方法包括:在進行網(wǎng)頁渲染時,客戶端向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便服務(wù)器根據(jù)文件標識判斷網(wǎng)絡(luò)側(cè)是否有HTML文件的更新文件;若服務(wù)器判斷網(wǎng)絡(luò)側(cè)沒有HTML文件的更新文件,則客戶端接收服務(wù)器下發(fā)的離線渲染指令;客戶端根據(jù)離線渲染指令讀取本地數(shù)據(jù)庫中存儲的HTML文件;客戶端根據(jù)讀取的HTML文件對網(wǎng)頁進行渲染。本發(fā)明主要用于網(wǎng)頁的快速渲染。
【專利說明】網(wǎng)頁渲染的方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,特別是涉及一種網(wǎng)頁渲染的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]通常瀏覽器在進行網(wǎng)頁渲染時,一般需要向網(wǎng)絡(luò)側(cè)請求網(wǎng)頁的超文本標記語言(Hypertext Markup Language,簡稱HTML)文件、層疊樣式表單(Cascading Style Sheets,簡稱CSS)及腳本語言(JavaScript,簡稱JS)等。其中,HTML文件中攜帶網(wǎng)頁文檔,決定網(wǎng)頁中顯示的數(shù)據(jù)內(nèi)容;CSS用于提供網(wǎng)頁的樣式結(jié)構(gòu)(例如輸入框的位置和大小)JS則用于添加網(wǎng)頁的人機交互功能。
[0003]在現(xiàn)有的網(wǎng)頁渲染過程中,瀏覽器需要對上述三種文件分別進行獲取,瀏覽器與網(wǎng)絡(luò)側(cè)交互的數(shù)據(jù)量較大,當網(wǎng)絡(luò)側(cè)服務(wù)器處理能力有限,或網(wǎng)絡(luò)帶寬緊張時,網(wǎng)頁渲染的速度會變慢,產(chǎn)生較長的等待時間。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提出了一種網(wǎng)頁渲染的方法、裝置及系統(tǒng),能夠解決網(wǎng)頁渲染速度過慢的問題。
[0005]依據(jù)本發(fā)明的第一個方面,本發(fā)明提供了一種網(wǎng)頁渲染的方法,包括:
[0006]在進行網(wǎng)頁渲染時,客戶端向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便服務(wù)器根據(jù)文件標識判斷網(wǎng)絡(luò)側(cè)是否有HTML文件的更新文件;
[0007]若服務(wù)器判斷網(wǎng)絡(luò)側(cè)沒有HTML文件的更新文件,則客戶端接收服務(wù)器下發(fā)的離線渲染指令;
[0008]客戶端根據(jù)離線渲染指令讀取本地數(shù)據(jù)庫中存儲的所述HTML文件;
[0009]客戶端根據(jù)讀取的HTML文件對網(wǎng)頁進行渲染。
[0010]依據(jù)本發(fā)明的第二個方面,本發(fā)明還提供了一種網(wǎng)頁渲染的方法,包括:
[0011]在客戶端進行網(wǎng)頁渲染時,服務(wù)器接收客戶端上報的超文本標記語言HTML文件的文件標識;
[0012]服務(wù)器判斷接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同;
[0013]若接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同,則服務(wù)器向客戶端下發(fā)離線渲染指令,指示客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對網(wǎng)頁進行渲染。
[0014]依據(jù)本發(fā)明的第三個方面,本發(fā)明還提供了一種網(wǎng)頁渲染的裝置,該裝置通常位于客戶端中,包括:
[0015]上報單元,用于在進行網(wǎng)頁渲染時,向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便服務(wù)器根據(jù)文件標識判斷網(wǎng)絡(luò)側(cè)是否有HTML文件的更新文件;
[0016]接收單元,用于當服務(wù)器根據(jù)上報單元上報的文件標識判斷網(wǎng)絡(luò)側(cè)沒有HTML文件的更新文件時,接收服務(wù)器下發(fā)的離線渲染指令;
[0017]讀取單元,用于根據(jù)接收單元接收的離線渲染指令讀取本地數(shù)據(jù)庫中存儲的HTML文件;
[0018]處理單元,用于根據(jù)讀取單元讀取的HTML文件對網(wǎng)頁進行渲染。
[0019]依據(jù)本發(fā)明的第四個方面,本發(fā)明還提供了一種網(wǎng)頁渲染的裝置,該裝置通常位于服務(wù)器中,包括:
[0020]接收單元,用于在客戶端進行網(wǎng)頁渲染時,接收客戶端上報的超文本標記語言HTML文件的文件標識;
[0021]判斷單元,用于判斷接收單元接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同;
[0022]下發(fā)單元,用于當判斷單元判斷接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同時,向客戶端下發(fā)離線渲染指令,指示客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對網(wǎng)頁進行渲染。
[0023]依據(jù)本發(fā)明的第五個方面,本發(fā)明還提供了一種網(wǎng)頁渲染的系統(tǒng),該系統(tǒng)包含客戶端和服務(wù)器,其中,客戶端包含如前第三方面所述的裝置,服務(wù)器包含如前第四個方面所述的裝置。
[0024]借由上述技術(shù)方案,本發(fā)明實施例提供的網(wǎng)頁渲染的方法、裝置及系統(tǒng),能夠由服務(wù)器根據(jù)HTML文件的文件標識進行比對的方式,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件,在沒有更新文件的情況下,客戶端可以根據(jù)服務(wù)器下發(fā)的離線渲染指令從本地數(shù)據(jù)庫中讀取此前存儲的HTML文件,從而對網(wǎng)頁進行渲染。與現(xiàn)有技術(shù)相比,本發(fā)明能夠避免每次渲染網(wǎng)頁時都從服務(wù)器獲取HTML文件,在HTML文件沒有更新的情況下可以使客戶端離線對網(wǎng)頁進行渲染。由于無需向服務(wù)器請求HTML文件的數(shù)據(jù),因此網(wǎng)頁渲染的速度不受網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制,可以極大提高網(wǎng)頁渲染的速度。
[0025]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0026]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0027]圖1示出了本發(fā)明實施例提供的主要用于客戶端一側(cè)的網(wǎng)頁渲染的方法的流程圖;
[0028]圖2示出了本發(fā)明實施例提供的主要用于服務(wù)器一側(cè)的網(wǎng)頁渲染的方法的流程圖;
[0029]圖3示出了本發(fā)明實施例提供的主要用于客戶端一側(cè)的網(wǎng)頁渲染的裝置的結(jié)構(gòu)示意圖;
[0030]圖4示出了本發(fā)明實施例提供的主要用于服務(wù)器一側(cè)的網(wǎng)頁渲染的裝置的結(jié)構(gòu)示意圖;
[0031]圖5示出了本發(fā)明實施例提供的一種網(wǎng)頁渲染的系統(tǒng)的示意圖。
【具體實施方式】
[0032]下面將參照附圖更加詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0033]為解決網(wǎng)頁渲染速度過慢的問題,本發(fā)明實施例提供一種網(wǎng)頁渲染的方法,該方法主要用于客戶端一側(cè),如圖1所示,該方法包括:
[0034]101、客戶端向服務(wù)器上報超文本標記語言HTML文件的文件標識。
[0035]HTML文件是目前網(wǎng)絡(luò)上應(yīng)用最為廣泛的語言,也是構(gòu)成網(wǎng)頁文檔的主要語言。HTML文件是由HTML命令組成的描述性文本,HTML命令可以說明文字、圖形、動畫、聲音、表格和鏈接等。通常情況下,HTML文件可以被多種網(wǎng)頁瀏覽器客戶端讀取,從而渲染出具有圖片、文字等可視信息的網(wǎng)頁?,F(xiàn)有技術(shù)中,這些HTML文件存儲在分布于世界各地的服務(wù)器硬盤上,用戶可以通過傳輸協(xié)議遠程獲取不同的HTML文件?,F(xiàn)實生活中,當用戶在互聯(lián)網(wǎng)上瀏覽網(wǎng)頁時,通過一些客戶端(通常是各種瀏覽器客戶端)完成對HTML文件的獲取及渲染,生成網(wǎng)頁頁面。
[0036]現(xiàn)有技術(shù)中,無論HTML文件是否有更新文件,客戶端在進行網(wǎng)頁渲染時,每次都要從服務(wù)器獲取HTML文件。本發(fā)明實施例提供的方法不直接獲取服務(wù)器上的HTML文件,而是事先有一個判斷HTML文件是否更新的步驟。如步驟101向服務(wù)器上報HTML文件的文件標識。服務(wù)器將客戶端上報的HTML文件的文件標識與網(wǎng)絡(luò)側(cè)側(cè)相應(yīng)的HTML文件的文件標識進行比對,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件。
[0037]這里所說的文件標識用于唯一標記HTML文件,一旦HTML文件有更新文件,則會賦予一個新的文件標識給更新文件。文件標識可以由系統(tǒng)生成并分配給不同的HTML文件,也可以由程序員根據(jù)需要自行定義不同的HTML文件的文件標識。
[0038]102、客戶端接收服務(wù)器下發(fā)的離線渲染指令。
[0039]若網(wǎng)絡(luò)側(cè)沒有更新的HTML文件,則客戶端在向服務(wù)器上報HTML文件的文件標識后,會收到服務(wù)器下發(fā)的離線渲染指令。該指令通常包括要完成的操作的類型或性質(zhì),如讀取數(shù)據(jù)、作加減法或輸出數(shù)據(jù)等,還用于指明操作對象的位置。本實施例中的離線渲染指令除了指示客戶端讀取數(shù)據(jù)用于渲染網(wǎng)頁外,還用于向客戶端指明從何處讀取該數(shù)據(jù)。
[0040]103、客戶端根據(jù)離線渲染指令讀取本地數(shù)據(jù)庫中存儲的HTML文件。
[0041]當客戶端接收到服務(wù)器下發(fā)的離線渲染指令后,對指令完成解析并按照指令中的內(nèi)容執(zhí)行相關(guān)操作。本實施例中,客戶端會根據(jù)離線渲染指令從本地數(shù)據(jù)庫中存儲的HTML文件中讀取需要的HTML文件。這個讀取的過程是根據(jù)HTML文件的文件標識在本地數(shù)據(jù)庫中查找到對應(yīng)的HTML文件,即讀取文件標識相同的HTML文件。
[0042]這里所說的本地數(shù)據(jù)庫獨立于服務(wù)器,并且不受網(wǎng)絡(luò)環(huán)境或網(wǎng)絡(luò)帶寬等因素的影響。該本地數(shù)據(jù)庫是專門為相應(yīng)的客戶端在本地存儲器(如本地硬盤或本地內(nèi)存)中開辟出一塊獨立的存儲空間,只能供該客戶端存儲相應(yīng)的數(shù)據(jù)信息,其他客戶端無權(quán)限讀取該客戶端的本地數(shù)據(jù)庫中的數(shù)據(jù)信息。該客戶端可以在離線狀態(tài)下對自身本地數(shù)據(jù)庫中的數(shù)據(jù)信息進行增加、刪除及檢索等管理和控制。該本地數(shù)據(jù)庫中的數(shù)據(jù)信息通常不重復(fù),其數(shù)據(jù)結(jié)構(gòu)獨立于其他客戶端,既能保證數(shù)據(jù)的正確性又能防止不同客戶端之間的不正常交互作用。
[0043]104、客戶端根據(jù)讀取的HTML文件對網(wǎng)頁進行渲染。
[0044]當客戶端從本地數(shù)據(jù)庫中讀取到文件標識相同的HTML文件后,開始根據(jù)HTML文件對網(wǎng)頁進行渲染。HTML文件通過標記符號來標記要顯示的網(wǎng)頁中的各個部分。例如HTML文件中記錄有標記符號<html>和</html>,分別表示該文件的開頭和結(jié)尾;標記符號〈head〉和〈/head〉分別表示文件頭部信息的開始和結(jié)尾;標記符號〈body〉和〈/body〉分別表示正文的開始和結(jié)尾??蛻舳藢W(wǎng)頁的渲染是通過讀取HTML文件中的標記符號的方式來解釋和顯示其標記的內(nèi)容,對書寫出錯的標記將不指出其錯誤,且不停止其解釋執(zhí)行過程,編程者只能通過顯示效果來分析出錯原因和出錯部位。對應(yīng)不同的客戶端,對同一標記符號可能會有不完全相同的解釋,因而其渲染的網(wǎng)頁可能會有不同的顯示效果。
[0045]本發(fā)明實施例提供的網(wǎng)頁渲染的方法,能夠由服務(wù)器根據(jù)HTML文件的文件標識進行比對的方式,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件,在沒有更新文件的情況下,客戶端可以根據(jù)服務(wù)器下發(fā)的離線渲染指令從本地數(shù)據(jù)庫中讀取此前存儲的HTML文件,從而對網(wǎng)頁進行渲染。與現(xiàn)有技術(shù)相比,本發(fā)明能夠避免每次渲染網(wǎng)頁時都從服務(wù)器獲取HTML文件,在HTML文件沒有更新的情況下可以使客戶端離線對網(wǎng)頁進行渲染。由于無需向服務(wù)器請求HTML文件的數(shù)據(jù),因此網(wǎng)頁渲染的速度不受網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制,可以極大提高網(wǎng)頁渲染的速度。
[0046]進一步的,與上述方法相對應(yīng)的,本發(fā)明實施例還提供一種網(wǎng)頁渲染的方法,該方法主要用于服務(wù)器一側(cè),用以與上述客戶端一側(cè)的方法呼應(yīng)。如圖2所示,該方法包括:
[0047]201、服務(wù)器接收客戶端上報的超文本標記語言HTML文件的文件標識。
[0048]在客戶端進行網(wǎng)頁渲染時,客戶端需要獲取相關(guān)網(wǎng)頁的HTML文件并對HTML文件進行解釋,從而完成對網(wǎng)頁的渲染,使網(wǎng)頁顯示出完整的內(nèi)容?,F(xiàn)有技術(shù)中,由于HTML文件通常存儲在服務(wù)器硬盤上,因此客戶端獲取HTML文件就必須通過傳輸協(xié)議的方式遠程獲取,這一過程會受到網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制。
[0049]在本發(fā)明實施例中,對應(yīng)上述客戶端一側(cè)方法中的步驟101,在進行網(wǎng)頁渲染時,服務(wù)器可以先接收客戶端上報的HTML文件的文件標識,以便服務(wù)器將該文件標識與網(wǎng)絡(luò)側(cè)的相應(yīng)HTML文件的文件標識進行比對,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件。
[0050]202、服務(wù)器判斷接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同。
[0051]由于一個文件標識唯一表示一個HTML文件,如果HTML文件有更新文件,則更新后的HTML文件會重新獲得一個新的文件標識,因此服務(wù)器可以通過比對文件標識的方式判斷HTML文件是否有更新文件,如果相應(yīng)的HTML文件的文件標識相同,則客戶端不必從服務(wù)器獲取該HTML文件,這樣會節(jié)約服務(wù)器處理資源,提高獲取HTML文件的速度。如果相應(yīng)的HTML文件的文件標識不同,則客戶端從服務(wù)器獲取該最新的HTML文件。
[0052]203、服務(wù)器向客戶端下發(fā)離線渲染指令。
[0053]在服務(wù)器將接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識進行比對后,若接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同,則客戶端可以從其他地方獲取相應(yīng)的HTML文件。此時,服務(wù)器可以指示客戶端執(zhí)行后續(xù)的獲取操作。在實際過程中,月艮務(wù)器可以向客戶端下發(fā)離線渲染指令,該指令用于指示客戶端從本地數(shù)據(jù)庫中獲取需要的HTML文件用于對網(wǎng)頁進行渲染。
[0054]本發(fā)明實施例提供的網(wǎng)頁渲染的方法,能夠由服務(wù)器根據(jù)HTML文件的文件標識進行比對的方式,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件,在沒有更新文件的情況下,客戶端可以根據(jù)服務(wù)器下發(fā)的離線渲染指令從本地數(shù)據(jù)庫中讀取此前存儲的HTML文件,從而對網(wǎng)頁進行渲染。與現(xiàn)有技術(shù)相比,本發(fā)明能夠避免每次渲染網(wǎng)頁時都從服務(wù)器獲取HTML文件,在HTML文件沒有更新的情況下可以使客戶端離線對網(wǎng)頁進行渲染。由于無需向服務(wù)器請求HTML文件的數(shù)據(jù),因此網(wǎng)頁渲染的速度不受網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制,可以極大提高網(wǎng)頁渲染的速度。
[0055]進一步的,作為對上述客戶端一側(cè)的方法及服務(wù)器一側(cè)的方法的細化和擴展,本實施例針對實施過程中的不同情況進行詳細說明如下。下述示例中的客戶端為瀏覽器,HTML文件為HTML5文件,本地數(shù)據(jù)庫為基于HTML5的WebSQL數(shù)據(jù)庫。WebSQL數(shù)據(jù)庫是在瀏覽器模擬數(shù)據(jù)庫,可以使用JS文件來操作結(jié)構(gòu)化查詢語言(Structured Query Language,簡稱SQL)完成對數(shù)據(jù)的讀寫。WebSQL數(shù)據(jù)庫存儲空間大,不僅能對簡單的關(guān)鍵值或簡單對象(例如應(yīng)用程序設(shè)置或應(yīng)用程序狀態(tài))進行存儲,而且存儲結(jié)構(gòu)自由,同時還能對瑣碎的數(shù)據(jù)關(guān)系進行處理,非常適合作為本地存儲的數(shù)據(jù)庫。當然,也可以使用Webstorage或Localstorage作為本地數(shù)據(jù)庫,本實施例對此不作限制。
[0056]在實際過程中,瀏覽器可能會重復(fù)打開某些網(wǎng)頁,這些網(wǎng)頁通常都被作為緩存存儲在本地數(shù)據(jù)庫WebSQL中。但是瀏覽器也會打開一些之前沒訪問過的新網(wǎng)頁,當瀏覽器首次打開某個網(wǎng)頁時,本地的WebSQL數(shù)據(jù)庫中不會存儲該網(wǎng)頁的HTML文件信息。此時瀏覽器只能從服務(wù)器獲取該HTML文件,才能對該網(wǎng)頁進行渲染。因此,服務(wù)器在瀏覽器首次打開某個網(wǎng)頁時可以直接向瀏覽器下發(fā)該HTML文件,瀏覽器接收到該HTML文件后將其存儲在本地的WebSQL數(shù)據(jù)庫中,以便瀏覽器后續(xù)再次渲染該網(wǎng)頁時可以從WebSQL數(shù)據(jù)庫中讀取該HTML文件,無需向服務(wù)器側(cè)獲取。
[0057]當瀏覽器再次打開某個網(wǎng)頁時,本地的WebSQL數(shù)據(jù)庫中存儲有上一次渲染網(wǎng)頁時的HTML文件,由于該HTML文件有可能進行過更新,因此瀏覽器獲取HTML文件的來源有兩種,一種是從服務(wù)器側(cè)獲取,一種是從本地的WebSQL數(shù)據(jù)庫中獲取。此時,瀏覽器可以根據(jù)服務(wù)器的指示獲取HTML文件。因此瀏覽器可以先向服務(wù)器上報該HTML文件的文件標識,供服務(wù)器將該文件標識與網(wǎng)絡(luò)側(cè)的該網(wǎng)頁最新的HTML文件的文件標識進行比對,判斷該HTML文件是否有更新文件。若文件標識不同,則說明該HTML文件已經(jīng)更新,服務(wù)器向瀏覽器下發(fā)該HTML文件的更新文件,瀏覽器根據(jù)該更新文件對網(wǎng)頁進行渲染。若文件標識相同,則說明上次渲染該網(wǎng)頁的HTML文件還可以繼續(xù)使用,瀏覽器可以從WebSQL數(shù)據(jù)庫中獲取該HTML文件。此時,瀏覽器根據(jù)接收的服務(wù)器下發(fā)的離線渲染指令從WebSQL數(shù)據(jù)庫中讀取該HTML文件。
[0058]在上述服務(wù)器判斷瀏覽器上報的文件標識與網(wǎng)絡(luò)側(cè)的該網(wǎng)頁最新的HTML文件的文件標識不一樣的情況下,可以在上述步驟202之后執(zhí)行步驟204服務(wù)器向客戶端下發(fā)HTML文件的更新文件,瀏覽器接收到服務(wù)器下發(fā)的該HTML文件的更新文件除了用于渲染網(wǎng)頁外,還需要存儲在本地的WebSQL數(shù)據(jù)庫中。這里的存儲存在兩種情況,一種是保留原HTML文件的存儲,一種是覆蓋原HTML文件的存儲,即將原HTML文件進行替換,數(shù)據(jù)庫中只保留最新的HTML文件。
[0059]當采用保留原HTML文件的存儲方式時,就需要對HTML文件的新舊狀態(tài)進行區(qū)分,此時可以采用添加時間戳的方式,通過時間先后可以判斷HTML文件的新舊狀態(tài)。若采用這種存儲方式,就需要在一段時間后釋放WebSQL數(shù)據(jù)庫中的數(shù)據(jù),以便WebSQL數(shù)據(jù)庫能容納更多的新數(shù)據(jù)。當然,在釋放數(shù)據(jù)時也是按照數(shù)據(jù)的時間戳將舊數(shù)據(jù)釋放,保留最新的數(shù)據(jù)。
[0060]當采用覆蓋原HTML文件的存儲方式時,HTML文件的更新文件會替換掉WebSQL數(shù)據(jù)庫中的舊HTML文件,即WebSQL數(shù)據(jù)庫中只保留某個網(wǎng)頁或某類相同網(wǎng)頁的一個最新HTML文件。在進行替換保存時,可以按照文件的ID自增量將比更新文件小一個單位的文件替換掉,這樣WebSQL數(shù)據(jù)庫中存儲都就是網(wǎng)頁最新的一個HTML文件。示例性的,若上一次渲染淘寶首頁時使用的是WebSQL數(shù)據(jù)庫中的HTML-TB3文件,當淘寶首頁進行改版后,瀏覽器渲染網(wǎng)頁時獲取到最新的HTML-TB4文件,在將HTML-TB4文件進行保存時會自動覆蓋掉HTML-TB3文件,使WebSQL數(shù)據(jù)庫中只保留最新的HTML-TB4文件。
[0061]在上述HTML文件有更新文件時,其更新程度也會存在多種情況,有些文件更新較多,而有些文件更新較少。在實際應(yīng)用中,大部分情況下網(wǎng)頁HTML文件只會作小量更新,如文件中一條代碼的改變或文件中搜索框區(qū)塊的改變。當服務(wù)器把這些改變較小的更新文件全部下發(fā)給瀏覽器時,整個文件中起關(guān)鍵作用的只是改變的一小部分文件片段,針對這種文件小量更新的情況,可以通過將HTML文件劃分為不同區(qū)塊的方式進行處理。
[0062]在實際應(yīng)用中,可以將整個HTML文件的內(nèi)容按照功能和類型劃分為不同的區(qū)塊,如搜索欄區(qū)塊、圖片區(qū)塊、文字區(qū)塊、窗口區(qū)塊和工具欄區(qū)塊等。每個區(qū)塊都有一個HTML文件片段,相應(yīng)的,這些HTML文件片段也會被賦予一個標識,稱為HTML片段標識。這里的HTML片段標識與上述HTML文件的文件標識的作用和性質(zhì)一樣,是用來區(qū)分不同的HTML文件片段,即區(qū)分網(wǎng)頁中的不同區(qū)塊。
[0063]當HTML文件有更新文件時,其可能只更新了 HTML文件中的對應(yīng)網(wǎng)頁中搜索欄的文件片段。因此,與上述將整個HTML文件作為一個整體進行處理的方式一樣,當瀏覽器向服務(wù)器上報網(wǎng)頁各個區(qū)塊的HTML片段標識后,服務(wù)器將這些上報的HTML片段標識與網(wǎng)絡(luò)側(cè)的HTML片段標識進行比對,發(fā)現(xiàn)只有一個HTML片段標識發(fā)生變化,這個改變的HTML片段標識對應(yīng)的就是網(wǎng)頁中搜索欄的更新文件片段。服務(wù)器只把更新的HTML文件片段下發(fā)給瀏覽器,其他沒有更新的HTML文件片段就可以從WebSQL數(shù)據(jù)庫中獲取。
[0064]瀏覽器在對網(wǎng)頁進行渲染時,除了主要對HTML文件進行解釋,還需要利用CSS文件和/或JS文件使網(wǎng)頁呈現(xiàn)更豐富的樣式結(jié)構(gòu)和/或人機交互功能。與HTML文件一樣,CSS文件和JS文件也會更新,其更新情況和上述HTML文件的更新情況類似,也會存在小量更新。同樣的,瀏覽器除了可以向服務(wù)器上報整個CSS文件的文件標識或整個JS文件的文件標識,供服務(wù)器判斷這些文件是否有更新文件時,瀏覽器還可以上報CSS文件或JS文件中的各個代碼片段的代碼片段標識,以便服務(wù)器根據(jù)代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有代碼片段的更新片段。若這些代碼片段標識發(fā)生改變,則服務(wù)器向瀏覽器下發(fā)代碼片段的更新片段。
[0065]在實際應(yīng)用中,如果HTML文件、CSS文件和JS文件等都有更新文件時,服務(wù)器會分別向瀏覽器下發(fā)不同類文件的更新文件,導(dǎo)致下發(fā)的次數(shù)較多。因此,基于這幾類文件在代碼編輯過程中的一些格式的特點,本實施例可以將CSS文件和/或JS文件(CSS更新文件和/或JS更新文件)編輯在HTML文件的更新文件內(nèi),形成嵌入式的HTML更新文件,這樣在服務(wù)器下發(fā)HTML更新文件時,就可以一次性將CSS文件和/或JS文件一同下發(fā),減少服務(wù)器下發(fā)文件的次數(shù)。示例性的,在HTML文件中嵌入一個外部JS腳本文件時,可以利用HTML〈script>標簽在HTML頁面中插入一段JS:〈script type =“text/javascript” >document.write ( “Hello World !,,)〈/script〉。
[0066]當然,嵌入HTML文件內(nèi)的可以是整個CSS文件和/或整個JS文件,也可以是CSS文件和/或JS文件中的代碼片段,服務(wù)器下發(fā)的HTML更新文件中可以包含CSS和/或JS更新文件,也可以包含CSS和/或JS更新片段。
[0067]上述文件標識、代碼片段標識和HTML片段標識包括但不限于時間戳、文件版本號、文件鍵值、身份標識ID及MD5,無論是系統(tǒng)分配還是編程人員根據(jù)編程規(guī)則自行定義的標識,只要能唯一代表HTML、CSS、JS等文件、文件片段和代碼片段即可。
[0068]本發(fā)明實施例將HTML文件劃分為不同的區(qū)塊進行上報和下發(fā),使得服務(wù)器只下發(fā)HTML文件的更新片段,能充分減少服務(wù)器下發(fā)的數(shù)據(jù)量,同時可以將CSS文件和/或JS文件(文件片段或代碼片段)寫入HTML文件內(nèi)一同下發(fā),能充分減少服務(wù)器下發(fā)的次數(shù),這些實施方式能夠合理利用服務(wù)器的處理資源,提高網(wǎng)頁渲染的速度。
[0069]進一步的,作為對上述方法的實現(xiàn),本發(fā)明實施例還提供了一種網(wǎng)頁渲染的裝置,該裝置通常位于客戶端,或獨立于客戶端但與客戶端之間具有數(shù)據(jù)交互關(guān)系,用以實現(xiàn)上述方法。如圖3所示,該裝置包括:上報單元31、接收單元32、讀取單元33以及處理單元34,其中,
[0070]上報單元31,用于在進行網(wǎng)頁渲染時,向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便服務(wù)器根據(jù)文件標識判斷網(wǎng)絡(luò)側(cè)是否有HTML文件的更新文件;
[0071]接收單元32,用于當服務(wù)器根據(jù)上報單元31上報的文件標識判斷網(wǎng)絡(luò)側(cè)沒有HTML文件的更新文件時,接收服務(wù)器下發(fā)的離線渲染指令;
[0072]讀取單元33,用于根據(jù)接收單元32接收的離線渲染指令讀取本地數(shù)據(jù)庫中存儲的HTML文件;
[0073]處理單元34,用于根據(jù)讀取單元33讀取的HTML文件對網(wǎng)頁進行渲染。
[0074]進一步的,該裝置還包括:
[0075]存儲單元35 ;
[0076]該接收單元32還用于在對網(wǎng)頁進行首次渲染時,接收服務(wù)器下發(fā)的HTML文件;
[0077]該存儲單元35用于將接收單元32接收的HTML文件存儲到本地數(shù)據(jù)庫。
[0078]進一步的,該接收單元32用于當服務(wù)器判斷網(wǎng)絡(luò)側(cè)有HTML文件的更新文件時,接收服務(wù)器下發(fā)的HTML文件的更新文件;
[0079]該處理單元34用于根據(jù)接收單元32接收的更新文件對網(wǎng)頁進行渲染。
[0080]進一步的,該存儲單元35用于在接收單元32接收服務(wù)器下發(fā)的HTML文件的更新文件之后,根據(jù)更新文件對本地數(shù)據(jù)庫中的HTML文件進行替換。
[0081]進一步的,該上報單元31還用于上報HTML文件片段的HTML片段標識。
[0082]進一步的,該上報單元31還用于上報層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識,以便服務(wù)器根據(jù)代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有代碼片段的更新片段;
[0083]該接收單元32還用于當服務(wù)器判斷網(wǎng)絡(luò)側(cè)有代碼片段的更新片段時,接收服務(wù)器下發(fā)的更新片段。
[0084]進一步的,該讀取單元33還用于從接收單元32接收的更新文件中讀取CSS和/或JS的更新片段。
[0085]本發(fā)明實施例提供的網(wǎng)頁渲染的裝置,能夠由服務(wù)器根據(jù)HTML文件的文件標識進行比對的方式,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件,在沒有更新文件的情況下,客戶端可以根據(jù)服務(wù)器下發(fā)的離線渲染指令從本地數(shù)據(jù)庫中讀取此前存儲的HTML文件,從而對網(wǎng)頁進行渲染。與現(xiàn)有技術(shù)相比,本發(fā)明能夠避免每次渲染網(wǎng)頁時都從服務(wù)器獲取HTML文件,在HTML文件沒有更新的情況下可以使客戶端離線對網(wǎng)頁進行渲染。由于無需向服務(wù)器請求HTML文件的數(shù)據(jù),因此網(wǎng)頁渲染的速度不受網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制,可以極大提高網(wǎng)頁渲染的速度。
[0086]此外,本發(fā)明實施例將HTML文件劃分為不同的區(qū)塊進行上報和下發(fā),使得服務(wù)器只下發(fā)HTML文件的更新片段,能充分減少服務(wù)器下發(fā)的數(shù)據(jù)量,同時可以將CSS文件和/或JS文件(文件片段或代碼片段)寫入HTML文件內(nèi)一同下發(fā),能充分減少服務(wù)器下發(fā)的次數(shù),這些實施方式能夠合理利用服務(wù)器的處理資源,提高網(wǎng)頁渲染的速度。
[0087]進一步的,作為對上述方法的實現(xiàn),與上述裝置相對應(yīng)的,本發(fā)明實施例還提供了一種網(wǎng)頁渲染的裝置,該裝置通常位于服務(wù)器,或獨立于服務(wù)器但與服務(wù)器之間具有數(shù)據(jù)交互關(guān)系,用以實現(xiàn)上述方法。如圖4所示,該裝置包括:接收單元41、判斷單元42以及下發(fā)單元43,其中,
[0088]接收單元41,用于在客戶端進行網(wǎng)頁渲染時,接收客戶端上報的超文本標記語言HTML文件的文件標識;
[0089]判斷單元42,用于判斷接收單元41接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同;
[0090]下發(fā)單元43,用于當判斷單元42判斷接收的文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同時,向客戶端下發(fā)離線渲染指令,指示客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對網(wǎng)頁進行渲染。
[0091]進一步的,該下發(fā)單元43用于在客戶端對網(wǎng)頁進行首次渲染時,向客戶端下發(fā)HTML文件,以便客戶端將HTML文件存儲到本地數(shù)據(jù)庫。
[0092]進一步的,該下發(fā)單元43用于當判斷單元42判斷網(wǎng)絡(luò)側(cè)有HTML文件的更新文件時,向客戶端下發(fā)HTML文件的更新文件,以便客戶端根據(jù)接收的更新文件對網(wǎng)頁進行渲染。
[0093]進一步的,該接收單元41還用于接收HTML文件片段的HTML片段標識。
[0094]進一步的,該接收單元41還用于接收客戶端上報的層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識;
[0095]該判斷單元42還用于根據(jù)接收單元41接收的代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有代碼片段的更新片段;
[0096]該下發(fā)單元43還用于當判斷單元42判斷網(wǎng)絡(luò)側(cè)有代碼片段的更新片段時,向客戶端下發(fā)更新片段。
[0097]進一步的,該裝置還包括:
[0098]寫入單元44,用于將CSS和/或JS的更新片段寫入到更新文件中;
[0099]該下發(fā)單元43用于向客戶端下發(fā)寫入單元44寫入CSS和/或JS的更新片段的更新文件。
[0100]本發(fā)明實施例提供的網(wǎng)頁渲染的裝置,能夠由服務(wù)器根據(jù)HTML文件的文件標識進行比對的方式,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件,在沒有更新文件的情況下,客戶端可以根據(jù)服務(wù)器下發(fā)的離線渲染指令從本地數(shù)據(jù)庫中讀取此前存儲的HTML文件,從而對網(wǎng)頁進行渲染。與現(xiàn)有技術(shù)相比,本發(fā)明能夠避免每次渲染網(wǎng)頁時都從服務(wù)器獲取HTML文件,在HTML文件沒有更新的情況下可以使客戶端離線對網(wǎng)頁進行渲染。由于無需向服務(wù)器請求HTML文件的數(shù)據(jù),因此網(wǎng)頁渲染的速度不受網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制,可以極大提高網(wǎng)頁渲染的速度。
[0101]此外,本發(fā)明實施例將HTML文件劃分為不同的區(qū)塊進行上報和下發(fā),使得服務(wù)器只下發(fā)HTML文件的更新片段,能充分減少服務(wù)器下發(fā)的數(shù)據(jù)量,同時可以將CSS文件和/或JS文件(文件片段或代碼片段)寫入HTML文件內(nèi)一同下發(fā),能充分減少服務(wù)器下發(fā)的次數(shù),這些實施方式能夠合理利用服務(wù)器的處理資源,提高網(wǎng)頁渲染的速度。
[0102]進一步的,作為對上述方法的實現(xiàn)以及上述裝置的應(yīng)用,如圖5所示,本發(fā)明實施例還提供了一種網(wǎng)頁渲染的系統(tǒng),該系統(tǒng)包含客戶端51和服務(wù)器52。其中,客戶端51包含有實施例中圖3所示的裝置,服務(wù)器52包含有實施例中圖4所示的裝置。
[0103]本發(fā)明實施例提供的網(wǎng)頁渲染的系統(tǒng),能夠由服務(wù)器根據(jù)HTML文件的文件標識進行比對的方式,判斷網(wǎng)絡(luò)側(cè)是否有該HTML文件的更新文件,在沒有更新文件的情況下,客戶端可以根據(jù)服務(wù)器下發(fā)的離線渲染指令從本地數(shù)據(jù)庫中讀取此前存儲的HTML文件,從而對網(wǎng)頁進行渲染。與現(xiàn)有技術(shù)相比,本發(fā)明能夠避免每次渲染網(wǎng)頁時都從服務(wù)器獲取HTML文件,在HTML文件沒有更新的情況下可以使客戶端離線對網(wǎng)頁進行渲染。由于無需向服務(wù)器請求HTML文件的數(shù)據(jù),因此網(wǎng)頁渲染的速度不受網(wǎng)絡(luò)帶寬或服務(wù)器處理能力的限制,可以極大提高網(wǎng)頁渲染的速度。
[0104]此外,本發(fā)明實施例將HTML文件劃分為不同的區(qū)塊進行上報和下發(fā),使得服務(wù)器只下發(fā)HTML文件的更新片段,能充分減少服務(wù)器下發(fā)的數(shù)據(jù)量,同時可以將CSS文件和/或JS文件(文件片段或代碼片段)寫入HTML文件內(nèi)一同下發(fā),能充分減少服務(wù)器下發(fā)的次數(shù),這些實施方式能夠合理利用服務(wù)器的處理資源,提高網(wǎng)頁渲染的速度。
[0105]本發(fā)明的實施例公開了:
[0106]Al、一種網(wǎng)頁渲染的方法,其特征在于,所述方法包括:
[0107]在進行網(wǎng)頁渲染時,客戶端向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便所述服務(wù)器根據(jù)所述文件標識判斷網(wǎng)絡(luò)側(cè)是否有所述HTML文件的更新文件;
[0108]若所述服務(wù)器判斷網(wǎng)絡(luò)側(cè)沒有所述HTML文件的更新文件,則所述客戶端接收所述服務(wù)器下發(fā)的離線渲染指令;
[0109]所述客戶端根據(jù)所述離線渲染指令讀取本地數(shù)據(jù)庫中存儲的所述HTML文件;
[0110]所述客戶端根據(jù)讀取的所述HTML文件對所述網(wǎng)頁進行渲染。
[0111]A2、根據(jù)權(quán)利要求Al所述的方法,其特征在于,在對所述網(wǎng)頁進行首次渲染時,所述方法進一步包括:
[0112]所述客戶端接收所述服務(wù)器下發(fā)的所述HTML文件;
[0113]所述客戶端將所述HTML文件存儲到所述本地數(shù)據(jù)庫。
[0114]A3、根據(jù)權(quán)利要求Al所述的方法,其特征在于,若所述服務(wù)器判斷網(wǎng)絡(luò)側(cè)有所述HTML文件的更新文件,則所述方法進一步包括:
[0115]所述客戶端接收所述服務(wù)器下發(fā)的所述HTML文件的更新文件;
[0116]所述客戶端根據(jù)接收的所述更新文件對所述網(wǎng)頁進行渲染。
[0117]A4、根據(jù)權(quán)利要求A3所述的方法,其特征在于,在所述客戶端接收所述服務(wù)器下發(fā)的所述HTML文件的更新文件之后,所述方法進一步包括:
[0118]所述客戶端根據(jù)所述更新文件對所述本地數(shù)據(jù)庫中的所述HTML文件進行替換。
[0119]A5、根據(jù)權(quán)利要求Al所述的方法,其特征在于,所述HTML文件為所述網(wǎng)頁中不同區(qū)塊的HTML文件片段;
[0120]所述HTML文件的文件標識為所述HTML文件片段的HTML片段標識。
[0121]A6、根據(jù)權(quán)利要求Al所述的方法,其特征在于,所述方法進一步包括:
[0122]所述客戶端上報層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識,以便所述服務(wù)器根據(jù)所述代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有所述代碼片段的更新片段;
[0123]若所述服務(wù)器判斷所述網(wǎng)絡(luò)側(cè)有所述代碼片段的更新片段,則所述客戶端接收所述服務(wù)器下發(fā)的所述更新片段。
[0124]A7、根據(jù)權(quán)利要求A6所述的方法,其特征在于,所述客戶端接收所述服務(wù)器下發(fā)的所述更新片段,包括:
[0125]所述客戶端從所述服務(wù)器下發(fā)的更新文件中讀取所述CSS和/或所述JS的所述更新片段。
[0126]AS、根據(jù)權(quán)利要求Al至A7中任一項所述的方法,其特征在于,所述文件標識包括:
[0127]時間戳、文件版本號、文件鍵值、身份標識ID以及信息摘要算法5值MD5。
[0128]B9、一種網(wǎng)頁渲染的方法,其特征在于,所述方法包括:
[0129]在客戶端進行網(wǎng)頁渲染時,服務(wù)器接收所述客戶端上報的超文本標記語言HTML文件的文件標識;
[0130]所述服務(wù)器判斷接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同;
[0131]若接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同,則所述服務(wù)器向所述客戶端下發(fā)離線渲染指令,指示所述客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對所述網(wǎng)頁進行渲染。
[0132]B10、根據(jù)權(quán)利要求B9所述的方法,其特征在于,在所述客戶端對所述網(wǎng)頁進行首次渲染時,所述方法進一步包括:
[0133]所述服務(wù)器向所述客戶端下發(fā)所述HTML文件,以便所述客戶端將所述HTML文件存儲到所述本地數(shù)據(jù)庫。
[0134]B11、根據(jù)權(quán)利要求B9所述的方法,其特征在于,若所述服務(wù)器判斷網(wǎng)絡(luò)側(cè)有所述HTML文件的更新文件,則所述方法進一步包括:
[0135]所述服務(wù)器向所述客戶端下發(fā)所述HTML文件的更新文件,以便所述客戶端根據(jù)接收的所述更新文件對所述網(wǎng)頁進行渲染。
[0136]B12、根據(jù)權(quán)利要求B9所述的方法,其特征在于,所述HTML文件為所述網(wǎng)頁中不同區(qū)塊的HTML文件片段;
[0137]所述HTML文件的文件標識為所述HTML文件片段的HTML片段標識。
[0138]B13、根據(jù)權(quán)利要求B9所述的方法,其特征在于,所述方法進一步包括:
[0139]所述服務(wù)器接收所述客戶端上報的層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識;
[0140]所述服務(wù)器根據(jù)所述代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有所述代碼片段的更新片段;
[0141]若所述服務(wù)器判斷所述網(wǎng)絡(luò)側(cè)有所述代碼片段的更新片段,則所述服務(wù)器向所述客戶端下發(fā)所述更新片段。
[0142]B14、根據(jù)權(quán)利要求B13所述的方法,其特征在于,所述服務(wù)器向所述客戶端下發(fā)所述更新片段,包括:
[0143]所述服務(wù)器將所述CSS和/或所述JS的所述更新片段寫入所述更新文件中;
[0144]所述服務(wù)器向客戶端下發(fā)攜帶有所述CSS和/或所述JS的所述更新片段的更新文件。
[0145]B15、根據(jù)權(quán)利要求B9至B14中任一項所述的方法,其特征在于,所述文件標識包括:
[0146]時間戳、文件版本號、文件鍵值、身份標識ID以及信息摘要算法5值MD5。
[0147]C16、一種網(wǎng)頁渲染的裝置,其特征在于,所述裝置包括:
[0148]上報單元,用于在進行網(wǎng)頁渲染時,向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便所述服務(wù)器根據(jù)所述文件標識判斷網(wǎng)絡(luò)側(cè)是否有所述HTML文件的更新文件;
[0149]接收單元,用于當所述服務(wù)器根據(jù)所述上報單元上報的所述文件標識判斷網(wǎng)絡(luò)側(cè)沒有所述HTML文件的更新文件時,接收所述服務(wù)器下發(fā)的離線渲染指令;
[0150]讀取單元,用于根據(jù)所述接收單元接收的所述離線渲染指令讀取本地數(shù)據(jù)庫中存儲的所述HTML文件;
[0151]處理單元,用于根據(jù)所述讀取單元讀取的所述HTML文件對所述網(wǎng)頁進行渲染。
[0152]C17、根據(jù)權(quán)利要求C16所述的裝置,其特征在于,所述裝置進一步包括:
[0153]存儲單元;
[0154]所述接收單元,還用于在對所述網(wǎng)頁進行首次渲染時,接收所述服務(wù)器下發(fā)的所述HTML文件;
[0155]所述存儲單元,用于將所述接收單元接收的所述HTML文件存儲到所述本地數(shù)據(jù)庫。
[0156]C18、根據(jù)權(quán)利要求C16所述的裝置,其特征在于,所述接收單元,用于當所述服務(wù)器判斷網(wǎng)絡(luò)側(cè)有所述HTML文件的更新文件時,接收所述服務(wù)器下發(fā)的所述HTML文件的更新文件;
[0157]所述處理單元,用于根據(jù)所述接收單元接收的所述更新文件對所述網(wǎng)頁進行渲染。
[0158]C19、根據(jù)權(quán)利要求C18所述的裝置,其特征在于,所述存儲單元,用于在所述接收單元接收所述服務(wù)器下發(fā)的所述HTML文件的更新文件之后,根據(jù)所述更新文件對所述本地數(shù)據(jù)庫中的所述HTML文件進行替換。
[0159]C20、根據(jù)權(quán)利要求C16所述的裝置,其特征在于,所述HTML文件為所述網(wǎng)頁中不同區(qū)塊的HTML文件片段;
[0160]所述上報單元上報的所述HTML文件的文件標識為所述HTML文件片段的HTML片段標識。
[0161]C21、根據(jù)權(quán)利要求C16所述的裝置,其特征在于,
[0162]所述上報單元,還用于上報層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識,以便所述服務(wù)器根據(jù)所述代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有所述代碼片段的更新片段;
[0163]所述接收單元,還用于當所述服務(wù)器判斷所述網(wǎng)絡(luò)側(cè)有所述代碼片段的更新片段時,接收所述服務(wù)器下發(fā)的所述更新片段。
[0164]C22、根據(jù)權(quán)利要求C21所述的裝置,其特征在于,所述讀取單元,還用于從所述接收單元接收的更新文件中讀取所述CSS和/或所述JS的所述更新片段。
[0165]D23、一種網(wǎng)頁渲染的裝置,其特征在于,所述裝置包括:
[0166]接收單元,用于在客戶端進行網(wǎng)頁渲染時,接收所述客戶端上報的超文本標記語言HTML文件的文件標識;
[0167]判斷單元,用于判斷所述接收單元接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同;
[0168]下發(fā)單元,用于當所述判斷單元判斷接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同時,向所述客戶端下發(fā)離線渲染指令,指示所述客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對所述網(wǎng)頁進行渲染。
[0169]D24、根據(jù)權(quán)利要求D23所述的裝置,其特征在于,所述下發(fā)單元,用于在所述客戶端對所述網(wǎng)頁進行首次渲染時,向所述客戶端下發(fā)所述HTML文件,以便所述客戶端將所述HTML文件存儲到所述本地數(shù)據(jù)庫。
[0170]D25、根據(jù)權(quán)利要求D23所述的裝置,其特征在于,所述下發(fā)單元,用于當所述判斷單元判斷網(wǎng)絡(luò)側(cè)有所述HTML文件的更新文件時,向所述客戶端下發(fā)所述HTML文件的更新文件,以便所述客戶端根據(jù)接收的所述更新文件對所述網(wǎng)頁進行渲染。
[0171]D26、根據(jù)權(quán)利要求D23所述的裝置,其特征在于,所述HTML文件為所述網(wǎng)頁中不同區(qū)塊的HTML文件片段;
[0172]所述接收單元接收的所述HTML文件的文件標識為所述HTML文件片段的HTML片段標識。
[0173]D27、根據(jù)權(quán)利要求D23所述的裝置,其特征在于,
[0174]所述接收單元,還用于接收所述客戶端上報的層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識;
[0175]所述判斷單元,還用于根據(jù)所述接收單元接收的所述代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有所述代碼片段的更新片段;
[0176]所述下發(fā)單元,還用于當所述判斷單元判斷所述網(wǎng)絡(luò)側(cè)有所述代碼片段的更新片段時,向所述客戶端下發(fā)所述更新片段。
[0177]D28、根據(jù)權(quán)利要求D27所述的裝置,其特征在于,所述裝置還包括:
[0178]寫入單元,用于將所述CSS和/或所述JS的所述更新片段寫入到所述更新文件中;
[0179]所述下發(fā)單元,用于向客戶端下發(fā)所述寫入單元寫入所述CSS和/或所述JS的所述更新片段的更新文件。
[0180]E29、一種網(wǎng)頁渲染的系統(tǒng),其特征在于,所述系統(tǒng)包括:
[0181]客戶端及服務(wù)器;
[0182]其中,所述客戶端包含如權(quán)利要求C16至權(quán)利要求C22中任一項所述的裝置;
[0183]所述服務(wù)器包含如權(quán)利要求D23至權(quán)利要求D28中任一項所述的裝置。
[0184]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0185]可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
[0186]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0187]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0188]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0189]類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0190]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0191]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0192]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的發(fā)明名稱(如確定網(wǎng)站內(nèi)鏈接等級的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0193]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
【權(quán)利要求】
1.一種網(wǎng)頁渲染的方法,其特征在于,所述方法包括: 在進行網(wǎng)頁渲染時,客戶端向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便所述服務(wù)器根據(jù)所述文件標識判斷網(wǎng)絡(luò)側(cè)是否有所述HTML文件的更新文件; 若所述服務(wù)器判斷網(wǎng)絡(luò)側(cè)沒有所述HTML文件的更新文件,則所述客戶端接收所述服務(wù)器下發(fā)的離線渲染指令; 所述客戶端根據(jù)所述離線渲染指令讀取本地數(shù)據(jù)庫中存儲的所述HTML文件; 所述客戶端根據(jù)讀取的所述HTML文件對所述網(wǎng)頁進行渲染。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在對所述網(wǎng)頁進行首次渲染時,所述方法進一步包括: 所述客戶端接收所述服務(wù)器下發(fā)的所述HTML文件; 所述客戶端將所述HTML文件存儲到所述本地數(shù)據(jù)庫。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,若所述服務(wù)器判斷網(wǎng)絡(luò)側(cè)有所述HTML文件的更新文件,則所述方法進一步包括: 所述客戶端接收所述服務(wù)器下發(fā)的所述HTML文件的更新文件; 所述客戶端根據(jù)接收的所述更新文件對所述網(wǎng)頁進行渲染。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述客戶端接收所述服務(wù)器下發(fā)的所述HTML文件的更新文件之后,所述方法進一步包括: 所述客戶端根據(jù)所述更新文件對所述本地數(shù)據(jù)庫中的所述HTML文件進行替換。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述HTML文件為所述網(wǎng)頁中不同區(qū)塊的HTML文件片段; 所述HTML文件的文件標識為所述HTML文件片段的HTML片段標識。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進一步包括: 所述客戶端上報層疊樣式表單CSS和/或腳本語言JS中代碼片段的代碼片段標識,以便所述服務(wù)器根據(jù)所述代碼片段標識判斷網(wǎng)絡(luò)側(cè)是否有所述代碼片段的更新片段; 若所述服務(wù)器判斷所述網(wǎng)絡(luò)側(cè)有所述代碼片段的更新片段,則所述客戶端接收所述服務(wù)器下發(fā)的所述更新片段。
7.—種網(wǎng)頁渲染的方法,其特征在于,所述方法包括: 在客戶端進行網(wǎng)頁渲染時,服務(wù)器接收所述客戶端上報的超文本標記語言HTML文件的文件標識; 所述服務(wù)器判斷接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同;若接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同,則所述服務(wù)器向所述客戶端下發(fā)離線渲染指令,指示所述客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對所述網(wǎng)頁進行渲染。
8.—種網(wǎng)頁渲染的裝置,其特征在于,所述裝置包括: 上報單元,用于在進行網(wǎng)頁渲染時,向服務(wù)器上報超文本標記語言HTML文件的文件標識,以便所述服務(wù)器根據(jù)所述文件標識判斷網(wǎng)絡(luò)側(cè)是否有所述HTML文件的更新文件; 接收單元,用于當所述服務(wù)器根據(jù)所述上報單元上報的所述文件標識判斷網(wǎng)絡(luò)側(cè)沒有所述HTML文件的更新文件時,接收所述服務(wù)器下發(fā)的離線渲染指令; 讀取單元,用于根據(jù)所述接收單元接收的所述離線渲染指令讀取本地數(shù)據(jù)庫中存儲的所述HTML文件; 處理單元,用于根據(jù)所述讀取單元讀取的所述HTML文件對所述網(wǎng)頁進行渲染。
9.一種網(wǎng)頁渲染的裝置,其特征在于,所述裝置包括: 接收單元,用于在客戶端進行網(wǎng)頁渲染時,接收所述客戶端上報的超文本標記語言HTML文件的文件標識; 判斷單元,用于判斷所述接收單元接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識是否相同; 下發(fā)單元,用于當所述判斷單元判斷接收的所述文件標識與網(wǎng)絡(luò)側(cè)最新HTML文件的文件標識相同時,向所述客戶端下發(fā)離線渲染指令,指示所述客戶端根據(jù)本地數(shù)據(jù)庫中的HTML文件對所述網(wǎng)頁進行渲染。
10.一種網(wǎng)頁渲染的系統(tǒng),其特征在于,所述系統(tǒng)包括: 客戶端及服務(wù)器; 其中,所述客戶端包含如權(quán)利要求8所述的裝置; 所述服務(wù)器包含如權(quán)利要求9所述的裝置。
【文檔編號】G06F17/30GK104462231SQ201410642767
【公開日】2015年3月25日 申請日期:2014年11月11日 優(yōu)先權(quán)日:2014年11月11日
【發(fā)明者】羅正燁 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司