一種關(guān)系鏈數(shù)據(jù)處理的方法和系統(tǒng)、客戶端的制作方法
【專利摘要】本發(fā)明公開了一種關(guān)系鏈數(shù)據(jù)處理的方法和系統(tǒng)、客戶端,方法包括:解析頁面描述語言文檔,當(dāng)解析到所述頁面描述語言文檔中的擴(kuò)展標(biāo)簽時,根據(jù)擴(kuò)展標(biāo)簽的屬性查詢獲取關(guān)系鏈數(shù)據(jù)的接口,并獲取相應(yīng)的關(guān)系鏈數(shù)據(jù);根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁。通過本發(fā)明,實現(xiàn)了在保證關(guān)系鏈安全性的基礎(chǔ)上,第三方對關(guān)系鏈數(shù)據(jù)的展現(xiàn)形式和樣式的靈活控制。
【專利說明】一種關(guān)系鏈數(shù)據(jù)處理的方法和系統(tǒng)、客戶端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,尤其涉及一種關(guān)系鏈數(shù)據(jù)處理的方法和系統(tǒng)、客戶端。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)技術(shù)的應(yīng)用中,關(guān)系鏈?zhǔn)侵竿ㄟ^網(wǎng)絡(luò)、軟件(如即時通訊、微博)等所建立的人與人之間的關(guān)系數(shù)據(jù)的統(tǒng)稱,包括但不限于用戶和好友的資料、用戶與某用戶是否為好友、用戶與好友的互動信息等。關(guān)系鏈托管是指,第三方開發(fā)者使用關(guān)系鏈數(shù)據(jù)的功能時,關(guān)系鏈數(shù)據(jù)不暴露給第三方開發(fā)者,而是通過某種方式被安全的托管。
[0003]現(xiàn)有技術(shù)中,第三方開發(fā)者要使用關(guān)系鏈托管主要是激活運行環(huán)境的托管關(guān)系鏈彈窗,委托運行環(huán)境自身的分享窗口進(jìn)行應(yīng)用(App)的分享。如圖1所示,是現(xiàn)有技術(shù)中一種第三方開發(fā)者使用關(guān)系鏈的運行示意圖。
[0004]現(xiàn)有技術(shù)中的關(guān)系鏈托管主要存在以下缺陷:
[0005]1、提供利用關(guān)系鏈的功能單一,目前只能進(jìn)行微博、好友間等的分享;
[0006]2、由于將關(guān)系鏈的應(yīng)用托管到當(dāng)前運行環(huán)境的窗口上,第三方很難對關(guān)系鏈的數(shù)據(jù)的行為及展現(xiàn)樣式進(jìn)行控制。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明的主要目的在于提供一種關(guān)系鏈數(shù)據(jù)處理的方法和系統(tǒng)、客戶端,以實現(xiàn)在保證關(guān)系鏈安全性的基礎(chǔ)上,第三方對關(guān)系鏈數(shù)據(jù)的展現(xiàn)形式和樣式的靈活控制。
[0008]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0009]本發(fā)明提供一種關(guān)系鏈數(shù)據(jù)處理的方法,該方法包括:
[0010]解析頁面描述語言文檔,當(dāng)解析到所述頁面描述語言文檔中的擴(kuò)展標(biāo)簽時,根據(jù)擴(kuò)展標(biāo)簽的屬性查詢獲取關(guān)系鏈數(shù)據(jù)的接口,并獲取相應(yīng)的關(guān)系鏈數(shù)據(jù);
[0011]根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁。
[0012]較佳的,所述根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁,包括:
[0013]根據(jù)獲取到的關(guān)系鏈數(shù)據(jù)構(gòu)建擴(kuò)展的文檔對象模型DOM樹;
[0014]根據(jù)構(gòu)建的擴(kuò)展的DOM樹、以及解析所述頁面描述語言文檔得到的層疊樣式表CSS文本,構(gòu)建渲染樹;
[0015]從所述渲染樹的根渲染對象開始,以遞歸的方式布局所述渲染樹;
[0016]遍歷布局后的渲染樹并調(diào)用渲染對象的繪制方法,將所述渲染對象渲染到網(wǎng)頁上。
[0017]較佳的,所述以遞歸的方式布局渲染樹包括:
[0018]對于所述渲染樹中遞歸的每一個渲染對象,根據(jù)解析所述頁面描述語言文檔得到的CSS文本,計算其顯示的位置和大小,并根據(jù)所述位置和大小布局所述渲染樹。
[0019]較佳的,所述頁面描述語言文檔為超文本標(biāo)記語言(X)HTML文檔。
[0020]較佳的,該方法進(jìn)一步包括:
[0021]從所述(X)HTML文檔中的擴(kuò)展標(biāo)簽的開始標(biāo)簽中獲取所述擴(kuò)展標(biāo)簽的屬性。
[0022]本發(fā)明還提供了一種客戶端,包括:
[0023]文檔解析模塊,用于解析頁面描述語言文檔;
[0024]數(shù)據(jù)獲取模塊,用于在所述文檔解析模塊解析到所述頁面描述語言文檔中的擴(kuò)展標(biāo)簽時,所述數(shù)據(jù)獲取模塊根據(jù)擴(kuò)展標(biāo)簽的屬性查詢獲取關(guān)系鏈數(shù)據(jù)的接口,并獲取相應(yīng)的關(guān)系鏈數(shù)據(jù);
[0025]網(wǎng)頁渲染模塊,用于根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁。
[0026]較佳的,所述網(wǎng)頁渲染模塊包括:
[0027]文檔對象模型DOM樹構(gòu)建子模塊,用于根據(jù)獲取到的關(guān)系鏈數(shù)據(jù)構(gòu)建擴(kuò)展的DOM樹;
[0028]渲染樹構(gòu)建子模塊,用于根據(jù)構(gòu)建的擴(kuò)展的DOM樹、以及解析所述頁面描述語言文檔得到的層疊樣式表CSS文本,構(gòu)建渲染樹;
[0029]布局子模塊,用于從所述渲染樹的根渲染對象開始,以遞歸的方式布局所述渲染樹;
[0030]渲染子模塊,用于遍歷布局后的渲染樹并調(diào)用渲染對象的繪制方法,將所述渲染對象渲染到網(wǎng)頁上。
[0031]較佳的,所述以遞歸的方式布局渲染樹包括:
[0032]對于所述渲染樹中遞歸的每一個渲染對象,根據(jù)解析所述頁面描述語言文檔得到的CSS文本,計算其顯示的位置和大小,并根據(jù)所述位置和大小布局所述渲染樹。
[0033]較佳的,所述頁面描述語言文檔為超文本標(biāo)記語言(X)HTML文檔。
[0034]較佳的,所述數(shù)據(jù)獲取模塊進(jìn)一步用于,從所述(X)HTML文檔中的擴(kuò)展標(biāo)簽的開始標(biāo)簽中獲取所述擴(kuò)展標(biāo)簽的屬性。
[0035]本發(fā)明還提供了一種關(guān)系鏈數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括:關(guān)系鏈數(shù)據(jù)平臺、第三方服務(wù)器、以及本發(fā)明所述的客戶端,其中,
[0036]所述第三方服務(wù)器,用于存儲和提供頁面描述語言文檔;
[0037]所述關(guān)系鏈數(shù)據(jù)平臺,用于從所述第三方服務(wù)器獲取所述頁面描述語言文檔,并將獲取的所述頁面描述語言文檔提供給所述客戶端;
[0038]所述關(guān)系鏈數(shù)據(jù)平臺還用于,通過所述客戶端的獲取關(guān)系鏈數(shù)據(jù)的接口,向所述客戶端提供相應(yīng)的關(guān)系鏈數(shù)據(jù)查詢服務(wù)。
[0039]本發(fā)明所提供的一種關(guān)系鏈數(shù)據(jù)處理的方法和系統(tǒng)、客戶端,實現(xiàn)了在保證關(guān)系鏈安全性的基礎(chǔ)上,第三方對關(guān)系鏈數(shù)據(jù)的展現(xiàn)形式和樣式的靈活控制。
【專利附圖】
【附圖說明】
[0040]圖1為現(xiàn)有技術(shù)中一種第三方開發(fā)者使用關(guān)系鏈的運行示意圖;
[0041]圖2為本發(fā)明實施例的一種關(guān)系鏈數(shù)據(jù)處理的方法流程圖;
[0042]圖3為本發(fā)明實施例中根據(jù)獲取的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁的流程圖;
[0043]圖4為本發(fā)明實施例的一種關(guān)系鏈數(shù)據(jù)處理的示意圖;
[0044]圖5為本發(fā)明實施例的一種關(guān)系鏈數(shù)據(jù)處理的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0045]下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。
[0046]為安全地利用關(guān)系鏈,關(guān)系鏈數(shù)據(jù)不應(yīng)暴露給第三方,即不開放數(shù)據(jù)接口給第三方,而僅僅讓第三方可以控制展現(xiàn)關(guān)系鏈數(shù)據(jù)的形式和樣式。對于數(shù)據(jù)的渲染,則由運行WebApp的瀏覽器內(nèi)核完成。WebApp是基于瀏覽器內(nèi)核和Web技術(shù)開發(fā)的應(yīng)用。
[0047]為實現(xiàn)上述目的,本發(fā)明實施例提供的一種關(guān)系鏈數(shù)據(jù)處理的方法,如圖2所示,主要包括以下步驟:
[0048]步驟201,解析頁面描述語言文檔,當(dāng)解析到所述頁面描述語言文檔中的擴(kuò)展標(biāo)簽時,根據(jù)擴(kuò)展標(biāo)簽的屬性查詢獲取關(guān)系鏈數(shù)據(jù)的接口,并獲取相應(yīng)的關(guān)系鏈數(shù)據(jù)。
[0049]本發(fā)明實施例的頁面描述語目可以是⑴HTML,⑴HTML是超文本標(biāo)記語目(HTML, HyperText Markup Language)和可擴(kuò)展超文本標(biāo)記語言(XHTML, ExtensibleHyperText Markup Language)的統(tǒng)稱,為描述方便,后續(xù)統(tǒng)稱為超文本標(biāo)記語言,(X)HTML是網(wǎng)頁的重要組成部分。HTML文檔包括HTML標(biāo)簽和純文本,XHTML的表現(xiàn)形式和作用與HTML類似,但在語法上更加嚴(yán)格。(X)HTML的主要作用就是描述網(wǎng)頁,瀏覽器可以解析用(X)HTML描述的網(wǎng)頁,并將網(wǎng)頁展示給用戶。
[0050]其中,(X)HTML標(biāo)簽是由尖括號包圍的關(guān)鍵詞,如標(biāo)簽通常是成對出現(xiàn)的,如<b>和</b>。⑴HTML標(biāo)簽是⑴HTML文檔的重要組成部分,⑴HTML文檔和⑴HTML元素是通過(X) HTML標(biāo)簽進(jìn)行標(biāo)記的。其中,開始標(biāo)簽是被括號包圍的元素名,如<b>表示開始標(biāo)簽,結(jié)束標(biāo)簽是被括號包圍的斜杠和元素名,如</b>表示結(jié)束標(biāo)簽。
[0051](X) HTML元素是指從開始標(biāo)簽到結(jié)束標(biāo)簽的所有代碼。(X) HTML屬性是(X) HTML標(biāo)簽擁有的屬性,屬性提供了有關(guān)(X)HTML元素的更多信息。屬性是名稱/值對的形式,比如:name=〃value〃 ;且屬性是在HTML元素的開始標(biāo)簽中規(guī)定。例如,對于以下(X)HTML元素:〈ahref=//http://www.qq.com//>This is a Iink</a>,^Pf3Jhref=^http://www.qq.com^ 1--該a標(biāo)簽的一個屬性。相應(yīng)的,可以從(X)HTML文檔中的擴(kuò)展標(biāo)簽的開始標(biāo)簽中獲取擴(kuò)展標(biāo)簽的屬性。
[0052]瀏覽器最核心的部分是解釋引擎(Rendering Engine),也稱為瀏覽器內(nèi)核,其主要負(fù)責(zé)對頁面語法的解釋并渲染(顯示)網(wǎng)頁。如對(X)HTML文檔進(jìn)行解析并渲染網(wǎng)頁。
[0053]以⑴HTML為例,本發(fā)明實施例對⑴HTML標(biāo)簽進(jìn)行擴(kuò)展,增加一種元素名為自定義名的(X)HTML標(biāo)簽,如〈qq>〈/qq>、〈myTag>〈/myTag>等等,以實現(xiàn)第三方想要的功能。第三方可以如傳統(tǒng)操作標(biāo)簽一樣操作擴(kuò)展標(biāo)簽,例如,用層疊樣式表(CSS,Cascading StyleSheets)控制其樣式,用JavaScript (—種腳本)控制其行為,但第三方無法控制其所展現(xiàn)出的數(shù)據(jù)內(nèi)容,因為這部分?jǐn)?shù)據(jù)由運行WebApp的瀏覽器內(nèi)核負(fù)責(zé)。這樣,能夠保證關(guān)系鏈數(shù)據(jù)的安全。
[0054]需要說明的是,本發(fā)明實施例中的擴(kuò)展標(biāo)簽可以為一種新增的元素名為自定義名的標(biāo)簽,設(shè)定其標(biāo)簽屬性,使其滿足第三方想要的功能;當(dāng)然,也可以選擇已有標(biāo)簽進(jìn)行擴(kuò)展,對已有標(biāo)簽的屬性進(jìn)行更改,使擴(kuò)展標(biāo)簽?zāi)軌驖M足第三方想要的功能。
[0055]步驟202,根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁。
[0056]其中,根據(jù)獲取的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁具體過程,如圖3所示,主要包括:
[0057]步驟301,根據(jù)獲取到的關(guān)系鏈數(shù)據(jù)構(gòu)建擴(kuò)展的文檔對象模型(DOM)樹;
[0058]步驟302,根據(jù)構(gòu)建的擴(kuò)展的DOM樹、以及解析所述頁面描述語言文檔得到的CSS文本,構(gòu)建渲染樹;
[0059]當(dāng)擴(kuò)展的DOM樹構(gòu)建完成時,開始構(gòu)建渲染樹。渲染樹是由元素顯示序列中的可見元素組成,它是文檔的可視化表示,構(gòu)建渲染樹是為了以正確的順序繪制文檔內(nèi)容。在不同的瀏覽器中,對渲染樹中的元素叫法不同,例如:Firefox瀏覽器將渲染樹中的元素稱為frames, WebKit瀏覽器則用renderer或渲染對象來描述這些元素。本發(fā)明實施例為描述方便,統(tǒng)一將渲染樹中的元素稱為渲染對象。每個渲染對象用一個與相應(yīng)節(jié)點的CSS盒模型相對應(yīng)的矩形區(qū)域(包含諸如寬、高和位置之類的集合信息)來表示。
[0060]針對不同的瀏覽器,創(chuàng)建渲染樹的操作是不同的,例如:在Firefox瀏覽器中,監(jiān)聽到DOM更新的監(jiān)聽器請求構(gòu)建器(Frame Constructor)創(chuàng)建frame,該構(gòu)建器計算樣式并創(chuàng)建frame ;在WebKit瀏覽器中,計算樣式并生成渲染對象的過程成為attachment,每個DOM節(jié)點有一個attach方法,attachment的過程是同步的,調(diào)用新節(jié)點的attach方法將節(jié)點插入到DOM樹中。對于渲染樹中的每個渲染對象的可視屬性,可以通過計算每個元素的樣式屬性得到。
[0061]步驟303,從渲染樹的根渲染對象開始,以遞歸的方式布局所述渲染樹;
[0062]當(dāng)渲染對象被創(chuàng)建并添加到渲染樹中時,其并沒有位置和大小,計算位置和大小的過程稱為布局渲染樹。布局是一個遞歸的過程,由根渲染對象開始,其對應(yīng)(X) HTML文檔元素,布局繼續(xù)遞歸的通過一些或所有的frame層級,為每個需要幾何信息的渲染對象進(jìn)行計算。
[0063]具體的,對于所述渲染樹中的每一個渲染對象,根據(jù)解析所述頁面描述語言文檔得到的CSS文本,計算其顯示的位置和大小,并根據(jù)所述位置和大小布局所述渲染樹。
[0064]步驟304,遍歷布局后的渲染樹并調(diào)用渲染對象的繪制方法,將所述渲染對象渲染到網(wǎng)頁上。
[0065]在繪制渲染樹階段,遍歷渲染樹并調(diào)用渲染對象的paint (繪制)方法將渲染對象的內(nèi)容顯示在屏幕的網(wǎng)頁上,而繪制則使用一些用戶界面(UI, User Interface)基礎(chǔ)組件或系統(tǒng)提供的應(yīng)用程序編程接口(API, Applicat1n Programming Interface)完成。
[0066]也就是說,渲染樹是由一些包含由顏色和大小等屬性的矩形組成,它們將被按照正確的順序顯示到屏幕上;渲染樹構(gòu)建好后,將會執(zhí)行布局過程,布局過程將確定每個節(jié)點在屏幕上的準(zhǔn)確坐標(biāo);布局后執(zhí)行繪制過程,即遍歷渲染樹,使用UI后端層繪制每個節(jié)點。
[0067]出于安全性方面的考慮,需要改造瀏覽器內(nèi)核用以限制JavaScript DOM API (應(yīng)用程序接口)對擴(kuò)展標(biāo)簽顯示的關(guān)系鏈核心數(shù)據(jù)的接近,以防止關(guān)系鏈數(shù)據(jù)流入到第三方開發(fā)者的應(yīng)用內(nèi)。具體的,在調(diào)用DOM API時,在相應(yīng)函數(shù)處理中做判斷,不符合預(yù)設(shè)規(guī)則的不予返回數(shù)據(jù)或返回既定數(shù)據(jù)。
[0068]需要說明的是,圖2所示的關(guān)系鏈數(shù)據(jù)處理的方法通常由客戶端側(cè)來執(zhí)行,而本發(fā)明實施例中的擴(kuò)展標(biāo)簽由關(guān)系鏈數(shù)據(jù)平臺提供,第三方服務(wù)器可以利用關(guān)系鏈數(shù)據(jù)平臺提供的擴(kuò)展標(biāo)簽實現(xiàn)對要展現(xiàn)的關(guān)系鏈數(shù)據(jù)的形式和樣式的控制,但第三方服務(wù)器無法從關(guān)系鏈數(shù)據(jù)平臺獲得關(guān)系鏈數(shù)據(jù)、即關(guān)系鏈數(shù)據(jù)平臺不開放數(shù)據(jù)接口給第三方服務(wù)器。其中,利用擴(kuò)展標(biāo)簽實現(xiàn)對要展現(xiàn)的關(guān)系鏈數(shù)據(jù)的形式和樣式的控制包括但不限于:通過CSS控制關(guān)系鏈數(shù)據(jù)展現(xiàn)的樣式,通過JavaScript控制對關(guān)系鏈數(shù)據(jù)的具體處理。這些對關(guān)系鏈數(shù)據(jù)的擴(kuò)展控制都可以通過第三方服務(wù)器對擴(kuò)展標(biāo)簽的調(diào)用來實現(xiàn)。
[0069]優(yōu)選的,編輯好的用于實現(xiàn)網(wǎng)頁展示的頁面描述語言文檔保存在第三方服務(wù)器中。關(guān)系鏈數(shù)據(jù)平臺可以從第三方服務(wù)器獲取頁面描述語言文檔,并將獲取的頁面描述語言文檔提供給客戶端;關(guān)系鏈數(shù)據(jù)平臺還能夠通過客戶端的獲取關(guān)系鏈數(shù)據(jù)的接口,向客戶端提供相應(yīng)的關(guān)系鏈數(shù)據(jù)查詢服務(wù)。那么,客戶端執(zhí)行的關(guān)系鏈數(shù)據(jù)處理如圖4所示,客戶端解析關(guān)系鏈數(shù)據(jù)平臺提供的頁面描述語言文檔,如果解析到頁面描述語言文檔中的擴(kuò)展標(biāo)簽,則根據(jù)擴(kuò)展標(biāo)簽的屬性查詢客戶端提供的獲取關(guān)系鏈數(shù)據(jù)的接口,通過該接口從關(guān)系鏈數(shù)據(jù)平臺獲取相應(yīng)的關(guān)系鏈數(shù)據(jù),并根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁;如果沒有解析到頁面描述語言文檔中的擴(kuò)展標(biāo)簽,則按照對頁面描述語言文檔中正常標(biāo)簽的解析處理流程,進(jìn)行網(wǎng)頁渲染。網(wǎng)頁渲染的處理包括:構(gòu)建擴(kuò)展的DOM樹、構(gòu)建渲染樹、布局渲染樹、繪制渲染樹等等。具體操作如本發(fā)明的前述實施例所述,此處不再贅述。
[0070]為描述方便,下面以自定義的一種元素名為qq的(X)HTML標(biāo)簽為例進(jìn)行說明。
[0071]凡是第三方開發(fā)者開發(fā)的WebApp,要向用戶展示關(guān)系鏈數(shù)據(jù),需要在開發(fā)的(X)HTML頁面引入QQ標(biāo)簽。一個QQ標(biāo)簽的完整構(gòu)成,需要有QQ標(biāo)簽及QQ標(biāo)簽的屬性,例如:
[0072]〈qq qqType="ShowNickName">〈/qq>
[0073]其中,qqType=〃ShowNickName〃就是該QQ標(biāo)簽的一個屬性。
[0074]不屬于標(biāo)準(zhǔn)(X)HTML屬性的QQ標(biāo)簽的屬性都是以qq開頭,如qqType、qqOpenID、qqShowNum等。當(dāng)然,QQ標(biāo)簽也可以使用大多數(shù)標(biāo)準(zhǔn)的(X)HTML屬性,形如:
[0075]〈qq qqType="ShowNickName"style="width:1OOpx;">〈/qq>
[0076]下面列出QQ標(biāo)簽的幾種使用場景和使用標(biāo)準(zhǔn):
[0077]一、顯示用戶數(shù)據(jù)
[0078]A、顯示用戶的頭像:
[0079]指定qqType=〃ShowAvatar〃,示例代碼如下:
[0080]〈qq qqType="ShowAvatar"X/qq>
[0081]B、顯示用戶的昵稱:
[0082]指定qqType=〃ShowNickName〃,不例代碼如下:
[0083]〈qq qqType="ShowNickName">〈/qq>
[0084]二、顯示好友數(shù)據(jù)
[0085]A、顯示最近聯(lián)系人:
[0086]指定qqType=〃ShowRecentList〃,同時指定要顯示的最大數(shù)量,如qqShowMaxNum=〃5〃,不例代碼如下:
[0087]
【權(quán)利要求】
1.一種關(guān)系鏈數(shù)據(jù)處理的方法,其特征在于,該方法包括: 解析頁面描述語言文檔,當(dāng)解析到所述頁面描述語言文檔中的擴(kuò)展標(biāo)簽時,根據(jù)擴(kuò)展標(biāo)簽的屬性查詢獲取關(guān)系鏈數(shù)據(jù)的接口,并獲取相應(yīng)的關(guān)系鏈數(shù)據(jù); 根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁。
2.根據(jù)權(quán)利要求1所述關(guān)系鏈數(shù)據(jù)處理的方法,其特征在于,所述根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁,包括: 根據(jù)獲取到的關(guān)系鏈數(shù)據(jù)構(gòu)建擴(kuò)展的文檔對象模型DOM樹; 根據(jù)構(gòu)建的擴(kuò)展的DOM樹、以及解析所述頁面描述語言文檔得到的層疊樣式表CSS文本,構(gòu)建渲染樹; 從所述渲染樹的根渲染對象開始,以遞歸的方式布局所述渲染樹; 遍歷布局后的渲染樹并調(diào)用渲染對象的繪制方法,將所述渲染對象渲染到網(wǎng)頁上。
3.根據(jù)權(quán)利要求2所述關(guān)系鏈數(shù)據(jù)處理的方法,其特征在于,所述以遞歸的方式布局渲染樹包括: 對于所述渲染樹中遞歸的每一個渲染對象,根據(jù)解析所述頁面描述語言文檔得到的CSS文本,計算其顯示的位置和大小,并根據(jù)所述位置和大小布局所述渲染樹。
4.根據(jù)權(quán)利要求1、2或 3所述關(guān)系鏈數(shù)據(jù)處理的方法,其特征在于,所述頁面描述語言文檔為超文本標(biāo)記語言(X)HTML文檔。
5.根據(jù)權(quán)利要求4所述關(guān)系鏈數(shù)據(jù)處理的方法,其特征在于,該方法進(jìn)一步包括: 從所述(X)HTML文檔中的擴(kuò)展標(biāo)簽的開始標(biāo)簽中獲取所述擴(kuò)展標(biāo)簽的屬性。
6.一種客戶端,其特征在于,包括: 文檔解析模塊,用于解析頁面描述語言文檔; 數(shù)據(jù)獲取模塊,用于在所述文檔解析模塊解析到所述頁面描述語言文檔中的擴(kuò)展標(biāo)簽時,所述數(shù)據(jù)獲取模塊根據(jù)擴(kuò)展標(biāo)簽的屬性查詢獲取關(guān)系鏈數(shù)據(jù)的接口,并獲取相應(yīng)的關(guān)系鏈數(shù)據(jù); 網(wǎng)頁渲染模塊,用于根據(jù)解析頁面描述語言文檔所得內(nèi)容、以及獲取到的關(guān)系鏈數(shù)據(jù)渲染網(wǎng)頁。
7.根據(jù)權(quán)利要求6所述客戶端,其特征在于,所述網(wǎng)頁渲染模塊包括: 文檔對象模型DOM樹構(gòu)建子模塊,用于根據(jù)獲取到的關(guān)系鏈數(shù)據(jù)構(gòu)建擴(kuò)展的DOM樹;渲染樹構(gòu)建子模塊,用于根據(jù)構(gòu)建的擴(kuò)展的DOM樹、以及解析所述頁面描述語言文檔得到的層疊樣式表CSS文本,構(gòu)建渲染樹; 布局子模塊,用于從所述渲染樹的根渲染對象開始,以遞歸的方式布局所述渲染樹;渲染子模塊,用于遍歷布局后的渲染樹并調(diào)用渲染對象的繪制方法,將所述渲染對象渲染到網(wǎng)頁上。
8.根據(jù)權(quán)利要求7所述客戶端,其特征在于,所述以遞歸的方式布局渲染樹包括: 對于所述渲染樹中遞歸的每一個渲染對象,根據(jù)解析所述頁面描述語言文檔得到的CSS文本,計算其顯示的位置和大小,并根據(jù)所述位置和大小布局所述渲染樹。
9.根據(jù)權(quán)利要求6、7或8所述客戶端,其特征在于,所述頁面描述語言文檔為超文本標(biāo)記語言(X) HTML文檔。
10.根據(jù)權(quán)利要求9所述客戶端,其特征在于,所述數(shù)據(jù)獲取模塊進(jìn)一步用于,從所述(X)HTML文檔中的擴(kuò)展標(biāo)簽的開始標(biāo)簽中獲取所述擴(kuò)展標(biāo)簽的屬性。
11.一種關(guān)系鏈數(shù)據(jù)處理系統(tǒng),其特征在于,該系統(tǒng)包括:關(guān)系鏈數(shù)據(jù)平臺、第三方服務(wù)器、以及權(quán)利要求5-10任一項所述的客戶端,其中, 所述第三方服務(wù)器,用于存儲和提供頁面描述語言文檔; 所述關(guān)系鏈數(shù)據(jù)平臺,用于從所述第三方服務(wù)器獲取所述頁面描述語言文檔,并將獲取的所述頁面描述語言文檔提供給所述客戶端; 所述關(guān)系鏈數(shù)據(jù)平臺還用于,通過所述客戶端的獲取關(guān)系鏈數(shù)據(jù)的接口,向所述客戶端提供相應(yīng)的關(guān)系鏈數(shù)據(jù)查詢服務(wù)。
【文檔編號】G06F17/30GK104050190SQ201310082137
【公開日】2014年9月17日 申請日期:2013年3月14日 優(yōu)先權(quán)日:2013年3月14日
【發(fā)明者】黃奎, 屈超, 魏亞民, 潘祥智, 張赟, 董航, 周志超, 李斌, 謝昕虬 申請人:騰訊科技(上海)有限公司