一種多線程異步渲染系統(tǒng)及方法
【專利摘要】本發(fā)明提出一種多線程異步渲染系統(tǒng)及方法,其中系統(tǒng)包括:渲染引擎,用于解析頁面實例文件,將頁面實例文件劃分為多個頁面部分,針對每個頁面部分生成一個模擬標記,將所述模擬標記發(fā)送至瀏覽器設備;并針對每個頁面部分設定一個主進程鎖,多線程異步渲染所述每個頁面部分;當一個頁面部分渲染完畢后,釋放該頁面部分對應的主線程鎖,將渲染結果發(fā)送至瀏覽器設備;瀏覽器設備,用于接收所述模擬標記;當接收到渲染結果時,查詢該渲染結果所對應的模擬標記,采用該渲染結果替換查找到的模擬標記,顯示該渲染結果。本發(fā)明能夠節(jié)約渲染時間。
【專利說明】一種多線程異步渲染系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,尤其涉及一種多線程異步渲染系統(tǒng)及方法。
【背景技術】
[0002]描述網(wǎng)頁頁面的文件包括頁面實例文件和頁面描述文件。其中,頁面實例文件是可擴展標記語言(XML,Extensible Markup Language)配置文件,用于描述頁面的區(qū)域的組成形成;一個頁面可對應多個布局,一個布局對應多個模塊。頁面描述文件用于描述頁面的組成部分,包括頭部(header)部分、主體內(nèi)容區(qū)域(body)部分和底部(foot)部分。
[0003]由于瀏覽器無法直接識別頁面實例文件和頁面描述文件,因此需要渲染服務器首先將頁面實例文件轉換為瀏覽器能夠識別的文件形式,例如超文本標記語言(HTML,HyperText Mark-up Language)文件,這一轉換的過程稱為渲染;之后,渲染服務器將渲染完成的HTML文件發(fā)送至瀏覽器,由瀏覽器讀取HTML文件并顯示頁面。
[0004]目前渲染設備一般采用Velocity模板渲染引擎。Velocity模板渲染引擎采用單線程模式實現(xiàn)渲染,即按照布局的順序、依次對每個布局進行渲染,這種渲染方式耗時過長。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種多線程異步渲染系統(tǒng),能夠多線程異步渲染頁面實例文件,節(jié)約渲染時間。
[0006]本發(fā)明還提供了一種多線程異步渲染方法,能夠多線程異步渲染頁面實例文件,節(jié)約渲染時間。
[0007]本發(fā)明的技術方案是這樣實現(xiàn)的:
[0008]一種多線程異步渲染系統(tǒng),包括:
[0009]渲染引擎,用于解析頁面實例文件,將頁面實例文件劃分為多個頁面部分,針對每個頁面部分生成一個模擬標記,將所述模擬標記發(fā)送至瀏覽器設備;并針對每個頁面部分設定一個主進程鎖,多線程異步渲染所述每個頁面部分;當一個頁面部分渲染完畢后,釋放該頁面部分對應的主線程鎖,將渲染結果發(fā)送至瀏覽器設備;
[0010]瀏覽器設備,用于接收所述模擬標記;當接收到渲染結果時,查詢該渲染結果所對應的模擬標記,采用該渲染結果替換查找到的模擬標記,顯示該渲染結果。
[0011]上述系統(tǒng)中,渲染引擎還可以用于,加載頁面整體結構,將加載結果發(fā)送至瀏覽器設備;
[0012]瀏覽器設備還可以用于,顯示所述加載結果。
[0013]渲染引擎劃分的每個頁面部分可以為所述頁面實例文件中的一個布局。
[0014]渲染引擎針對每個布局生成的模擬標記中可以包含該布局的標識;并且,渲染引擎渲染每個布局時,該布局的渲染結果中可以包含該布局的標識;
[0015]瀏覽器設備查詢渲染結果所對應的模擬標記的方式可以為:當渲染結果中包含的布局標識與模擬標記中包含的布局標識相同時,查詢到該渲染結果與該模擬標記對應。
[0016]一種多線程異步渲染方法,包括:
[0017]解析頁面實例文件,將頁面實例文件劃分為多個頁面部分,針對每個頁面部分生成一個模擬標記,將所述模擬標記發(fā)送至瀏覽器設備;
[0018]針對每個頁面部分設定一個主進程鎖,多線程異步渲染所述每個頁面部分;當一個頁面部分渲染完畢后,釋放該頁面部分對應的主線程鎖,將渲染結果發(fā)送至瀏覽器設備;
[0019]瀏覽器設備接收到渲染結果時,查詢該渲染結果所對應的模擬標記,采用該渲染結果替換查找到的模擬標記,顯示該渲染結果。
[0020]上述方法中,解析頁面實例文件之前可以進一步包括:加載頁面整體結構,將加載結果發(fā)送至瀏覽器設備;瀏覽器設備顯示所述加載結果。
[0021]頁面實例文件劃分為多個頁面部分的方式可以為:將頁面實例文件中的每一個布局劃分為一個頁面部分。
[0022]針對每個布局生成的模擬標記中可以包含該布局的標識;
[0023]每個布局的渲染結果中可以包含該布局的標識;
[0024]查詢渲染結果所對應的模擬標記的方式可以為:當渲染結果中包含的布局標識與模擬標記中包含的布局標識相同時,查詢到該渲染結果與該模擬標記對應。
[0025]可見,本發(fā)明提出的多線程異步渲染系統(tǒng)和方法,能夠將頁面實例文件劃分為多個部分,對每個部分分別進行渲染及顯示,因此能夠節(jié)約渲染時間。
【專利附圖】
【附圖說明】
[0026]圖1為本發(fā)明提出的多線程異步渲染系統(tǒng)的結構示意圖;
[0027]圖2為本發(fā)明實施例一的實現(xiàn)流程圖;
[0028]圖3A為渲染顯示效果示意圖一;
[0029]圖3B為渲染顯示效果示意圖二。
【具體實施方式】
[0030]本發(fā)明能夠實現(xiàn)“模塊化”渲染,將頁面中的各個區(qū)域多線程異步地進行渲染,并不定時地分區(qū)呈現(xiàn)到瀏覽器,最大限度地釋放渲染引擎的渲染處理能力以及提升與瀏覽器的“交互”速度,顛覆了以往的頁面渲染技術模式。
[0031]如圖1為本發(fā)明提出的多線程異步渲染系統(tǒng)的結構示意圖,包括:
[0032]渲染引擎101,用于解析頁面實例文件,將頁面實例文件劃分為多個頁面部分,針對每個頁面部分生成一個模擬標記,將所述模擬標記發(fā)送至瀏覽器設備102 ;并針對每個頁面部分設定一個主進程鎖,多線程異步渲染所述每個頁面部分;當一個頁面部分渲染完畢后,釋放該頁面部分對應的主線程鎖,將渲染結果發(fā)送至瀏覽器設備102 ;
[0033]瀏覽器設備102,用于接收所述模擬標記;當接收到渲染結果時,查詢該渲染結果所對應的模擬標記,采用該渲染結果替換查找到的模擬標記,顯示該渲染結果。
[0034]上述渲染引擎101還可以用于,加載頁面整體結構(包括頁面左邊與頭部的菜單欄),將加載結果發(fā)送至瀏覽器設備102 ;[0035]瀏覽器設備102還可以用于,顯示所述加載結果。
[0036]上述系統(tǒng)中,渲染引擎101可以按照布局劃分頁面實例文件,即,劃分的每個頁面部分可以為所述頁面實例文件中的一個布局。
[0037]相應地,渲染引擎101針對每個布局生成的模擬標記中可以包含該布局的標識;并且,渲染引擎101渲染每個布局時,該布局的渲染結果中也包含該布局的標識;
[0038]這樣,瀏覽器設備102查詢渲染結果所對應的模擬標記的方式可以為:當渲染結果中包含的布局標識與模擬標記中包含的布局標識相同時,查詢到該渲染結果與該模擬標記對應。
[0039]本發(fā)明需要結合后端ava業(yè)務處理與前端javascript腳本定位布局技術。
[0040]后端java業(yè)務處理技術包括:利用HTTP協(xié)議長連接技術(需要將瀏覽器中的請求頭信息中的“connection”屬性值設置為“ke印-alive”),在渲染開始之前設置N個主線程鎖,上述每個頁面部分對應一個主線程鎖;之后對每個頁面部分分別渲染,一個頁面部分渲染完成之后,將渲染結果立即輸出至瀏覽器設備,并釋放該頁面部分所對應的主線程鎖;當所有頁面部分渲染完成之后,也就是所有的主線程鎖被釋放之后,斷開渲染引擎與瀏覽器設備之間的HTTP連接。
[0041]前端javascript腳本定位布局技術包括2部分內(nèi)容:
[0042]第一部分為模擬定位,即將頁面實例文件中的布局順序模擬輸出到頁面中。例如,為各個布局生成對應的模擬標記,即span標簽,在span標簽的內(nèi)容區(qū)不包含內(nèi)容,只在節(jié)點中包含布局的標識,因此不會影響頁面的顯示。之后,渲染引擎將生成的模擬標記發(fā)送至瀏覽器設備。
[0043]例如,對于以下的頁面實例文件,該頁面實例文件中包括2個布局,其標識分別為“134” 和 “135”。
[0044]
【權利要求】
1.一種多線程異步渲染系統(tǒng),其特征在于,所述系統(tǒng)包括: 渲染引擎,用于解析頁面實例文件,將頁面實例文件劃分為多個頁面部分,針對每個頁面部分生成一個模擬標記,將所述模擬標記發(fā)送至瀏覽器設備;并針對每個頁面部分設定一個主進程鎖,多線程異步渲染所述每個頁面部分;當一個頁面部分渲染完畢后,釋放該頁面部分對應的主線程鎖,將渲染結果發(fā)送至瀏覽器設備; 瀏覽器設備,用于接收所述模擬標記;當接收到渲染結果時,查詢該渲染結果所對應的模擬標記,采用該渲染結果替換查找到的模擬標記,顯示該渲染結果。
2.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述渲染引擎還用于,加載頁面整體結構,將加載結果發(fā)送至瀏覽器設備; 所述瀏覽器設備還用于,顯示所述加載結果。
3.根據(jù)權利要求1或2所述的系統(tǒng),其特征在于,所述渲染引擎劃分的每個頁面部分為所述頁面實例文件中的一個布局。
4.根據(jù)權利要求3所述的系統(tǒng),其特征在于,所述渲染引擎針對每個布局生成的模擬標記中包含該布局的標識;并且,所述渲染引擎渲染每個布局時,該布局的渲染結果中包含該布局的標識; 所述瀏覽器設備查詢渲染結果所對應的模擬標記的方式為:當渲染結果中包含的布局標識與模擬標記中包含的布局標識相同時,查詢到該渲染結果與該模擬標記對應。
5.一種多線程異步渲染方法,其特征在于,所述方法包括: 解析頁面實例文件,將頁面實例文件劃分為多個頁面部分,針對每個頁面部分生成一個模擬標記,將所述模擬標記發(fā)送至瀏覽器設備; 針對每個頁面部分設定一個主進程鎖,多線程異步渲染所述每個頁面部分;當一個頁面部分渲染完畢后,釋放該頁面部分對應的主線程鎖,將渲染結果發(fā)送至瀏覽器設備; 瀏覽器設備接收到渲染結果時,查詢該渲染結果所對應的模擬標記,采用該渲染結果替換查找到的模擬標記,顯示該渲染結果。
6.根據(jù)權利要求5所述的方法,其特征在于,所述解析頁面實例文件之前進一步包括: 加載頁面整體結構,將加載結果發(fā)送至瀏覽器設備;瀏覽器設備顯示所述加載結果。
7.根據(jù)權利要求5或6所述的方法,其特征在于,所述將頁面實例文件劃分為多個頁面部分的方式為:將頁面實例文件中的每一個布局劃分為一個頁面部分。
8.根據(jù)權利要求7所述的方法,其特征在于,所述針對每個布局生成的模擬標記中包含該布局的標識; 所述每個布局的渲染結果中包含該布局的標識; 所述查詢渲染結果所對應的模擬標記的方式為:當渲染結果中包含的布局標識與模擬標記中包含的布局標識相同時,查詢到該渲染結果與該模擬標記對應。
【文檔編號】G06F17/30GK103761317SQ201410039871
【公開日】2014年4月30日 申請日期:2014年1月27日 優(yōu)先權日:2014年1月27日
【發(fā)明者】曾洋 申請人:北京京東尚科信息技術有限公司, 北京京東世紀貿(mào)易有限公司