欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種用于更新數(shù)據(jù)的客戶端裝置和方法

文檔序號:7663743閱讀:165來源:國知局
專利名稱:一種用于更新數(shù)據(jù)的客戶端裝置和方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于更新數(shù)據(jù)的客戶端裝置和方法。

背景技術(shù)
萬維網(wǎng)是因特網(wǎng)的多媒體信息檢索系統(tǒng)。在該網(wǎng)絡(luò)環(huán)境中,客戶端機(jī)器使用超文本傳輸協(xié)議(HTTP)與網(wǎng)絡(luò)服務(wù)器通信。
參考圖1,此處示出的是系統(tǒng)(100),其中網(wǎng)絡(luò)瀏覽器(110)(其是運行在客戶端計算機(jī)(105)上的應(yīng)用)通過向網(wǎng)絡(luò)服務(wù)器(120)請求網(wǎng)頁來呈現(xiàn)網(wǎng)頁(115)。使用例如超文本標(biāo)記語言(HTML)、可擴(kuò)展超文本標(biāo)記語言(XHTML)等的標(biāo)記語言構(gòu)造這樣的網(wǎng)頁。
在現(xiàn)有技術(shù)中,可以周期性地(例如,每2分鐘)調(diào)用網(wǎng)絡(luò)瀏覽器以啟動網(wǎng)頁內(nèi)容的刷新。在某些情況下,這對于用戶是可以接受的(例如用戶需要已更新的內(nèi)容時)。
然而,在其他情況下,這是不希望的。例如,網(wǎng)頁可以包括周期性刷新的股票價格和用戶可以填寫的表格。如果當(dāng)網(wǎng)頁刷新時用戶正在與表格交互,則用戶可能丟失他們已經(jīng)輸入到該表格的數(shù)據(jù)——這顯然使用戶感到沮喪。而且,整個網(wǎng)頁刷新可能非常緩慢并且引起屏幕閃爍。
US 6,377,957公開了一種系統(tǒng),該系統(tǒng)將在分層組織的數(shù)據(jù)中的改變傳播到數(shù)據(jù)的遠(yuǎn)程緩存拷貝。該系統(tǒng)通過接收在客戶端對數(shù)據(jù)的訪問進(jìn)行操作。響應(yīng)于這個訪問,系統(tǒng)確定客戶端是否包含該數(shù)據(jù)的拷貝。如果包含該數(shù)據(jù)的拷貝,則系統(tǒng)向服務(wù)器發(fā)送用于更新拷貝的請求。服務(wù)器接收請求并且確定服務(wù)器上數(shù)據(jù)的當(dāng)前版本和客戶端上數(shù)據(jù)較舊的拷貝之間的差異,其中服務(wù)器已經(jīng)本地存儲了所述數(shù)據(jù)較舊的拷貝。使用這些差異去構(gòu)造用于數(shù)據(jù)拷貝的更新,該更新可以包括用于數(shù)據(jù)中分層組織節(jié)點的節(jié)點插入和節(jié)點刪除操作。接下來,向客戶端發(fā)送該更新,并且在客戶端,將該更新應(yīng)用于數(shù)據(jù)的拷貝以生成已更新的數(shù)據(jù)拷貝。最后,允許繼續(xù)對已更新的數(shù)據(jù)拷貝的原始訪問。


發(fā)明內(nèi)容
根據(jù)第一方面,提供了用于更新供系統(tǒng)使用的數(shù)據(jù)的客戶端裝置,所述系統(tǒng)包括用于接收第一數(shù)據(jù)的接收器和用于調(diào)用所述第一數(shù)據(jù)的刷新的刷新調(diào)用裝置,其中,響應(yīng)于所述刷新調(diào)用裝置,所述接收器可操作為接收第二數(shù)據(jù),所述裝置包括比較器,用于比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并且可操作為確定在所述第一數(shù)據(jù)和所述第二數(shù)據(jù)之間是否存在差異;以及更新器,響應(yīng)于所述比較器確定存在差異,用于使用所述第二數(shù)據(jù)更新所述第一數(shù)據(jù)。
根據(jù)第二方面,提供了一種用于更新供系統(tǒng)使用的數(shù)據(jù)的方法,所述系統(tǒng)用于接收第一數(shù)據(jù)并且調(diào)用所述第一數(shù)據(jù)的刷新,其中,響應(yīng)于刷新調(diào)用,所述系統(tǒng)可操作為接收第二數(shù)據(jù),在客戶端計算機(jī)處,所述方法包括步驟比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù);確定在所述第一數(shù)據(jù)和所述第二數(shù)據(jù)之間是否存在差異;以及,響應(yīng)于確定存在差異,使用所述第二數(shù)據(jù)更新所述第一數(shù)據(jù)。
根據(jù)第三方面,提供了一種計算機(jī)程序,該計算機(jī)程序包括適合于當(dāng)所述程序運行在計算機(jī)上時執(zhí)行上述方法的所有步驟的程序代碼裝置。



現(xiàn)在,僅通過舉例的方式,參考下圖中示出的本發(fā)明優(yōu)選的實施例來描述本發(fā)明,圖中 圖1是包括客戶端計算機(jī)和服務(wù)器計算機(jī)的系統(tǒng)的框圖; 圖2是可以在其中實現(xiàn)本發(fā)明的系統(tǒng)的框圖; 圖3A是示出了根據(jù)優(yōu)選實施例的第一過程中包含的操作步驟的流程圖; 圖3B是示出了根據(jù)優(yōu)選實施例的第二過程中包含的操作步驟的流程圖; 圖4是第一XHTML文檔的表示; 圖5是第一DOM的表示; 圖6是第一網(wǎng)頁的表示; 圖7是第二DOM的表示;并且 圖8是第二網(wǎng)頁的表示。

具體實施例方式 參考圖2,此處示出的是可以在其中實現(xiàn)本發(fā)明的系統(tǒng)(200)的框圖。該系統(tǒng)(200)包括客戶端計算機(jī)(205)和服務(wù)器計算機(jī)(220),它們中的每一個都可操作為通過例如因特網(wǎng)的網(wǎng)絡(luò)彼此通信。
客戶端計算機(jī)(205)包括用于呈現(xiàn)由服務(wù)器計算機(jī)(220)提供的網(wǎng)頁的網(wǎng)絡(luò)瀏覽器(210)。
客戶端計算機(jī)(205)還包括用于向服務(wù)器計算機(jī)(220)發(fā)送網(wǎng)頁請求的請求器(225);用于接收來自于服務(wù)器計算機(jī)(220)的響應(yīng)的接收器(230);用于解析包括在響應(yīng)中的文檔并且在存儲器(255)中存儲相關(guān)文檔對象模型(DOM)的解析器;和用于呈現(xiàn)文檔的呈現(xiàn)器(240)。稍后將更詳細(xì)地描述DOM。
客戶端計算機(jī)(205)還包括用于比較多個DOM的比較器(245)和用于更新DOM的更新器(250)。應(yīng)該理解的是,本發(fā)明的裝置可以駐留在客戶端計算機(jī)處的網(wǎng)絡(luò)瀏覽器內(nèi)。
現(xiàn)在,將參考附圖描述優(yōu)選的實施例的例子。
參考圖3A,請求器(225)生成并且發(fā)送(步驟300)對于第一網(wǎng)頁的請求到服務(wù)器計算機(jī)(220)。在該例子中,XMLHTTPRequest對象代表該請求。通過使用XMLHTTPRequest對象,在已經(jīng)載入網(wǎng)頁之后,可以使用來自于服務(wù)器計算機(jī)(220)的數(shù)據(jù)改變網(wǎng)頁。對于XMLHTTPRequest對象可以使用各種方法。在這里描述的例子中,請求器(225)使用open()方法以指定請求的參數(shù),例如具有與獲得數(shù)據(jù)相關(guān)的“GET”的相關(guān)值的“方法”參數(shù)和與將獲得的URL(例如www.my_news.com)相關(guān)的URL參數(shù)。請求器(225)使用send()方法發(fā)送該請求。應(yīng)該理解可以以很多方式實現(xiàn)該請求。
響應(yīng)于接收該請求,服務(wù)器計算機(jī)(220)向接收器(230)發(fā)送(步驟305)包括第一網(wǎng)頁的響應(yīng)。在該例子中,與第一網(wǎng)頁相關(guān)的第一XHTML文檔包括在由服務(wù)器計算機(jī)(220)發(fā)送的HTTP響應(yīng)中。應(yīng)該理解可以使用許多標(biāo)記語言,例如HTML。
圖4中示出了第一XHTML文檔的例子。該文檔包括由標(biāo)記表示的元素。標(biāo)記由字符“<>”括起來。
<html></html>標(biāo)記(即根元素)定義了包括頭(由<head></head>標(biāo)記定義)和正文(由<body></body>標(biāo)記定義)的XHTML文檔。頭包括包含指定標(biāo)題(即,“News”)的文本串的<title></title>標(biāo)記。頭還包括用于標(biāo)識文檔屬性的<meta></meta>標(biāo)記。<meta></meta>標(biāo)記包括“http-equiv”屬性,該屬性用于指定服務(wù)器計算機(jī)應(yīng)該在HTTP響應(yīng)消息中傳達(dá)的信息,該文檔利用HTTP響應(yīng)消息傳輸。在圖4中,“http-equiv”屬性的值是“refresh”并且相關(guān)“content”屬性的值是“150”。示例語法指定應(yīng)該在150秒周期之后刷新包括<meta></meta>標(biāo)記的第一XHTML文檔。應(yīng)該理解刷新調(diào)用裝置可以以很多方式實現(xiàn)(例如與網(wǎng)頁瀏覽器(210)相關(guān)的程序代碼)。
圖4中,示出兩個<div></div>標(biāo)記。<div></div>標(biāo)記定義了文檔中的一部分。每個<div></div>標(biāo)記具有相關(guān)的標(biāo)識符(即,“News_1”和“News_2”)。在每個定義的部分內(nèi),示出了定義可以用于創(chuàng)建鏈接的錨點(anchor)的<a></a>標(biāo)記(其中“href”屬性指定了鏈接的URL)。在<a></a>標(biāo)記內(nèi)是用于創(chuàng)建鏈接的文本串。例如,作為可點擊的鏈接向用戶示出文本“Company X is due to be sold”,其中鏈接的URL是www.newsiteml.html。
響應(yīng)于接收HTTP響應(yīng),接收器(230)向解析器(235)傳送第一XHTML文檔,解析器(235)將第一XHTML文檔裝入存儲器(255)并且為了獲得第一相關(guān)DOM而解析它。
文檔對象模型(DOM)是用于文檔的應(yīng)用編程接口。DOM定義了文檔的邏輯類樹結(jié)構(gòu)以及訪問和操作文檔的方式??梢詫⒈硎揪W(wǎng)頁的文檔裝入存儲器并且對其進(jìn)行解析。一旦裝載到存儲器中并且被解析,就可以訪問文檔的邏輯結(jié)構(gòu)。文檔的元素、屬性和文本可以被表示為對象(公知為節(jié)點)。萬維網(wǎng)聯(lián)盟(W3C)已經(jīng)批準(zhǔn)定義了W3C DOM的規(guī)范。
圖5中示出了用于表示第一網(wǎng)頁的第一XHTML文檔的第一DOM的表示。應(yīng)該理解可以使用許多邏輯結(jié)構(gòu)。
示例性的第一DOM包括第一根元素節(jié)點(500);第一元素節(jié)點(505);第二元素節(jié)點(515);第一文本節(jié)點(520);第三元素節(jié)點(525);第一屬性節(jié)點(530);第二屬性節(jié)點(535);第四元素節(jié)點(510);第五元素節(jié)點(540);第六元素節(jié)點(545);第三屬性節(jié)點(550);第二文本節(jié)點(555);第七元素節(jié)點(560);第八元素節(jié)點(565);第四屬性節(jié)點(570)和第三文本節(jié)點(575)。
出于示例性目的,第一DOM包括多層。
第一層包括第一根元素節(jié)點(500)。第二層包括第一元素節(jié)點(505)和第四元素節(jié)點(510)。第三層包括第二元素節(jié)點(515)、第三元素節(jié)點(525)、第五元素節(jié)點(540)和第七元素節(jié)點(560)。第四層包括第一文本節(jié)點(520)、第一屬性節(jié)點(530)、第二屬性節(jié)點(535)、第六元素節(jié)點(545)和第八元素節(jié)點(565)。第五層包括第三屬性節(jié)點(550)、第二文本節(jié)點(555)、第四屬性節(jié)點(570)和第三文本節(jié)點(575)。
出于示例性目的,第一DOM包括多個分支。第一(左)分支包括第二元素節(jié)點(515)和第一文本節(jié)點(520)。第二(右)分支包括第三元素節(jié)點(525)、第一屬性節(jié)點(530)和第二屬性節(jié)點(535)。第三(左)分支包括第五元素節(jié)點(540)、第六元素節(jié)點(545)、第三屬性節(jié)點(550)和第二文本節(jié)點(555)。第四(右)分支包括第七元素節(jié)點(560)、第八元素節(jié)點(565)、第四屬性節(jié)點(570)和第三文本節(jié)點(575)。
呈現(xiàn)器(240)呈現(xiàn)(步驟310)第一XHTML文檔。圖6中示出第一網(wǎng)頁(600)的表示,包括第一部分(605)和第二部分(610)。
如上所述,<meta></meta>標(biāo)記指定應(yīng)該在150秒周期之后刷新第一XHTML文檔。因此在150秒周期之后,請求器(225)向服務(wù)器計算機(jī)(220)發(fā)送(步驟315)刷新請求,其中由XMLHTTPRequest對象表示刷新請求。
響應(yīng)于接收刷新請求,服務(wù)器計算機(jī)(220)向接收器(230)發(fā)送(步驟320)包括第二網(wǎng)頁的刷新響應(yīng)。在該例子中,與第二網(wǎng)頁相關(guān)的第二XHTML文檔包括在由服務(wù)器計算機(jī)(220)發(fā)送的HTTP響應(yīng)中。
響應(yīng)于接收HTTP響應(yīng),接收器(230)向解析器(235)傳送第二XHTML文檔,解析器(235)將第二XHTML文檔裝入存儲器(255)中,并且為了獲得相關(guān)第二DOM而解析它。在該例子中,圖7示出了第二DOM。
第二示例性DOM包括第二根元素節(jié)點(700);第九元素節(jié)點(705);第十元素節(jié)點(715);第四文本節(jié)點(720);第十一元素節(jié)點(725);第五屬性節(jié)點(730);第六屬性節(jié)點(735);第十二元素節(jié)點(710);第十三元素節(jié)點(740);第十四元素節(jié)點(745);第七屬性節(jié)點(750);第五文本節(jié)點(755);第十五元素節(jié)點(760);第十六元素節(jié)點(765);第八屬性節(jié)點(770)和第六文本節(jié)點(775)。
出于示例性目的,第二DOM包括多層。
第一層包括第二根元素節(jié)點(700)。第二層包括第九元素節(jié)點(705)和第十二元素節(jié)點(710)。第三層包括第十元素節(jié)點(715)、第十一元素節(jié)點(725)、第十三元素節(jié)點(740)和第十五元素節(jié)點(760)。第四層包括第四文本節(jié)點(720)、第五屬性節(jié)點(730)、第六屬性節(jié)點(735)、第十四元素節(jié)點(745)和第十六元素節(jié)點(765)。第五層包括第七屬性節(jié)點(750)、第五文本節(jié)點(755)、第八屬性節(jié)點(770)和第六文本節(jié)點(775)。
出于示例性目的,第二DOM包括多個分支。第一(左)分支包括第十元素節(jié)點(715)和第四文本節(jié)點(720)。第二(右)分支包括第十一元素節(jié)點(725)、第五屬性節(jié)點(730)和第六屬性節(jié)點(735)。第三(左)分支包括第十三元素節(jié)點(740)、第十四元素節(jié)點(745)、第七屬性節(jié)點(750)和第五文本節(jié)點(755)。第四(右)分支包括第十五元素節(jié)點(760)、第十六元素節(jié)點(765)、第八屬性節(jié)點(770)和第六文本節(jié)點(775)。
根據(jù)優(yōu)選的實施例,呈現(xiàn)器(240)不呈現(xiàn)第二XHTML文檔。而是,響應(yīng)于獲得第二DOM,解析器(235)調(diào)用比較器(245)。
比較器(245)執(zhí)行(步驟325)第一和第二DOM之間的比較?,F(xiàn)在將參考圖3B描述由比較器(245)使用的過程,其中比較器(245)檢查第一和第二DOM之間的差異。
優(yōu)選地,比較器(245)為了比較第一和第二DOM而執(zhí)行樹的遍歷算法。
優(yōu)選地,比較器(245)使用訪問每個DOM第一層的樹的遍歷算法。如果沒有發(fā)現(xiàn)差異,則比較器以如下順序訪問每個DOM左子樹的一個或多個節(jié)點節(jié)點505和705,第一分支和第二分支。如果沒有發(fā)現(xiàn)差異,則比較器以如下順序訪問每個DOM右子樹的一個或多個節(jié)點節(jié)點510和710,第三分支和第四分支。應(yīng)該理解可以實現(xiàn)許多種樹的遍歷算法。
如果比較器(245)確定在DOM之間發(fā)現(xiàn)差異,比較器(245)將調(diào)用稍后將描述的更新器(250)。
在這里描述的例子中,更新器(250)更新已經(jīng)在第二DOM中發(fā)現(xiàn)差異的第一DOM中的節(jié)點。
參看圖3B,比較器(245)訪問(步驟340)第一根元素節(jié)點(500)和第二根元素節(jié)點(700)。比較器(245)為了獲得相關(guān)名稱查詢第一根元素節(jié)點(500)和第二根元素節(jié)點(700)。參考圖3B,響應(yīng)于獲得名稱,比較器(245)比較(步驟345)所述名稱以確定所述名稱是否匹配。
如果比較器(245)確定名稱不匹配,比較器(245)調(diào)用(步驟365)稍后將描述的更新器(250)。
在這里的例子中,比較器(245)確定名稱(即,“<html>”)匹配。
響應(yīng)于名稱匹配,比較器(245)查詢第一根元素節(jié)點(500)和第二根元素節(jié)點(700),以確定(步驟350)第一根元素節(jié)點(500)和第二根元素節(jié)點(700)中的每個是否具有子節(jié)點。
如果比較器(245)確定第一根元素節(jié)點(500)和第二根元素節(jié)點(700)都不具有子節(jié)點,則比較器(245)做出關(guān)于是否存在要訪問的任何其他節(jié)點的確定(步驟390)。應(yīng)該理解,如果第一根元素節(jié)點(500)和第二根元素節(jié)點(700)都沒有節(jié)點,比較器(245)確定(步驟370)不存在要訪問的其他節(jié)點,并且該過程結(jié)束。
如果比較器(245)確定第一根元素節(jié)點(500)和第二根元素節(jié)點(700)中的一個或多個具有子節(jié)點,則比較器(245)執(zhí)行進(jìn)一步的查詢。
在這里的例子中,參看圖5和7,比較器(245)確定第一根元素節(jié)點(500)和第二根元素節(jié)點(700)的每一個都具有子節(jié)點(即,分別是節(jié)點505、510和705、710)。作為響應(yīng),比較器(245)查詢第一根元素節(jié)點(500)和第二根元素節(jié)點(700)的每一個,以獲得(步驟355)表示子節(jié)點列表的對象。
響應(yīng)于獲得每個列表,執(zhí)行其中比較器(245)使用每個列表的 “長度”屬性的比較,以返回列表中的大量節(jié)點。應(yīng)該理解如果第一根元素節(jié)點(500)和第二根元素節(jié)點(700)中的一個沒有子節(jié)點,則長度屬性的相關(guān)值是“0 ”。
對于第一根元素節(jié)點(500)和第二根元素節(jié)點(700)的每一個,列表的長度示出如下 Length(Node 500)=“2” Length(Node 700)=“2” 比較器(245)比較(步驟360)所述長度以確定它們是否匹配。
如果長度不匹配,則這指示差異。例如,如果第一根元素節(jié)點(500)具有兩個子節(jié)點,而第二根元素節(jié)點(700)具有三個子節(jié)點,則已經(jīng)發(fā)現(xiàn)差異。
如果長度不匹配,比較器(245)可操作為調(diào)用(步驟365)稍后將描述的更新器(250)。
在這里的例子中,比較器(245)確定長度(即“2”)匹配,并且作為響應(yīng),比較器(245)做出關(guān)于是否存在要訪問的任何其他節(jié)點的確定(步驟370)。
在這里的例子中,比較器(245)確定存在要訪問的其他節(jié)點,并且比較器(245)訪問(步驟340)每個DOM左子樹中的下一個節(jié)點。在這里的例子中,下一個節(jié)點是第一元素節(jié)點(505)和第九元素節(jié)點(705)。比較器(245)對于第一元素節(jié)點(505)和第九元素節(jié)點(705)執(zhí)行圖3B的過程。
比較器(245)訪問(步驟340)第一元素節(jié)點(505)和第九元素節(jié)點(705)。比較器(245)為了獲得相關(guān)名稱查詢第一元素節(jié)點(505)和第九元素節(jié)點(705)。比較器(245)比較(步驟345)所述名稱以確定名稱是否匹配。
在這里的例子中,比較器(245)確定名稱(即,“<head>”)匹配。作為響應(yīng),比較器(245)確定(步驟350)第一元素節(jié)點(505)和第九元素節(jié)點(705)的每一個是否具有子節(jié)點。
在這里的例子中,參考圖5和7,比較器(245)確定第一元素節(jié)點(505)和第九元素節(jié)點(705)的每一個具有子節(jié)點(即,分別是節(jié)點515、525和715、725)。
作為響應(yīng),比較器(245)查詢第一元素節(jié)點(505)和第九元素節(jié)點(705)的每一個,以獲得(步驟355)子節(jié)點的列表。
響應(yīng)于獲得每個列表,比較器(245)使用如上描述的“長度”屬性。對于第一元素節(jié)點(505)和第九元素節(jié)點(705)中的每一個,列表的長度示出如下 Length(Node 505)=“2” Length(Node 705)=“2” 比較器(245)比較(步驟360)該長度以確定它們是否匹配。
在這里的例子中,比較器(245)確定長度(即“2”)匹配。
作為響應(yīng),比較器(245)做出關(guān)于是否存在要訪問的其他節(jié)點的確定(步驟370)。
在這里的例子中,比較器(245)確定存在要訪問的其他節(jié)點,并且比較器(245)訪問(步驟340)與每個DOM相關(guān)的每個左子樹中的下一個節(jié)點。
在這里的例子中,下一個節(jié)點是第三元素節(jié)點(515)和第十元素節(jié)點(715)。比較器(245)對于第三元素節(jié)點(515)和第十元素節(jié)點(715)執(zhí)行圖3B的過程。
將不再進(jìn)一步描述用于每個DOM的每個左子樹中的其他節(jié)點的比較過程,正如在當(dāng)前例子中那樣,比較器(245)確定第二DOM的左子樹與第一DOM的左子樹沒有不同。
現(xiàn)在將描述右子樹的節(jié)點比較。
比較器(245)比較第四和第十二元素節(jié)點(分別是510和710)、第五和第十三元素節(jié)點(分別是540和740)、第六和第十四元素節(jié)點(分別是545和745)以及第三和第七屬性節(jié)點(分別是550和750)。在這里描述的例子中,比較器(245)并未確定相應(yīng)節(jié)點間的任何差異。
現(xiàn)在將描述第二和第五文本節(jié)點(分別是555和755)的比較。
比較器(245)訪問(步驟340)第二文本節(jié)點(555)和第五文本節(jié)點(755)。比較器(245)為了獲得相關(guān)名稱而查詢第二文本節(jié)點(555)和第五文本節(jié)點(755)。比較器(245)比較(步驟345)所述名稱以確定所述名稱是否匹配。
在這里描述的例子中,參考圖5和7,比較器(245)確定名稱(即,“Company X is due to be sold”和“Company X has been sold toCompany Y”)不匹配。這指示已經(jīng)發(fā)現(xiàn)差異。
作為響應(yīng),比較器(245)可操作為調(diào)用(步驟365)更新器(250)。
參考圖3A,更新器(250)可操作為使用與第一DOM的相應(yīng)至少一個節(jié)點不同的第二DOM的至少一個節(jié)點更新(步驟330)第一DOM?,F(xiàn)在將更詳細(xì)地描述更新器(250)。
更新器(250)查詢與第一DOM的相應(yīng)節(jié)點(即第三文本節(jié)點555)不同的第二DOM的節(jié)點(即第五文本節(jié)點755),以確定相關(guān)的父節(jié)點。在這里的例子中,父節(jié)點是第十四元素節(jié)點(745)。
響應(yīng)于確定父節(jié)點,更新器執(zhí)行方法(例如方法“removeChild”),以從與父節(jié)點(745)相關(guān)的子節(jié)點列表中移除第五文本節(jié)點(755)。
響應(yīng)于從與父節(jié)點(745)相關(guān)的子節(jié)點列表中移除第五文本節(jié)點(755),更新器(250)使用方法(例如方法adoptNode)以將第五文本節(jié)點(755)從第二XHTML文檔采納到第一XHTML文檔。
響應(yīng)于采納了第五文本節(jié)點(755),更新器(250)使用方法(例如方法replaceChild)以利用第五文本節(jié)點(755)替換第二文本節(jié)點(555)。
呈現(xiàn)器(240)呈現(xiàn)(步驟335)第一XHTML文檔。圖8中示出的第二網(wǎng)頁(800)的表示包括第一部分(805)和第二部分(610)。
參考圖3B,比較器(245)做出關(guān)于是否存在要訪問的其他更多節(jié)點的確定(步驟370)。
在這里的例子中,比較器(245)確定存在要訪問的其他節(jié)點,并且參考圖5和7,比較器(245)使用圖3B的過程以比較第七和第十五元素節(jié)點(分別是560和760);第八和第十六元素節(jié)點(分別是565和765);第四和第八屬性節(jié)點(分別是570和770)以及第三和第六文本節(jié)點(分別是575和775)。在這里描述的例子中,比較器(245)未確定相應(yīng)節(jié)點間的任何差異。作為響應(yīng),由于不存在要訪問的更多節(jié)點,該過程結(jié)束。
在圖8中可以看到,在無需更新未改變的第二部分(610)的情況下,已經(jīng)呈現(xiàn)了包括與第一網(wǎng)頁的第一部分(605)不同的第一部分(805)的第二網(wǎng)頁。
本發(fā)明優(yōu)選的實施例提供了改善對網(wǎng)頁的一般更新處理的機(jī)制。如上所述,網(wǎng)頁的一般更新可能使用戶感到沮喪。而且,整個網(wǎng)頁刷新可能非常緩慢,并且引起屏幕閃爍。
有利地,本發(fā)明優(yōu)選的實施例允許僅更新網(wǎng)頁的不同(改變的)部分。因此,用戶可以繼續(xù)與網(wǎng)頁未改變的部分進(jìn)行交互。而且,本發(fā)明的機(jī)制提供了網(wǎng)頁的快速更新。
而且,在客戶端側(cè)提供本發(fā)明優(yōu)選的實施例的裝置。
因此,本發(fā)明優(yōu)選的實施例利用了當(dāng)前改善的網(wǎng)絡(luò)鏈路(例如,在帶寬方面),原因在于客戶端計算機(jī)接收了包括整個網(wǎng)頁的響應(yīng)。
而且,有利地,由于在客戶端側(cè)提供本發(fā)明的裝置,因此在服務(wù)器側(cè)不需要改變。這是有利的,因為服務(wù)側(cè)改變可能是復(fù)雜的并且如果發(fā)生錯誤,則影響多個客戶端。而且,服務(wù)器側(cè)需要的額外的工作可以導(dǎo)致客戶端側(cè)的延遲。而且,為了比較網(wǎng)頁的差異,服務(wù)器計算機(jī)需要存儲網(wǎng)頁較舊的版本,這可以導(dǎo)致服務(wù)器計算機(jī)的巨大的開銷。
現(xiàn)在將描述優(yōu)選實施例方面的可選的實現(xiàn)方式。
應(yīng)該理解可以在DOM的剩余部分的比較之后執(zhí)行呈現(xiàn)步驟335。
應(yīng)該理解可以配置比較器(245)以從DOM中的任何節(jié)點開始比較DOM。例如,可以配置比較器(245)去比較每個DOM的多個分支(例如第一分支、第二分支、第三分支和第四分支)。這是有優(yōu)勢的,原因在于比較器可以確定(例如,根據(jù)歷史的統(tǒng)計;根據(jù)來自于網(wǎng)頁開發(fā)者等的指令)具有名稱“<html>”、“<head>”和“<body>”的元素節(jié)點沒有改變。因此,通過移除比較器(245)對于訪問和比較這些節(jié)點的需要,比較過程更有效率。
應(yīng)該理解比較器(245)可以檢查節(jié)點間的許多差異(例如于屬性相關(guān)的值的差異)。
應(yīng)該理解更新器(250)可以以很多方式更新DOM。在這里描述的例子中,在第二DOM中已經(jīng)發(fā)現(xiàn)差異的第一DOM中的節(jié)點處,發(fā)生更新??蛇x地,更新可以發(fā)生在第二DOM中已經(jīng)發(fā)現(xiàn)差異的第一DOM中的節(jié)點處并且更新一個或多個相關(guān)子節(jié)點。
在一個例子中,更新器(250)可以配置為更新已經(jīng)在第二DOM中發(fā)現(xiàn)差異的第一DOM中的節(jié)點并且更新所有它的相關(guān)子節(jié)點。
在此例子中,關(guān)于第一根元素節(jié)點(500)和第二根元素節(jié)點(700)的每一個是否具有子節(jié)點的確定(步驟375)對于比較器(245)確定在特定層在DOM間是否存在任何差異是有效的方式,因為不必訪問和比較低于第一層的更低層節(jié)點。即,如果第一根元素節(jié)點(500)具有子節(jié)點而第二根元素節(jié)點(700)沒有子節(jié)點,則在DOM的第一層處已經(jīng)發(fā)現(xiàn)差異。因此,不需要發(fā)生訪問和比較一個或更多低于第一層的層處的節(jié)點的情況。相反,比較器(245)調(diào)用更新器(250)以在第一層更新第一DOM,其中更新了第一根元素節(jié)點(500)和所有它的相關(guān)子節(jié)點(節(jié)點505到575)(例如通過使用第二根元素節(jié)點(700)和所有它的相關(guān)子節(jié)點(節(jié)點705到775)進(jìn)行替換)。
對于本領(lǐng)域的一個普通技術(shù)人員來說,應(yīng)該清楚本發(fā)明優(yōu)選的實施例的方法的全部或部分可以適當(dāng)?shù)夭⑶矣行У伢w現(xiàn)在一個邏輯裝置或者多個邏輯裝置中,所述一個邏輯裝置或多個邏輯裝置包括布置為執(zhí)行該方法步驟的邏輯元件,并且這樣的邏輯元件可以包括硬件組件、固件組件或者它們的組合。
對于本領(lǐng)域的一個普通技術(shù)人員來說,同樣應(yīng)該清楚根據(jù)本發(fā)明優(yōu)選的實施例的邏輯布置的全部或者一部分可以適當(dāng)?shù)伢w現(xiàn)在包括執(zhí)行該方法步驟的邏輯元件的邏輯裝置中,并且這樣的邏輯元件可以包括例如可編程邏輯陣列或者專用集成電路中的邏輯門的組件。這樣的邏輯布置還可以體現(xiàn)在使能元件中,所使能元件用于使用例如虛擬硬件描述符語言在這樣的陣列或電路中臨時地或者永久地建立邏輯結(jié)構(gòu),所述虛擬硬件描述符語言可以使用固定的或者可傳輸?shù)某休d介質(zhì)存儲并且傳輸。
應(yīng)該理解,也可以以運行在一個或多個處理器上(圖中未示出)的軟件來全部或者部分地適當(dāng)實現(xiàn)上面描述的方法和布置,并且可以以一個或多個計算機(jī)程序元件的形式提供該軟件,該計算機(jī)程序元件承載于任何例如磁盤或者光盤等合適的數(shù)據(jù)承載體上(圖中也未示出)。用于傳輸數(shù)據(jù)的信道同樣可以包括所有描述的存儲介質(zhì)以及信號-承載介質(zhì),例如有線或者無線信號-承載介質(zhì)。
本發(fā)明還可以適當(dāng)?shù)伢w現(xiàn)為供計算機(jī)系統(tǒng)使用的計算機(jī)程序產(chǎn)品。這樣的實現(xiàn)可以包括一系列計算機(jī)可讀指令,所述計算機(jī)可讀指令既可以固定在有形介質(zhì)(諸如計算機(jī)可讀介質(zhì))上,例如,軟盤、CD-ROM、ROM或者硬盤,也可以經(jīng)由調(diào)制解調(diào)器或者其他接口設(shè)備通過包括但不限于光或者模擬通信線路的有形介質(zhì)或者無形地使用包括但不限于微波、紅外或者其他傳輸技術(shù)的無線技術(shù)而傳輸?shù)接嬎銠C(jī)系統(tǒng)。該一系列計算機(jī)可讀指令體現(xiàn)了這里在前面描述的所有或者部分功能。
本領(lǐng)域的那些技術(shù)人員應(yīng)該理解,可以以大量的編程語言編寫這樣的計算機(jī)可讀指令,以供很多計算機(jī)架構(gòu)或者操作系統(tǒng)使用。而且,這樣的指令可以使用任何當(dāng)前或者未來的存儲技術(shù)存儲,包括但不限于半導(dǎo)體、磁性、或者光存儲技術(shù),或者使用任何當(dāng)前或者未來通信技術(shù)進(jìn)行傳輸,包括但不限于光、紅外、或者微波通信技術(shù)??梢栽O(shè)想這樣的計算機(jī)程序產(chǎn)品可以作為可移動介質(zhì)分發(fā),該可移動介質(zhì)具有隨附印刷或電子文檔,例如緊縮套裝軟件,預(yù)裝載在計算機(jī)系統(tǒng)的例如系統(tǒng)ROM或者固定盤上,或者通過網(wǎng)絡(luò),例如因特網(wǎng)或者萬維網(wǎng),從服務(wù)器或者電子布告欄分發(fā)。
作為選擇,本發(fā)明的優(yōu)選實施例可以以部署一服務(wù)的計算機(jī)實現(xiàn)方法的形式來實現(xiàn),該方法包括步驟部署可操作為當(dāng)在計算機(jī)基礎(chǔ)設(shè)施中部署并且在其上執(zhí)行時,使所述計算機(jī)系統(tǒng)執(zhí)行所描述的方法的所有步驟的計算機(jī)程序代碼。
對于本領(lǐng)域的一個技術(shù)人員應(yīng)該清楚,可以在不脫離本發(fā)明范圍的情況下,對前述示例性實施方式做出很多改善和修改。
權(quán)利要求
1.一種用于更新供系統(tǒng)使用的數(shù)據(jù)的客戶端裝置,所述系統(tǒng)包括用于接收第一數(shù)據(jù)的接收器和用于調(diào)用所述第一數(shù)據(jù)的刷新的刷新調(diào)用裝置,其中,響應(yīng)于所述刷新調(diào)用裝置,所述接收器可操作為接收第二數(shù)據(jù),所述裝置包括
比較器,用于比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并且可操作為確定在所述第一數(shù)據(jù)和所述第二數(shù)據(jù)之間是否存在差異;以及
更新器,響應(yīng)于所述比較器確定存在差異,用于使用所述第二數(shù)據(jù)更新所述第一數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的裝置,還包括呈現(xiàn)器,用于呈現(xiàn)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的至少一個。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的裝置,還包括解析器,用于在存儲設(shè)備中存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并且解析所述第一數(shù)據(jù)和所述第二數(shù)據(jù)以分別獲得第一邏輯結(jié)構(gòu)和第二邏輯結(jié)構(gòu)。
4.根據(jù)權(quán)利要求3所述的裝置,其中為了比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù),所述比較器可操作為訪問所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)。
5.根據(jù)權(quán)利要求3或權(quán)利要求4所述的裝置,其中所述比較器可操作為比較所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)的至少一個屬性。
6.根據(jù)權(quán)利要求5所述的裝置,其中所述至少一個屬性包括名稱、一個子節(jié)點和大量字節(jié)點中的至少一項。
7.根據(jù)權(quán)利要求3到6的任何一項所述的裝置,其中所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)是樹,并且其中所述比較器可操作為執(zhí)行樹遍歷算法以訪問所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)。
8.根據(jù)權(quán)利要求3到7的任何一項所述的裝置,其中所述比較器確定在所述第一邏輯結(jié)構(gòu)的第一子集和所述第二邏輯結(jié)構(gòu)的第二子集間存在差異,并且其中所述更新器可操作為使用所述第二子集更新所述第一子集。
9.根據(jù)前述權(quán)利要求的任何一項所述的裝置,其中所述比較器可操作為從與所述第一數(shù)據(jù)和所述第二數(shù)據(jù)相關(guān)的可預(yù)配置的開始位置比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
10.根據(jù)前述權(quán)利要求的任何一項所述的裝置,其中第三數(shù)據(jù)包括所述第二數(shù)據(jù),并且其中所述更新器可操作為使用所述第三數(shù)據(jù)更新所述第一數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的裝置,其中所述第三數(shù)據(jù)代表所述第二數(shù)據(jù)的父數(shù)據(jù)。
12.根據(jù)前述權(quán)利要求的任何一項所述的裝置,其中所述第一數(shù)據(jù)和所述第二數(shù)據(jù)代表以標(biāo)記語言生成的文檔。
13.根據(jù)權(quán)利要求12所述的裝置,其中所述文檔代表網(wǎng)頁。
14.根據(jù)前述權(quán)利要求的任何一項所述的裝置,其中所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)代表DOM樹。
15.一種用于更新供系統(tǒng)使用的數(shù)據(jù)的方法,所述系統(tǒng)用于接收第一數(shù)據(jù)并且調(diào)用所述第一數(shù)據(jù)的刷新,其中,響應(yīng)于刷新調(diào)用,所述系統(tǒng)可操作為接收第二數(shù)據(jù),在客戶端計算機(jī)處,所述方法包括步驟
比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù);
確定在所述第一數(shù)據(jù)和所述第二數(shù)據(jù)之間是否存在差異;并且
響應(yīng)于確定存在差異,使用所述第二數(shù)據(jù)更新所述第一數(shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的方法,還包括步驟呈現(xiàn)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的至少一個。
17.根據(jù)權(quán)利要求15或權(quán)利要求16所述的方法,還包括步驟
在存儲設(shè)備中存儲所述第一數(shù)據(jù)和所述第二數(shù)據(jù);并且
解析所述第一數(shù)據(jù)和所述第二數(shù)據(jù),以分別獲得第一邏輯結(jié)構(gòu)和第二邏輯結(jié)構(gòu)。
18.根據(jù)權(quán)利要求17所述的方法,其中所述比較步驟還包括步驟訪問所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)。
19.根據(jù)權(quán)利要求17或權(quán)利要求18所述的方法,其中所述比較步驟還包括步驟比較所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)的至少一個屬性。
20.根據(jù)權(quán)利要求19所述的方法,其中所述至少一個屬性包括名稱、一個子節(jié)點和大量字節(jié)點中的至少一項。
21.根據(jù)權(quán)利要求17到20的任何一項所述的方法,其中所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)是樹,并且其中所述訪問步驟還包括步驟執(zhí)行樹遍歷算法。
22.根據(jù)權(quán)利要求17到21的任何一項所述的方法,還包括步驟確定在所述第一邏輯結(jié)構(gòu)的第一子集和所述第二邏輯結(jié)構(gòu)的第二子集間存在差異并且使用所述第二子集更新所述第一子集。
23.根據(jù)權(quán)利要求17到22的任何一項所述的方法,還包括步驟從與所述第一數(shù)據(jù)和所述第二數(shù)據(jù)相關(guān)的可預(yù)配置的開始位置比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
24.根據(jù)權(quán)利要求15到23的任何一項所述的方法,其中第三數(shù)據(jù)包括所述第二數(shù)據(jù),并且還包括步驟使用所述第三數(shù)據(jù)更新所述第一數(shù)據(jù)。
25.根據(jù)權(quán)利要求24所述的方法,其中所述第三數(shù)據(jù)代表所述第二數(shù)據(jù)的父數(shù)據(jù)。
26.根據(jù)權(quán)利要求15到25的任何一項所述的方法,其中所述第一數(shù)據(jù)和所述第二數(shù)據(jù)代表以標(biāo)記語言生成的文檔。
27.根據(jù)權(quán)利要求26所述的方法,其中所述文檔代表網(wǎng)頁。
28.根據(jù)權(quán)利要求17到27的任何一項所述的方法,其中所述第一邏輯結(jié)構(gòu)和所述第二邏輯結(jié)構(gòu)代表DOM樹。
全文摘要
一種用于更新供系統(tǒng)使用的數(shù)據(jù)的客戶端裝置,所述系統(tǒng)包括用于接收第一數(shù)據(jù)的接收器和用于調(diào)用所述第一數(shù)據(jù)的刷新的刷新調(diào)用裝置,其中,響應(yīng)于所述刷新調(diào)用裝置,所述接收器可操作為接收第二數(shù)據(jù),所述裝置包括比較器,用于比較所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并且可操作為確定在所述第一數(shù)據(jù)和所述第二數(shù)據(jù)之間是否存在差異;以及更新器,響應(yīng)于所述比較器確定存在差異,用于使用所述第二數(shù)據(jù)更新所述第一數(shù)據(jù)。
文檔編號H04L29/08GK101184105SQ20071016757
公開日2008年5月21日 申請日期2007年10月29日 優(yōu)先權(quán)日2006年11月18日
發(fā)明者M·J·蓋爾, B·V·貝迪 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
北海市| 张家港市| 江孜县| 从化市| 翁牛特旗| 朔州市| 清新县| 益阳市| 商洛市| 天峨县| 深圳市| 徐州市| 镇原县| 孟州市| 东乌珠穆沁旗| 达尔| 铁力市| 阳高县| 武川县| 五常市| 临邑县| 湘潭县| 平度市| 广州市| 喀什市| 永州市| 同心县| 章丘市| 富川| 双辽市| 堆龙德庆县| 梅河口市| 贵德县| 四平市| 霍山县| 基隆市| 宝丰县| 军事| 射阳县| 华容县| 伊川县|