專利名稱:一種瀏覽器的腳本處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)的終端瀏覽器技術(shù),尤其涉及一種瀏覽器的腳本處理方法和系統(tǒng)。
背景技術(shù):
目前,在標(biāo)準(zhǔn)的個(gè)人計(jì)算機(jī)(PC, Personal Computer)瀏覽器上,網(wǎng)頁中的JavaScript代碼執(zhí)行時(shí),需要經(jīng)過以下的步驟I、PC上的瀏覽器對JavaScript源代碼進(jìn)行編譯,將JavaScript源代碼轉(zhuǎn)換為JavaScript虛擬機(jī)使用的二進(jìn)制字節(jié)碼; 2、瀏覽器上的JavaScript虛擬機(jī)執(zhí)行相應(yīng)的二進(jìn)制字節(jié)碼。其中,JavaScript是目前瀏覽器中的常用腳本語言。由于PC瀏覽器上的JavaScript代碼執(zhí)行操作對中央處理器(CPU, CentralProcessing Unit)的處理能力、內(nèi)存空間大小的要求較高,而現(xiàn)有的移動(dòng)終端(如手機(jī))無論是在CPU的處理能力,還是在內(nèi)存空間大小上都嚴(yán)重受限,因此大部分移動(dòng)終端都無法達(dá)到上述PC瀏覽器上的JavaScript代碼執(zhí)行操作的要求,從而,將上述PC瀏覽器上的JavaScript代碼執(zhí)行操作應(yīng)用于移動(dòng)終端中非常困難。然而,現(xiàn)有技術(shù)還無法提供解決上述技術(shù)問題的方案,從而給實(shí)際應(yīng)用帶來了不便。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種瀏覽器的腳本處理方法和系統(tǒng),以實(shí)現(xiàn)移動(dòng)終端的瀏覽器對腳本代碼(JavaScript)執(zhí)行操作的支持。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種瀏覽器的腳本處理方法,該方法包括客戶端將用戶請求的統(tǒng)一資源定位符(URL)發(fā)送到代理服務(wù)器;代理服務(wù)器向所述URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器請求頁面,并將所述互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到所述客戶端;所述客戶端執(zhí)行所述二進(jìn)制字節(jié)碼。該方法進(jìn)一步包括所述互聯(lián)網(wǎng)服務(wù)器在接收到代理服務(wù)器的頁面請求后,將頁面的超文本標(biāo)記語言(HTML)文件發(fā)送到所述代理服務(wù)器。該方法進(jìn)一步包括所述代理服務(wù)器將所述頁面的超文本標(biāo)記語言(HTML)文件轉(zhuǎn)換為二進(jìn)制的文檔對象模型(DOM)樹結(jié)構(gòu),并將所述DOM樹結(jié)構(gòu)發(fā)送到所述客戶端。在所述代理服務(wù)器將DOM樹結(jié)構(gòu)發(fā)送到客戶端后,該方法進(jìn)一步包括所述客戶端在頁面上渲染所述DOM樹結(jié)構(gòu)的內(nèi)容。所述腳本代碼為JavaScript代碼。
本發(fā)明還提供了一種瀏覽器的腳本處理系統(tǒng),該系統(tǒng)包括客戶端、代理服務(wù)器和互聯(lián)網(wǎng)服務(wù)器,其中,所述客戶端,用于將用戶請求的URL發(fā)送到所述代理服務(wù)器,還用于執(zhí)行所述代理服務(wù)器返回的二進(jìn)制字節(jié)碼;所述代理服務(wù)器,用于向所述URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器請求頁面,并將所述互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到所述客戶端;所述互聯(lián)網(wǎng)服務(wù)器,用于根據(jù)所述代理服務(wù)器的請求,向所述代理服務(wù)器提供頁面的腳本代碼。所述互聯(lián)網(wǎng)服務(wù)器進(jìn)一步用于,在接收到代理服務(wù)器的頁面請求后,將頁面的HTML文件發(fā)送到所述代理服務(wù)器。所述代理服務(wù)器進(jìn)一步用于,將所述頁面的HTML文件轉(zhuǎn)換為二進(jìn)制的DOM樹結(jié) 構(gòu),并將所述DOM樹結(jié)構(gòu)發(fā)送到所述客戶端。所述客戶端進(jìn)一步用于,在接收到所述代理服務(wù)器的DOM樹結(jié)構(gòu)后,在頁面上渲染所述DOM樹結(jié)構(gòu)的內(nèi)容。所述腳本代碼為JavaScript代碼。本發(fā)明所提供的一種瀏覽器的腳本處理方法和系統(tǒng),將對瀏覽器腳本代碼的編譯和執(zhí)行操作分開處理,即在代理服務(wù)器上將瀏覽器腳本代碼預(yù)先編譯成二進(jìn)制字節(jié)碼后再下發(fā)給移動(dòng)終端的瀏覽器客戶端,移動(dòng)終端的瀏覽器客戶端直接執(zhí)行代理服務(wù)器編譯后的二進(jìn)制字節(jié)碼即可。通過本發(fā)明,有效節(jié)省了移動(dòng)終端瀏覽器執(zhí)行腳本代碼編譯的開銷,實(shí)現(xiàn)了移動(dòng)終端瀏覽器對腳本代碼(JavaScript)執(zhí)行操作的支持。
圖I為本發(fā)明一種瀏覽器的腳本處理方法的流程圖;圖2為本發(fā)明一種瀏覽器的腳本處理系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例中瀏覽器的腳本處理示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。實(shí)現(xiàn)移動(dòng)終端的瀏覽器對腳本代碼(JavaScript)執(zhí)行操作的支持,本發(fā)明所提供的一種瀏覽器的腳本處理方法,如圖I所示,主要包括以下步驟步驟101,客戶端將用戶請求的統(tǒng)一資源定位符(URL, Universal ResourceLocator)發(fā)送到代理服務(wù)器。用戶在需要訪問網(wǎng)站時(shí),會(huì)在其所使用的移動(dòng)終端的瀏覽器的客戶端上點(diǎn)擊或輸入所需訪問網(wǎng)站的地址、即URL,此時(shí),移動(dòng)終端的瀏覽器的客戶端會(huì)記錄用戶所點(diǎn)擊或輸入的URL,并將記錄的URL發(fā)送到代理服務(wù)器。步驟102,代理服務(wù)器向URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器請求頁面,并將互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到客戶端。代理服務(wù)器接收到客戶端發(fā)送的URL后,找到與該URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器,并向該互聯(lián)網(wǎng)服務(wù)器發(fā)送頁面請求;互聯(lián)網(wǎng)服務(wù)器接收到來自代理服務(wù)器的頁面請求后,會(huì)將對應(yīng)頁面的腳本代碼返回給代理服務(wù)器;代理服務(wù)器將互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成瀏覽器客戶端的JavaScript虛擬機(jī)能夠使用的二進(jìn)制字節(jié)碼,并將所述二進(jìn)制字節(jié)碼發(fā)送到客戶端。步驟103,客戶端執(zhí)行所述二進(jìn)制字節(jié)碼??蛻舳私邮盏酱矸?wù)器返回的二進(jìn)制字節(jié)碼后,通過其JavaScript虛擬機(jī)執(zhí)行相應(yīng)的二進(jìn)制字節(jié)碼。需要說明的是,互聯(lián)網(wǎng)服務(wù)器在接收到代理服務(wù)器的頁面請求后,還需要將頁面的超文本標(biāo)記語言(HTML, Hyper Text Mark-up Language)文件發(fā)送到代理服務(wù)器;進(jìn)而,代理服務(wù)器將頁面的HTML文件轉(zhuǎn)換為二進(jìn)制的文檔對象模型(DOM, Document ObjectModel)樹結(jié)構(gòu),并將所述DOM樹結(jié)構(gòu)發(fā)送到客戶端;客戶端在頁面上渲染所述DOM樹結(jié)構(gòu)的內(nèi)容。對應(yīng)上述瀏覽器的腳本處理方法,本發(fā)明還提供了一種瀏覽器的腳本處理系統(tǒng),·如圖2所示,包括客戶端10、代理服務(wù)器20和互聯(lián)網(wǎng)服務(wù)器30。其中,客戶端10,用于將用戶請求的URL發(fā)送到代理服務(wù)器20,還用于執(zhí)行代理服務(wù)器20返回的二進(jìn)制字節(jié)碼。代理服務(wù)器20,用于向URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器30請求頁面,并將互聯(lián)網(wǎng)服務(wù)器30返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到客戶端10?;ヂ?lián)網(wǎng)服務(wù)器30,用于根據(jù)代理服務(wù)器20的請求,向代理服務(wù)器20提供頁面的腳本代碼。較佳的,互聯(lián)網(wǎng)服務(wù)器30還可用于,在接收到代理服務(wù)器20的頁面請求后,將頁面的HTML文件發(fā)送到代理服務(wù)器20 ;相應(yīng)的,代理服務(wù)器20進(jìn)一步用于,將該頁面的HTML文件轉(zhuǎn)換為二進(jìn)制的DOM樹結(jié)構(gòu),并將DOM樹結(jié)構(gòu)發(fā)送到客戶端10 ;客戶端10進(jìn)一步用于,在接收到代理服務(wù)器20的DOM樹結(jié)構(gòu)后,在頁面上渲染該DOM樹結(jié)構(gòu)的內(nèi)容。下面再結(jié)合圖3所示的實(shí)施例對本發(fā)明的瀏覽器的腳本處理方法和系統(tǒng)進(jìn)一步詳細(xì)說明。如圖3所示,移動(dòng)終端的用戶通過瀏覽器點(diǎn)擊了一個(gè)萬維網(wǎng)(WWW,World WideWeb)頁面鏈接,此時(shí),該移動(dòng)終端的瀏覽器客戶端記錄下該WWW頁面鏈接的URL,并將所記錄的URL發(fā)送到后臺(tái)的代理服務(wù)器;代理服務(wù)器接收到客戶端發(fā)來的URL后,找到與該URL對應(yīng)的WWW服務(wù)器,并向該WWW服務(wù)器發(fā)送頁面請求服務(wù)器接收到來自代理服務(wù)器的頁面請求后,會(huì)將對應(yīng)頁面的HTML文件和腳本代碼返回給代理服務(wù)器;代理服務(wù)器將頁面的HTML文件轉(zhuǎn)換為二進(jìn)制的DOM樹結(jié)構(gòu),并將頁面的腳本代碼編譯成瀏覽器客戶端的JavaScript虛擬機(jī)能夠使用的二進(jìn)制字節(jié)碼,然后將所述二進(jìn)制的DOM樹結(jié)構(gòu)和字節(jié)碼下發(fā)給客戶端;客戶端接收到代理服務(wù)器返回的二進(jìn)制的DOM樹結(jié)構(gòu)和字節(jié)碼后,在頁面上渲染所述DOM樹結(jié)構(gòu)的內(nèi)容,并通過其JavaScript虛擬機(jī)執(zhí)行相應(yīng)的二進(jìn)制字節(jié)碼。例如,Wffff服務(wù)器發(fā)送給代理服務(wù)器以下的HTML文件<html>
<body> hello, world!
</br>
<img src="./4.jpg" width=" 130" height=" 130">
</body>
</htmI>編碼成二進(jìn)制的DOM樹結(jié)構(gòu),如下表I所示 00000000 54 51 42 4C 00 01 21 08 00 00 87 66 83 OD OE 03
00000010 m 19 08 08 4C 13 07 FF 00 00 00 OC OE 9B OC 681I—— 二二—二二——— ^ 00000020 165 6C 6C 6F 2C 77 6F 72 6C 64 21]^4 OF 08 IC 811
00000030 ,02 81 _02 94_07_ 2_E_2F 34_2E 6A_70 67_____________|表I其中,數(shù)據(jù)“5451 42 4C 00 01 21 08 00 00 87 66 83 OD OE 03”表示文件頭,上邊虛線框內(nèi)的數(shù)據(jù)為“hello,world ! ”的二進(jìn)制編碼數(shù)據(jù),下邊虛線框內(nèi)的數(shù)據(jù)為img標(biāo)簽中的圖片的二進(jìn)制編碼數(shù)據(jù)。以img標(biāo)簽中的圖片為例,具體含義說明如下表2所示<
權(quán)利要求
1.一種瀏覽器的腳本處理方法,其特征在于,該方法包括 客戶端將用戶請求的統(tǒng)一資源定位符(URL)發(fā)送到代理服務(wù)器; 代理服務(wù)器向所述URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器請求頁面,并將所述互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到所述客戶端; 所述客戶端執(zhí)行所述二進(jìn)制字節(jié)碼。
2.根據(jù)權(quán)利要求I所述瀏覽器的腳本處理方法,其特征在于,該方法進(jìn)一步包括 所述互聯(lián)網(wǎng)服務(wù)器在接收到代理服務(wù)器的頁面請求后,將頁面的超文本標(biāo)記語言(HTML)文件發(fā)送到所述代理服務(wù)器。
3.根據(jù)權(quán)利要求2所述瀏覽器的腳本處理方法,其特征在于,該方法進(jìn)一步包括 所述代理服務(wù)器將所述頁面的超文本標(biāo)記語言(HTML)文件轉(zhuǎn)換為二進(jìn)制的文檔對象模型(DOM)樹結(jié)構(gòu),并將所述DOM樹結(jié)構(gòu)發(fā)送到所述客戶端。
4.根據(jù)權(quán)利要求3所述瀏覽器的腳本處理方法,其特征在于,在所述代理服務(wù)器將DOM樹結(jié)構(gòu)發(fā)送到客戶端后,該方法進(jìn)一步包括 所述客戶端在頁面上渲染所述DOM樹結(jié)構(gòu)的內(nèi)容。
5.根據(jù)權(quán)利要求I至4任一項(xiàng)所述瀏覽器的腳本處理方法,其特征在于,所述腳本代碼為 JavaScript 代碼。
6.一種瀏覽器的腳本處理系統(tǒng),其特征在于,該系統(tǒng)包括客戶端、代理服務(wù)器和互聯(lián)網(wǎng)服務(wù)器,其中, 所述客戶端,用于將用戶請求的URL發(fā)送到所述代理服務(wù)器,還用于執(zhí)行所述代理服務(wù)器返回的二進(jìn)制字節(jié)碼; 所述代理服務(wù)器,用于向所述URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器請求頁面,并將所述互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到所述客戶端; 所述互聯(lián)網(wǎng)服務(wù)器,用于根據(jù)所述代理服務(wù)器的請求,向所述代理服務(wù)器提供頁面的腳本代碼。
7.根據(jù)權(quán)利要求6所述瀏覽器的腳本處理系統(tǒng),其特征在于,所述互聯(lián)網(wǎng)服務(wù)器進(jìn)一步用于,在接收到代理服務(wù)器的頁面請求后,將頁面的HTML文件發(fā)送到所述代理服務(wù)器。
8.根據(jù)權(quán)利要求7所述瀏覽器的腳本處理系統(tǒng),其特征在于,所述代理服務(wù)器進(jìn)一步用于,將所述頁面的HTML文件轉(zhuǎn)換為二進(jìn)制的DOM樹結(jié)構(gòu),并將所述DOM樹結(jié)構(gòu)發(fā)送到所述客戶端。
9.根據(jù)權(quán)利要求8所述瀏覽器的腳本處理系統(tǒng),其特征在于,所述客戶端進(jìn)一步用于,在接收到所述代理服務(wù)器的DOM樹結(jié)構(gòu)后,在頁面上渲染所述DOM樹結(jié)構(gòu)的內(nèi)容。
10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述瀏覽器的腳本處理系統(tǒng),其特征在于,所述腳本代碼為JavaScript代碼。
全文摘要
本發(fā)明公開了一種瀏覽器的腳本處理方法和系統(tǒng),方法包括客戶端將用戶請求的統(tǒng)一資源定位符(URL)發(fā)送到代理服務(wù)器;代理服務(wù)器向URL對應(yīng)的互聯(lián)網(wǎng)服務(wù)器請求頁面,并將互聯(lián)網(wǎng)服務(wù)器返回的頁面的腳本代碼編譯成二進(jìn)制字節(jié)碼后發(fā)送到客戶端;客戶端執(zhí)行二進(jìn)制字節(jié)碼。通過本發(fā)明,有效節(jié)省了移動(dòng)終端瀏覽器執(zhí)行腳本代碼編譯的開銷,實(shí)現(xiàn)了移動(dòng)終端瀏覽器對腳本代碼執(zhí)行操作的支持。
文檔編號(hào)H04L29/06GK102750281SQ201110097899
公開日2012年10月24日 申請日期2011年4月19日 優(yōu)先權(quán)日2011年4月19日
發(fā)明者張保華 申請人:騰訊科技(深圳)有限公司