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

加速文檔加載的制作方法

文檔序號(hào):10540864閱讀:244來源:國知局
加速文檔加載的制作方法
【專利摘要】用于加速文檔加載的方法、系統(tǒng)和裝置,所述裝置包括在計(jì)算機(jī)存儲(chǔ)介質(zhì)上編碼的計(jì)算機(jī)程序。在一些實(shí)現(xiàn)中,文檔的資源是從第一源所請(qǐng)求的,并且所述文檔的元數(shù)據(jù)是從與所述第一源不同的第二源所請(qǐng)求的。所請(qǐng)求的元數(shù)據(jù)是從所述第二源接收的,并且所請(qǐng)求的資源是從所述第一源接收的?;谒邮盏降脑獢?shù)據(jù)的所述文檔的第一表示被提供用于顯示。在提供所述第一表示之后,生成所述文檔的將所述第一表示的部分與所述文檔的附加部分組合的第二表示,并且所述第二表示被提供用于顯示。
【專利說明】
加速文檔加載
技術(shù)領(lǐng)域
[0001 ]本說明書一般地描述用于加速文檔加載的技術(shù)。
【背景技術(shù)】
[0002]許多類型的電子設(shè)備通過網(wǎng)絡(luò)(諸如互聯(lián)網(wǎng))訪問網(wǎng)頁和其它文檔。單個(gè)文檔可以包括來自多個(gè)資源的內(nèi)容。例如,文檔的URL可以識(shí)別超文本標(biāo)記語言(HTML)文件,并且該HTML文件可以引用附加組件,諸如樣式表、圖像、廣告、要顯示在內(nèi)聯(lián)幀中的其它HTML文件以及其它組件。在用戶利用web瀏覽器請(qǐng)求文檔的時(shí)間與文檔的有用視圖被顯示的時(shí)間之間常常存在顯著的延遲。

【發(fā)明內(nèi)容】

[0003]為了加速將文檔給用戶的呈現(xiàn),設(shè)備能夠通過網(wǎng)絡(luò)請(qǐng)求文檔并且還從另一源請(qǐng)求元數(shù)據(jù),諸如文檔的布局或格式化信息。元數(shù)據(jù)能夠允許設(shè)備在渲染文檔的過程中的早期確定文檔的準(zhǔn)確布局。
[0004]常常,加載文檔的過程牽涉一個(gè)一個(gè)地發(fā)現(xiàn)文檔的組件。當(dāng)文檔的組件被順序地發(fā)現(xiàn)時(shí),每個(gè)新組件的發(fā)現(xiàn)可以隨著新組件被識(shí)別、預(yù)取并處理而引入附加延遲。在許多實(shí)例中,處理組件揭示了必須預(yù)取并處理其他附加的組件以完成對(duì)文檔的渲染。隨著文檔的新組件被發(fā)現(xiàn)并被處理,web瀏覽器可以重復(fù)地改變文檔的所顯示的視圖。對(duì)文檔中的元素進(jìn)行再定位和重定大小(常常被稱為“回流”)能夠在文檔的組件仍在被檢索并被處理的同時(shí)以妨礙用戶對(duì)所顯示內(nèi)容的消耗的方式,移動(dòng)內(nèi)容。
[0005]為了減少在向用戶呈現(xiàn)文檔時(shí)的延遲,可以在通常能夠在常規(guī)的資源發(fā)現(xiàn)期間計(jì)算信息之前,提供指示與文檔有關(guān)的布局、格式化或其它信息的元數(shù)據(jù)。在客戶端設(shè)備試圖加載文檔之前,計(jì)算系統(tǒng)能夠分析該文檔以識(shí)別或者生成能夠加速文檔的呈現(xiàn)的元數(shù)據(jù)。例如,計(jì)算系統(tǒng)能夠識(shí)別并提取渲染文檔所需的各種級(jí)聯(lián)樣式表(CSS)的部分。例如,計(jì)算系統(tǒng)還能夠確定文檔中的元素在文檔被完全地被渲染并且文檔中的腳本已被解釋之后的最終大小和位置。所識(shí)別的CSS文件的部分以及元素的大小和位置可以被存儲(chǔ)為與文檔對(duì)應(yīng)的元數(shù)據(jù),并且能夠響應(yīng)于客戶端的請(qǐng)求設(shè)備而被提供。因?yàn)槲臋n的布局改變的不如頁面的文本、圖像或其它內(nèi)容一樣頻繁,所以即使在內(nèi)容提供者更改頁面的內(nèi)容之后,元數(shù)據(jù)也將常常提供與文檔的布局有關(guān)的準(zhǔn)確信息。
[0006]當(dāng)客戶端設(shè)備導(dǎo)航到文檔時(shí),該客戶端設(shè)備的web瀏覽器可以通過網(wǎng)絡(luò)請(qǐng)求文檔。Web瀏覽器還可以單獨(dú)地請(qǐng)求用于加速文檔的呈現(xiàn)的元數(shù)據(jù)。例如,web瀏覽器可以向元數(shù)據(jù)服務(wù)發(fā)送請(qǐng)求,其中所述請(qǐng)求包括正在被加載的文檔的統(tǒng)一資源定位符(URL)。元數(shù)據(jù)服務(wù)可以接著提供先前為文檔所生成并存儲(chǔ)的元數(shù)據(jù)。因?yàn)閣eb瀏覽器能夠在識(shí)別在文檔內(nèi)所引用的特定資源或嵌入的組件之前請(qǐng)求文檔的元數(shù)據(jù),所以能夠在文檔的任何部分被接收并處理之前請(qǐng)求元數(shù)據(jù)。結(jié)果,到web瀏覽器接收到或者處理文檔的HTML文件或其它部分的時(shí)候,指示文檔的布局特性的元數(shù)據(jù)可能已經(jīng)存在于客戶端設(shè)備處。使用元數(shù)據(jù),即使在文檔的附加組件仍然在被發(fā)現(xiàn)、下載和處理的時(shí),web瀏覽器也能夠提供具有準(zhǔn)確的布局和格式化的文檔的早期視圖。
[0007]在一些實(shí)現(xiàn)中,包括到登錄頁面的鏈接的引用(referring)網(wǎng)頁能夠包括用于加速登錄頁面的加載的元數(shù)據(jù)。當(dāng)引用頁面被加載時(shí),登錄頁面的元數(shù)據(jù)自動(dòng)地被檢索。當(dāng)用戶與引用頁面中的鏈接交互時(shí),用戶的客戶端設(shè)備已經(jīng)具有登錄頁面的元數(shù)據(jù)并且能夠迅速地提供登錄頁面的視圖。在一些實(shí)現(xiàn)中,引用頁面是包括到搜索結(jié)果文檔的鏈接的搜索引擎結(jié)果頁面。引用頁面可以包括用于對(duì)搜索結(jié)果文檔中的一個(gè)或多個(gè)的加載進(jìn)行加速的元數(shù)據(jù)。此外,或者作為替選,引用頁面可以使得搜索結(jié)果文檔的元數(shù)據(jù)在與到搜索結(jié)果文檔的鏈接的用戶交互之前或者響應(yīng)于與到搜索結(jié)果文檔的鏈接的用戶交互而被檢索。
[0008]在一般方面中,方法包括:從第一源請(qǐng)求文檔的資源;在接收所請(qǐng)求的資源之前,從與所述第一源不同的第二源請(qǐng)求所述文檔的元數(shù)據(jù);從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù);從所述第一源接收所請(qǐng)求的所述文檔的資源;提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的第一表示以用于顯示;以及在提供了基于來自所述第二源的所述元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示之后:(i)生成將所述第一表示的部分與所述文檔的附加部分組合的第二表示;以及(ii)提供將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示以用于顯示。
[0009]這個(gè)方面的其它實(shí)現(xiàn)包括對(duì)應(yīng)的系統(tǒng)、裝置和計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被配置成被編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上執(zhí)行所述方法的動(dòng)作。一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)能夠借助安裝在所述系統(tǒng)上的在操作時(shí)使所述系統(tǒng)執(zhí)行動(dòng)作的軟件、固件、硬件或它們的組合被如此配置。一個(gè)或多個(gè)計(jì)算機(jī)程序還能夠借助具有當(dāng)由數(shù)據(jù)處理裝置執(zhí)行時(shí)使得所述裝置執(zhí)行動(dòng)作的指令被如此配置。
[0010]實(shí)現(xiàn)可以包括以下特征中的一個(gè)或多個(gè)。例如,從與所述第一源不同的所述第二源請(qǐng)求所述文檔的元數(shù)據(jù)包括:從第二源請(qǐng)求未被所述文檔的資源所識(shí)別的所述文檔的元數(shù)據(jù)。提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括:以由從所述第二源所接收到的所述元數(shù)據(jù)所指示的位置和大小來提供包括從所接收到的所述文檔的資源所指示的可顯示元素在內(nèi)的所述文檔的第一表示。提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括:在接收指示用于對(duì)所述元素進(jìn)行顯示的區(qū)域的所述文檔的資源之前,基于所接收到的元數(shù)據(jù)來確定用于對(duì)所述文檔的元素進(jìn)行顯示的區(qū)域;以及提供為所述元素而保留所述表示的區(qū)域的所述文檔的所述第一表示。生成將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示包括:按照由從所述第二源所接收到的元數(shù)據(jù)所指示的位置和大小,生成添加了所述文檔的附加可顯示元素的第二表示。
[0011]實(shí)現(xiàn)可以包括以下特征中的一個(gè)或多個(gè)。例如,從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括接收包括來自級(jí)聯(lián)樣式表資源的樣式數(shù)據(jù)的元數(shù)據(jù),所述樣式數(shù)據(jù)包括被用在所述文檔中的一個(gè)或多個(gè)樣式的所述級(jí)聯(lián)樣式表資源中的數(shù)據(jù),并且所述樣式數(shù)據(jù)排除未被用在所述文檔中的一個(gè)或多個(gè)樣式的所述級(jí)聯(lián)樣式表資源中的數(shù)據(jù)。從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括接收來自所述文檔的字體資源的數(shù)據(jù)。從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括在客戶端設(shè)備處接收指示通過與所述客戶端設(shè)備不同的設(shè)備對(duì)所述文檔的清染的布局或格式化的特性的數(shù)據(jù)。所述文檔包括Javascr ipt內(nèi)容,所述Javascript內(nèi)容當(dāng)被處理時(shí),影響所述文檔的一個(gè)或多個(gè)元素的布局。從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括接收指示反映處理所述Javascr ipt內(nèi)容的效果的所述一個(gè)或多個(gè)元素的布局的數(shù)據(jù)。從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括接收指示所述文檔的折疊線的位置的數(shù)據(jù)。所述方法包括:基于指示所述文檔的折疊線的位置的所述數(shù)據(jù),識(shí)別用于顯示在所述文檔的折疊線上方區(qū)域中的內(nèi)容;以及對(duì)所述文檔的內(nèi)容的處理進(jìn)行優(yōu)先排序,使得用于顯示在所述折疊線上方區(qū)域中的所識(shí)別的內(nèi)容在處理用于顯示在所述折疊線上方區(qū)域外的內(nèi)容之前被處理。
[0012]本說明書中所描述的主題的一個(gè)或多個(gè)實(shí)現(xiàn)的細(xì)節(jié)在以下附圖和描述中被闡述。通過本描述、附圖和/或權(quán)利要求,本主題的其它潛在的特征、方面和優(yōu)點(diǎn)將變得顯而易見。
【附圖說明】
[0013]圖1是圖示用于加速文檔加載的系統(tǒng)的示例的框圖。
[0014]圖2A至圖2C是圖示在加載文檔的同時(shí)示出的用戶界面的示例的圖。
[0015]圖3A至圖3C是圖示在加載文檔的同時(shí)示出的用戶界面的示例的圖。
[0016]圖4是圖示在加載文檔時(shí)的事件的時(shí)序的示例的圖。
[0017]圖5是圖示用于加速文檔加載的過程的示例的流程圖。
[0018]圖6是圖示用于加速文檔加載的系統(tǒng)的示例的框圖。
[0019]圖7和圖8是圖示用于加速文檔加載的過程的示例的流程圖。
[0020]各個(gè)附圖中的相同的附圖標(biāo)記指示相同的元素。
【具體實(shí)施方式】
[0021]圖1是圖示用于加速文檔加載的系統(tǒng)100的示例的框圖。系統(tǒng)100包括客戶端設(shè)備110、第一計(jì)算系統(tǒng)120、第二計(jì)算系統(tǒng)130和網(wǎng)絡(luò)118。該圖示出了圖示數(shù)據(jù)的流動(dòng)的階段(A)至(E),以及圖示客戶端設(shè)備110上所示出的用戶界面的階段(E)和(F)。
[0022]在該示例中,用戶102在客戶端設(shè)備110的web瀏覽器中加載文檔。web瀏覽器從計(jì)算系統(tǒng)120請(qǐng)求文檔。在接收文檔之前,web瀏覽器還從計(jì)算系統(tǒng)130請(qǐng)求用于加速文檔的加載的數(shù)據(jù),通常被稱為元數(shù)據(jù)或加速數(shù)據(jù)。web瀏覽器使用文檔的內(nèi)容和獨(dú)立被提供的元數(shù)據(jù)來迅速地給用戶102提供文檔的視圖。在一些實(shí)現(xiàn)中,所請(qǐng)求的元數(shù)據(jù)允許web瀏覽器在顯示文檔時(shí)減少或者避免回流。所請(qǐng)求的元數(shù)據(jù)還可以允許web瀏覽器先提供文檔的有意義視圖(例如,具有準(zhǔn)確的格式化和布局),隨后web瀏覽器能夠再通過單獨(dú)處理文檔的內(nèi)容來提供。
[0023]例如,客戶端設(shè)備110可以是桌面型計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話、智能電話、平板計(jì)算機(jī)、音樂播放器、電子書閱讀器、導(dǎo)航系統(tǒng)或其它設(shè)備。由計(jì)算系統(tǒng)120、130中的每一個(gè)所執(zhí)行的功能能夠由獨(dú)立的計(jì)算機(jī)系統(tǒng)來執(zhí)行或者能夠跨多個(gè)計(jì)算機(jī)系統(tǒng)分布。網(wǎng)絡(luò)118可以是有線的或無線的或兩者的組合,并且可以包括私人網(wǎng)絡(luò)和/或公用網(wǎng)絡(luò),諸如互聯(lián)網(wǎng)。
[0024]許多網(wǎng)頁和其它文檔包括跨多個(gè)文件散布的內(nèi)容。文檔的URL可以對(duì)應(yīng)于第一文件,諸如HTML文件。HTML文件可以引用必須被下載以完成文檔的一個(gè)或多個(gè)嵌入式組件。例如,嵌入式組件的示例包括字體、腳本文件、CSS文件、圖像、web應(yīng)用、媒體文件以及其它HTML文件。
[0025]如本文中所使用的,“文檔”或“網(wǎng)頁”通常是指一起組成整個(gè)文檔的資源的集合,并且不限于諸如HTML文件的單個(gè)文件。例如,與URL “www.example.com”對(duì)應(yīng)的網(wǎng)頁可以包括HTML文件 “www.example.com/index.html” 以及諸如CSS文件 “www.example.com/main.css”、圖像文件 “www.example.com/image.jpg”、字體文件 “www.example.com/font, woff”的組件,以及在文檔的HTML文件或其它組件中所引用的其它資源。網(wǎng)頁的嵌入式組件在常常作為單獨(dú)的文件從單獨(dú)的URL中被檢索時(shí),通常是完全地渲染或者顯示網(wǎng)頁所需要的,并且由web瀏覽器自動(dòng)地檢索和處理作為加載網(wǎng)頁的過程的一部分。
[0026]當(dāng)web瀏覽器加載網(wǎng)頁時(shí),web瀏覽器逐漸發(fā)現(xiàn)渲染該網(wǎng)頁所需的資源。例如,當(dāng)web瀏覽器處理HTML文件時(shí),web瀏覽器可以確定還需要某些CSS文件、字體文件和其它資源來渲染網(wǎng)頁。web瀏覽器識(shí)別并檢索這些附加資源,而所述附加資源可以指向用于web瀏覽器檢索以便完成頁面的更多的資源。
[0027]例如,網(wǎng)頁可以包括引用第一 CSS文件的HTML文件,所述第一 CSS文件引用第二 CSS文件,所述第二 CSS文件引用第三CSS文件。通常,web瀏覽器確定僅在網(wǎng)頁的HTML文件被接收和處理之后才需要第一CSS文件。然后,當(dāng)web瀏覽器檢索并處理第一CSS文件時(shí)存在延遲。根據(jù)第一CSS文件的內(nèi)容,web瀏覽器確定第二CSS文件是需要的,并且當(dāng)web瀏覽器檢索并處理第二CSS文件時(shí)存在另一延遲。根據(jù)第二CSS文件的內(nèi)容,web瀏覽器確定第三CSS文件是需要的,并且當(dāng)web瀏覽器檢索并處理第三CSS文件時(shí)存在第三延遲。這個(gè)加載過程牽涉順序地加載并處理四個(gè)不同的文件,并且每當(dāng)另一文件被處理時(shí),網(wǎng)頁的回流可以改變?yōu)榱孙@示給用戶而提供的布局。
[0028]為了避免與順序的資源發(fā)現(xiàn)和加載相關(guān)聯(lián)的延遲,可以在渲染過程中的早期將渲染網(wǎng)頁所需的信息中的一些作為元數(shù)據(jù)來提供。例如,當(dāng)web瀏覽器請(qǐng)求網(wǎng)頁的HTML文件時(shí),web瀏覽器還能夠從幫助加速頁面加載的元數(shù)據(jù)服務(wù)請(qǐng)求網(wǎng)頁的元數(shù)據(jù)。即使在web瀏覽器確定CSS文件是需要的之前,元數(shù)據(jù)服務(wù)也能夠提供多個(gè)CSS文件的內(nèi)容。結(jié)果,當(dāng)web瀏覽器處理HTML文件時(shí),web瀏覽器能夠利用元數(shù)據(jù)中的信息來在提供給用戶的網(wǎng)頁的初始視圖情況下提供準(zhǔn)確的布局和格式化。
[0029]在一些實(shí)現(xiàn)中,設(shè)備從第一源請(qǐng)求文檔的資源。設(shè)備從與第一源不同的第二源請(qǐng)求文檔的元數(shù)據(jù)。設(shè)備從第二源接收所請(qǐng)求的文檔的元數(shù)據(jù),并且從第一源接收所請(qǐng)求的文檔的資源。設(shè)備提供基于對(duì)從第二源所接收到的元數(shù)據(jù)的文檔的第一表示以用于顯示。在提供文檔的第一表示之后,設(shè)備生成文檔的將第一表示的部分與文檔的附加部分組合的第二表示,并且提供第二表示以用于顯示。
[0030]在圖1的示例中,在階段(A)中,用戶使用客戶端設(shè)備110的web瀏覽器來導(dǎo)航到網(wǎng)頁。例如,用戶可以錄入網(wǎng)頁的URL或者與到網(wǎng)頁的鏈接交互。
[0031]在階段(B)中,客戶端設(shè)備110的web瀏覽器發(fā)送對(duì)網(wǎng)頁的內(nèi)容(例如,文檔的實(shí)際資源中的一個(gè)或多個(gè))的請(qǐng)求112?!?瀏覽器將請(qǐng)求112發(fā)送到計(jì)算系統(tǒng)120,所述計(jì)算系統(tǒng)120是托管網(wǎng)頁的服務(wù)器。計(jì)算系統(tǒng)120可以由創(chuàng)建或者分發(fā)網(wǎng)頁的內(nèi)容提供者來操作,或者由內(nèi)容遞送網(wǎng)絡(luò)或代表內(nèi)容提供者提供網(wǎng)頁的其它實(shí)體來操作。例如,請(qǐng)求112可以是用于檢索與網(wǎng)頁的URL對(duì)應(yīng)的資源(例如,網(wǎng)頁的主HTML文件)的HTTP “get”請(qǐng)求。
[0032]在階段(C)中,客戶端設(shè)備110的web瀏覽器發(fā)送對(duì)用于加速網(wǎng)頁的加載的數(shù)據(jù)的請(qǐng)求。請(qǐng)求114與請(qǐng)求112分開并且可以被發(fā)送到與提供網(wǎng)頁的服務(wù)器、域或系統(tǒng)不同的服務(wù)器、域或系統(tǒng)。例如,web瀏覽器能夠從由計(jì)算系統(tǒng)130所提供的元數(shù)據(jù)服務(wù)請(qǐng)求元數(shù)據(jù),所述元數(shù)據(jù)服務(wù)可以由獨(dú)立于內(nèi)容提供者和計(jì)算機(jī)系統(tǒng)120的第三方來提供。請(qǐng)求114識(shí)別客戶端設(shè)備110正在加載的網(wǎng)頁,這允許元數(shù)據(jù)服務(wù)提供特定于正被加載的網(wǎng)頁的元數(shù)據(jù)。例如,請(qǐng)求114可以指示網(wǎng)頁的URL。
[0033]web瀏覽器能夠在接收網(wǎng)頁的HTML文件或任何其它資源之前發(fā)送對(duì)元數(shù)據(jù)的請(qǐng)求114。元數(shù)據(jù)服務(wù)能夠單獨(dú)(例如,在沒有HTML文件內(nèi)或者在網(wǎng)頁的其它組件內(nèi)所引用的特定資源的識(shí)別的情況下)基于網(wǎng)頁的識(shí)別來提供元數(shù)據(jù)。結(jié)果,能夠在大致相同的時(shí)間并行發(fā)出請(qǐng)求112、114。在一些實(shí)現(xiàn)中,web瀏覽器被配置成每當(dāng)新文檔被加載時(shí)便發(fā)送對(duì)元數(shù)據(jù)的請(qǐng)求以自動(dòng)地增強(qiáng)加載過程。例如,每當(dāng)新文檔被加載時(shí),web瀏覽器可以向在已知位置處的元數(shù)據(jù)服務(wù)(例如,“WWW.example.com/metadata_service”)發(fā)送請(qǐng)求,并且請(qǐng)求頁面的元數(shù)據(jù)。
[0034]計(jì)算系統(tǒng)130—旦接收了請(qǐng)求114,確定元數(shù)據(jù)是否可用于請(qǐng)求114中所識(shí)別的網(wǎng)頁。計(jì)算系統(tǒng)130能夠具有對(duì)數(shù)據(jù)存儲(chǔ)135的訪問,所述數(shù)據(jù)存儲(chǔ)135包括許多不同的網(wǎng)頁中的每一個(gè)的元數(shù)據(jù)。如關(guān)于圖6和圖7所進(jìn)一步討論的,能夠基于對(duì)網(wǎng)頁的渲染的分析提前選擇網(wǎng)頁的元數(shù)據(jù)。每個(gè)經(jīng)分析頁面的所選擇的元數(shù)據(jù)能夠被存儲(chǔ)并稍后被提供給設(shè)備以加速加載。計(jì)算系統(tǒng)130能夠在所存儲(chǔ)的數(shù)據(jù)中查找網(wǎng)頁的URL并且提供已被指定用于加速網(wǎng)頁的加載的任何元數(shù)據(jù)。
[0035]在階段(D)中,客戶端設(shè)備110從計(jì)算系統(tǒng)130接收網(wǎng)頁的元數(shù)據(jù)132。所接收到的用于加速網(wǎng)頁的加載的數(shù)據(jù)通常被稱為元數(shù)據(jù),因?yàn)樗邮盏降臄?shù)據(jù)能夠包括關(guān)于應(yīng)該用來顯示網(wǎng)頁的方式的信息,諸如網(wǎng)頁的元素的大小、位置和樣式。如在下面進(jìn)一步討論的,元數(shù)據(jù)132能夠包括來自網(wǎng)頁的資源的數(shù)據(jù)的副本。元數(shù)據(jù)132可以附加地或替選地包括通過對(duì)網(wǎng)頁進(jìn)行分析而生成的其它數(shù)據(jù)。
[0036]在階段(E)中,客戶端設(shè)備110從計(jì)算系統(tǒng)120接收網(wǎng)頁的一個(gè)或多個(gè)資源,諸如HTML文件122。因?yàn)檎?qǐng)求112、114是在大致相同的時(shí)間發(fā)出的,所以在大致相同的時(shí)間接收到元數(shù)據(jù)132和HTML文件122。當(dāng)web瀏覽器處理HTML文件122時(shí),關(guān)于網(wǎng)頁的布局的信息以及來自嵌入式組件的信息已經(jīng)存在于元數(shù)據(jù)132中。以這種方式,來自嵌入式組件(例如,CSS文件、腳本文件、字體等)的信息甚至在web瀏覽器發(fā)現(xiàn)對(duì)那些組件的引用并且確定該信息是需要的之前也能夠存在于客戶端設(shè)備110處。
[0037]所接收到的元數(shù)據(jù)132可以包括能夠加速將網(wǎng)頁呈現(xiàn)給用戶102的各種類型的信息中的任意。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132指示網(wǎng)頁的布局或格式化。元數(shù)據(jù)132可以包括與網(wǎng)頁的先前渲染有關(guān)的信息。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132包括與網(wǎng)頁的DOM樹中的節(jié)點(diǎn)以及與這些節(jié)點(diǎn)對(duì)應(yīng)的樣式有關(guān)的信息。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132描述網(wǎng)頁的文檔設(shè)計(jì)或頁面結(jié)構(gòu)的特性。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132包括來自網(wǎng)頁的不可顯示內(nèi)容,并且排除網(wǎng)頁的可顯示內(nèi)容。例如,在一些實(shí)現(xiàn)中,元數(shù)據(jù)132可以包括來自除為了顯示給用戶而指定的圖像和文本以外的網(wǎng)頁的資源的任何數(shù)據(jù)。
[0038]在一些實(shí)現(xiàn)中,元數(shù)據(jù)132包括來自網(wǎng)頁的嵌入式組件(例如,一個(gè)或多個(gè)組件中的一部分或全部)的數(shù)據(jù)。例如,如在下面進(jìn)一步討論的,元數(shù)據(jù)132可以包括網(wǎng)頁的一個(gè)或多個(gè)CSS文件或所述CSS文件的特定部分中的數(shù)據(jù)的副本。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132指示要下載的組件的列表,而無需包括來自那些組件的數(shù)據(jù)。例如,元數(shù)據(jù)可以識(shí)別渲染網(wǎng)頁所需的CSS資源,以加速所需組件的識(shí)別和檢索。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132包括來自網(wǎng)頁的一些組件的數(shù)據(jù),并且僅識(shí)別其它組件。
[0039]元數(shù)據(jù)132中的一些可以指示網(wǎng)頁的完整渲染的布局或格式化。例如,元數(shù)據(jù)132可以指示在網(wǎng)頁的視圖中所顯示的圖像和其它元素的位置和大小。元數(shù)據(jù)132可以指示由另一設(shè)備(例如,除客戶端設(shè)備110以外的設(shè)備)根據(jù)網(wǎng)頁的先前完全渲染所確定的元素的最終大小和位置。例如,所指示的大小和位置可以是當(dāng)元素在網(wǎng)頁中的Javascript代碼或其它腳本已被執(zhí)行之后出現(xiàn)時(shí)該元素的大小和位置。結(jié)果,已經(jīng)在元數(shù)據(jù)132中反映了調(diào)整網(wǎng)頁的布局的腳本的效果。
[0040]在常規(guī)的加載過程中,當(dāng)web瀏覽器首先生成網(wǎng)頁的布局時(shí),web瀏覽器通常不知道頁面的最終布局。例如,web瀏覽器也許不能夠準(zhǔn)確地確定網(wǎng)頁中的圖像的最終大小。瀏覽器可以首先估計(jì)圖像的大小,但是可能必須隨著附加資源被發(fā)現(xiàn)和處理而改變圖像的大小或位置。然而,通過在元數(shù)據(jù)132中提供圖像和其它元素的最終大小,web瀏覽器的初始渲染能夠隨著它出現(xiàn)在最終渲染中而準(zhǔn)確地放置并調(diào)整圖像的大小,并且能夠避免回流。
[0041]元數(shù)據(jù)132可以包括嵌入在網(wǎng)頁中的腳本文件或腳本的部分。此外,或者作為替選,元數(shù)據(jù)可以包括與腳本對(duì)頁面的布局的影響有關(guān)的信息,使得能夠在實(shí)際下載并執(zhí)行腳本之前就包括布局的適當(dāng)特征。
[0042]元數(shù)據(jù)132可以包括來自嵌入在網(wǎng)頁中的CSS文件的樣式數(shù)據(jù)。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132包括由網(wǎng)頁引用的CSS文件中的數(shù)據(jù)的整個(gè)集合??梢越M合或者內(nèi)聯(lián)多個(gè)CSS文件以改進(jìn)效率。在一些實(shí)現(xiàn)中,元數(shù)據(jù)132僅包括文檔中所選擇的CSS文件的部分,并且省略不是渲染網(wǎng)頁實(shí)際上所需的CSS文件的部分。例如,由網(wǎng)頁所引用的各種CSS文件可以總數(shù)達(dá)50千字節(jié)的數(shù)據(jù)。可能實(shí)際上需要僅20千字節(jié)的數(shù)據(jù)來完全地渲染網(wǎng)頁。例如,如果在網(wǎng)頁中不存在特定類型的元素,則可以省略與該特定類型的元素有關(guān)的樣式信息。元數(shù)據(jù)132可以包括CSS數(shù)據(jù)的適當(dāng)子集(諸如僅所需的20千字節(jié))以限制所傳送的數(shù)據(jù)的量。
[0043 ]元數(shù)據(jù)132可以包括在網(wǎng)頁中所使用的定制字體。元數(shù)據(jù)132可以包括被使用的字體文件的列表以及那些字體的URL,而不是包括字體,以允許web瀏覽器在web瀏覽器將通常確定字體是需要的之前檢索字體。
[0044]在一些實(shí)現(xiàn)中,元數(shù)據(jù)132指示網(wǎng)頁的“折疊線”的位置。折疊線的位置能夠表示針對(duì)給定屏幕大小的頁面的可見部分。通常,折疊線是指在其中顯示資源的顯示區(qū)域的邊緣或邊界,諸如用于網(wǎng)頁的顯示區(qū)域的底部邊緣。當(dāng)在web瀏覽器中顯示文檔時(shí),該文檔通常延伸超過web瀏覽器的初始查看區(qū)域,并且用戶通常必須在文檔內(nèi)滾動(dòng)或者以其它方式導(dǎo)航,以展現(xiàn)在顯示區(qū)域中最初未呈現(xiàn)的內(nèi)容。文檔的最初可在用戶的顯示器上的瀏覽器內(nèi)查看的部分被稱為文檔的折疊線上方區(qū)域。例如,在用戶滾動(dòng)以展現(xiàn)附加內(nèi)容之前,折疊線上方區(qū)域可以是在資源被渲染和顯示之后在顯示區(qū)域中所示出的文檔的部分。通常可以通過在瀏覽器內(nèi)向下滾動(dòng)來展現(xiàn)的資源的剩余部分被稱為文檔的折疊線下方區(qū)域。
[0045]在一些實(shí)現(xiàn)中,元數(shù)據(jù)132指示哪些圖像對(duì)于給定屏幕大小來說是可見的。元數(shù)據(jù)132可以指示在屏幕或顯示區(qū)域的不同大小下可見的圖像的多個(gè)不同的集合。web瀏覽器可以使用與網(wǎng)頁的折疊線以及可見圖像有關(guān)的信息來對(duì)網(wǎng)頁的部分的處理進(jìn)行優(yōu)先級(jí)排序。例如,可以在將不變得可見直到用戶通過滾動(dòng)來展現(xiàn)它們?yōu)橹沟木W(wǎng)頁的其它部分之前,處理在折疊線上方區(qū)域中可見的網(wǎng)頁的部分。
[0046]元數(shù)據(jù)132可以排除網(wǎng)頁的可查看內(nèi)容。例如,網(wǎng)頁中的文本、圖像以及其它可見元素從元數(shù)據(jù)132中被排除,并且不由計(jì)算系統(tǒng)130提供。例如,在不包括要向用戶示出的實(shí)際文本的情況下,元數(shù)據(jù)132可以指示文本的字體和樣式以及在其中將顯示文本的區(qū)域的位置和大小。類似地,元數(shù)據(jù)132能夠指示圖像在頁面的布局中的大小和位置,并且不包括圖像本身。
[0047]在一些實(shí)現(xiàn)中,元數(shù)據(jù)132可以包括網(wǎng)頁的可查看內(nèi)容。例如,元數(shù)據(jù)132可以包括來自網(wǎng)頁的圖像。元數(shù)據(jù)132可以包括文檔的實(shí)際圖像,或者可以包括用于在文檔的早期視圖中使用的較低分辨率的圖像或壓縮圖像。在一些實(shí)例中,提供將在文檔中可見的圖像中的不到全部。例如,所提供的圖像的子集可以包括位于文檔的中心區(qū)域處的圖像和/或至少最小大小的圖像,并且可以排除文檔的其它圖像。在一些實(shí)現(xiàn)中,元數(shù)據(jù)包括用于顯示在文檔的折疊線上方區(qū)域中(例如,在由用戶滾動(dòng)之前可見的文檔的頂部部分或初始視圖中)的圖像,并且排除用于在文檔的折疊線下方區(qū)域(例如,通過滾動(dòng)展現(xiàn)的部分)中顯示的圖像??梢允褂糜糜谶x擇要在元數(shù)據(jù)中提供的圖像的其它標(biāo)準(zhǔn)。在一些實(shí)現(xiàn)中,可以提供網(wǎng)頁的任何部分來加速對(duì)頁面的加載。
[0048]在階段(F)中,客戶端設(shè)備110的web瀏覽器使用元數(shù)據(jù)132來提供網(wǎng)頁的視圖,如用戶界面150中所示。web瀏覽器被配置為使得web瀏覽器的布局引擎根據(jù)元數(shù)據(jù)132中的信息來創(chuàng)建頁面的視圖。元數(shù)據(jù)132能夠允許web瀏覽器比通過單獨(dú)分析網(wǎng)頁更迅速地提供網(wǎng)頁的視圖。此外,網(wǎng)頁的初始視圖能夠包括比將在沒有元數(shù)據(jù)的情況下最初提供的布局更準(zhǔn)確的布局。
[0049]web瀏覽器提供的視圖能夠包括像在元數(shù)據(jù)132中所指示的那樣格式化或者布置的網(wǎng)頁的內(nèi)容的一部分。例如,網(wǎng)頁的HTML文件可以包括用于顯示給用戶102的文本,并且該文本可以用由元數(shù)據(jù)132中的CSS所定義的樣式被示出。結(jié)果,初始視圖可能比單獨(dú)基于HTML文件的視圖更準(zhǔn)確,并且能夠在比用于對(duì)網(wǎng)頁中所引用的CSS資源進(jìn)行發(fā)現(xiàn)和檢索所需要的時(shí)間少的時(shí)間內(nèi)提供視圖。還可以使用包括在元數(shù)據(jù)132中的字體數(shù)據(jù)來顯示文本。類似地,可以以由元數(shù)據(jù)132所指示的大小和位置來顯示網(wǎng)頁的圖像和其它元素。
[0050]在一些實(shí)現(xiàn)中,web瀏覽器可以在處理之前或者在接收網(wǎng)頁的HTML文件或其它內(nèi)容之前提供基于元數(shù)據(jù)132的網(wǎng)頁的視圖。例如,如果比網(wǎng)頁的HTML文件更早地接收到元數(shù)據(jù)132,則web瀏覽器可以完全基于元數(shù)據(jù)132的生成初始視圖。例如,初始視圖可以包括根據(jù)元數(shù)據(jù)中的CSS信息和/或布局信息被格式化的來自元數(shù)據(jù)132的圖像以及來自元數(shù)據(jù)132的網(wǎng)頁的標(biāo)題或其它部分。
[0051]如果圖像或其它元素的內(nèi)容在web瀏覽器提供網(wǎng)頁的初始視圖時(shí)不可用,則web瀏覽器可以插入占位符或者以其它方式保留元素將占據(jù)的空間。在已經(jīng)檢索到元素之后,可以將web瀏覽器插入到已被保留的所指定的空間中。因?yàn)樵氐淖罱K大小和位置在初始布局被生成時(shí)是已知的,所以能夠以正確的大小和位置將元素插入到網(wǎng)頁中,而不用置換網(wǎng)頁的內(nèi)容。
[0052]在一些實(shí)現(xiàn)中,元數(shù)據(jù)132指示web瀏覽器推遲調(diào)用Javascript或其它腳本,直到在使用元數(shù)據(jù)132中的信息來呈現(xiàn)網(wǎng)頁的初始視圖之后為止。結(jié)果,能夠無延遲地提供網(wǎng)頁的視圖用于處理Javascript或其它腳本。
[0053]通常,Javascript內(nèi)容不使更多的可見內(nèi)容被添加到網(wǎng)頁的視圖。在許多實(shí)例中,能夠在不用處理Javascr ipt內(nèi)容的情況下示出網(wǎng)頁的大部分。然而,在其它實(shí)例中,Javascript或其它可調(diào)用的內(nèi)容可能影響顯示給用戶的內(nèi)容。例如,Javascript代碼可以調(diào)整網(wǎng)頁中所顯示的元素的位置或大小。作為另一示例,當(dāng)Javascript代碼被瀏覽器中斷時(shí),所述Javascript代碼可以將元素插入到web瀏覽器為網(wǎng)頁構(gòu)建的文檔對(duì)象模型(DOM)中。元素的插入可以使其它元素(諸如位于DOM樹中的已插入元素下方的元素)改變網(wǎng)頁的布局中的位置。
[0054]當(dāng)web瀏覽器推遲對(duì)Javascript內(nèi)容的處理時(shí),web瀏覽器仍然能夠使用元數(shù)據(jù)132來以準(zhǔn)確的大小和位置對(duì)元素進(jìn)行布局。元數(shù)據(jù)132能夠指示在所有腳本和元素已被發(fā)現(xiàn)和處理之后網(wǎng)頁的最終布局的特性。通過使用已經(jīng)考慮到由Javascript或其它可調(diào)用內(nèi)容所引起的任何改變的元數(shù)據(jù)132中所指示的布局特性,web瀏覽器可以在Javascript內(nèi)容被處理之前生成準(zhǔn)確的布局。結(jié)果,即便當(dāng)影響頁面布局的Javascript內(nèi)容尚未被處理時(shí),web瀏覽器也能夠提供具有準(zhǔn)確布局的視圖。
[0055]在用戶界面150被顯示的同時(shí),web瀏覽器繼續(xù)用于加載網(wǎng)頁的資源發(fā)現(xiàn)過程。網(wǎng)頁的每個(gè)組件以資源在元數(shù)據(jù)132不可用的情況下將被正常地處理的相同方式被識(shí)別、被檢索并進(jìn)而被處理??梢酝ㄟ^計(jì)算系統(tǒng)120或其它系統(tǒng)、通過網(wǎng)頁內(nèi)所指定的相同URL請(qǐng)求和接收這些組件。隨著新資源被發(fā)現(xiàn)和檢索到,web瀏覽器使新近檢索到的內(nèi)容與網(wǎng)頁的初始視圖混合。在用戶界面150中,顯示區(qū)域151a、152b被設(shè)置在可能尚未接收到可顯示內(nèi)容的元素旁邊。在用戶界面150被首先顯示時(shí),web瀏覽器可能尚未發(fā)現(xiàn)資源,或者可能正在等待資源的傳送完成。因?yàn)榫W(wǎng)頁的元數(shù)據(jù)132指示這些元素的大小和位置,所以在布局中保留空間,使得可以在不用更改網(wǎng)頁的布局的情況下稍后插入所述元素。
[0056]在一些實(shí)現(xiàn)中,被包括在元數(shù)據(jù)132中的資源(例如,數(shù)據(jù)已經(jīng)存在于客戶端設(shè)備110處的資源)也在接收到元數(shù)據(jù)132之后在資源發(fā)現(xiàn)過程期間被單獨(dú)地下載到客戶端設(shè)備110。例如,即使元數(shù)據(jù)132包括網(wǎng)頁的CSS文件中的數(shù)據(jù),web瀏覽器也可以繼續(xù)發(fā)現(xiàn)、檢索并處理由內(nèi)容發(fā)布者所提供的原始CSS文件。通過處理如從發(fā)布者直接接收到的原始資源,web瀏覽器可以驗(yàn)證已被生成的布局的正確性。網(wǎng)頁的原始資源與元數(shù)據(jù)132之間的差異被解析有利于原始資源。例如,如果CSS文件指示網(wǎng)頁的布局的一個(gè)方面與元數(shù)據(jù)132中所指示的不同,則web瀏覽器更新視圖以反映CSS文件中有什么。網(wǎng)頁的元數(shù)據(jù)通常改變的不頻繁。然而,網(wǎng)頁的實(shí)際資源將是最當(dāng)前的,并且在一些實(shí)例中,元數(shù)據(jù)132可能不包括對(duì)元數(shù)據(jù)的最近改變。完成能夠驗(yàn)證正確性的資源發(fā)現(xiàn)過程能夠確保對(duì)網(wǎng)頁的任何最近改變被最終被合并在呈現(xiàn)給用戶102的視圖中。
[0057]在一些實(shí)現(xiàn)中,在資源發(fā)現(xiàn)過程期間不單獨(dú)下載被包括在元數(shù)據(jù)132中的文檔的部分。例如,當(dāng)元數(shù)據(jù)132包括網(wǎng)頁的資源或這些資源的部分時(shí),web瀏覽器可以使用元數(shù)據(jù)132中的信息,而不用從托管網(wǎng)頁的服務(wù)器附加地下載資源。例如,web瀏覽器可以確定元數(shù)據(jù)132包括顯示網(wǎng)頁所需的CSS文件的部分,并且結(jié)果,可以確定不從HTML文件中所指示的URL下載CSS文件。元數(shù)據(jù)132可以指示哪些資源或部分或資源被包括在元數(shù)據(jù)132中,以允許web瀏覽器確定哪些資源可能不需要被單獨(dú)地下載。
[0058]當(dāng)客戶端設(shè)備110接收到并處理網(wǎng)頁的附加資源時(shí),客戶端設(shè)備100可以提供對(duì)網(wǎng)頁的視圖的更新。網(wǎng)頁的布局引擎可以在資源發(fā)現(xiàn)過程正在進(jìn)行的同時(shí)對(duì)視圖做出多個(gè)增量更新。這些更新將網(wǎng)頁的附加內(nèi)容與用戶界面150中的視圖進(jìn)行組合。每個(gè)更新能夠提供網(wǎng)頁的更完整視圖。可以添加新內(nèi)容,并且一些元素(諸如用戶界面150中的占位符)可以被網(wǎng)頁的實(shí)際內(nèi)容所代替。通過這系列的更新,用戶102能夠體驗(yàn)從用戶界面150中的網(wǎng)頁的初始或初步視圖到網(wǎng)頁的完整最終視圖的無縫轉(zhuǎn)變。元數(shù)據(jù)132的使用允許web瀏覽器為初始視圖的網(wǎng)頁生成正確的最終布局。結(jié)果,使附加內(nèi)容合并或者混合牽涉將內(nèi)容放置在初始布局中,并且可以在沒有頁面的布局的回流或更改的情況下完成頁面加載過程。
[0059]在階段(G)中,客戶端設(shè)備110的web瀏覽器在發(fā)現(xiàn)并處理網(wǎng)頁的組件中的所有之后,提供作為網(wǎng)頁的最終完成視圖的用戶界面160。在提供用戶界面150時(shí)不可用的元素已被插入到視圖中。例如,為尚不可用的元素而保留的顯示區(qū)域151a、152a已被頁面的實(shí)際內(nèi)容151b、152b(例如,可顯示文本、圖像或其它內(nèi)容)所代替。文檔中的Javascript以及其它腳本或指令也已被調(diào)用。在網(wǎng)頁的初始視圖中,一些用戶交互處理程序(諸如點(diǎn)擊處理例程)在Javascript或其它代碼的調(diào)用被推遲時(shí)可能沒有被激活。然而,隨著資源發(fā)現(xiàn)過程繼續(xù)進(jìn)行,處理Javascript并且添加網(wǎng)頁的交互處理程序和其它功能方面。
[0060]—般而言,使用元數(shù)據(jù)132來加速網(wǎng)頁的加載不要求對(duì)組成網(wǎng)頁的實(shí)際資源作出任何變更。與文檔重寫的文檔壓縮不同,圖1的示例牽涉網(wǎng)頁的原始未修改內(nèi)容整體地到客戶端設(shè)備110的傳輸。元數(shù)據(jù)132是作為除由內(nèi)容發(fā)布者提供的網(wǎng)頁的未更改內(nèi)容之外的補(bǔ)充信息來提供的??梢詢H依靠元數(shù)據(jù)132來提供網(wǎng)頁的早期視圖,直到web瀏覽器有時(shí)間檢索并處理網(wǎng)頁(包括由網(wǎng)頁的源服務(wù)器所提供的原始元數(shù)據(jù))為止。當(dāng)發(fā)現(xiàn)過程完成時(shí),提供給用戶的網(wǎng)頁的視圖可以完全基于由內(nèi)容發(fā)布者提供的網(wǎng)頁的原始資源。
[0061]此外,在圖1的示例中,網(wǎng)頁的原始內(nèi)容是從網(wǎng)頁的源服務(wù)器(計(jì)算系統(tǒng)120)接收的,并且數(shù)據(jù)的流動(dòng)不通過諸如代理服務(wù)器的第三方系統(tǒng)或內(nèi)容遞送網(wǎng)絡(luò)被再路由或者傳遞。網(wǎng)頁的數(shù)據(jù)在客戶端設(shè)備110與源服務(wù)器之間的流動(dòng)保持完整的,并且獨(dú)立于網(wǎng)頁的原始內(nèi)容的傳送通過單獨(dú)的通道來提供元數(shù)據(jù)132。結(jié)果,可以通過安全連接(例如,使用超文本傳送協(xié)議安全(HTTPS)連接)將網(wǎng)頁從內(nèi)容發(fā)布者傳送到客戶端設(shè)備110,并且仍然受益于使用這些技術(shù)的更快加載。
[0062]用于加速文檔加載的元數(shù)據(jù)能夠由第三方生成和提供,而無需包括文檔中的任何定制特征或?qū)ξ臋n的任何修改。不需要修改或者適應(yīng)于網(wǎng)頁來利用圖1的技術(shù)。結(jié)果,能夠通過將第三方服務(wù)配置成提供元數(shù)據(jù)來容易地完成啟用加速,而不對(duì)內(nèi)容發(fā)布者強(qiáng)加任何限制。如關(guān)于圖8進(jìn)一步討論的,為了許可特定網(wǎng)頁被更快地加載,計(jì)算系統(tǒng)可以檢索所述網(wǎng)頁,分析該頁面并生成適當(dāng)?shù)脑獢?shù)據(jù),并且將該元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)135中,使得能夠?qū)⒃撛獢?shù)據(jù)提供給其它設(shè)備。
[0063]圖2A至圖2C是圖示在加載文檔的同時(shí)所示出的用戶界面200、210、220的示例的圖。該示例圖示了在web瀏覽器在沒有利用任何元數(shù)據(jù)的情況下通過網(wǎng)絡(luò)加載文檔以加速頁面加載的同時(shí)提供給用戶的文檔的視圖。結(jié)果,web瀏覽器排他地依靠典型的資源發(fā)現(xiàn)過程。
[0064]在圖2A中,web瀏覽器提供用戶界面200作為文檔的初始視圖。例如,文檔的內(nèi)容的一部分被示出為包括文檔的HTML文件中的文本202。然而,web瀏覽器尚未發(fā)現(xiàn)并處理文檔的CSS資源中的所有,并且所以不是根據(jù)為該文本而定義的樣式來格式化文本的。web瀏覽器已識(shí)別仍然必須被檢索并添加到視圖的網(wǎng)頁的元素,如由占位符204所示。迄今為止接收到并處理的文檔的內(nèi)容不指示這些元素應(yīng)該被顯示在文檔中的大小和位置。web瀏覽器通過在有限信息可用的情況下估計(jì)元素的大小和位置來生成布局。
[0065]在圖2B中,web瀏覽器在發(fā)現(xiàn)并處理文檔的附加組件之后提供用戶界面210。用戶界面210是文檔的更完整視圖,但是仍然包括文檔的僅一部分。標(biāo)題元素212、側(cè)邊欄214和頁腳216已被添加。這些添加要求頁面的回流,例如,元素在頁面中的再定位以適應(yīng)布局中的改變。在其中顯示文本202的區(qū)域已在大小和形狀上改變了并且已在文檔內(nèi)移動(dòng)了。布局的改變可以令用戶感到不安,因?yàn)橛脩糸喿x用戶界面200中的文本202在界面改變時(shí)將很可能忘記上次讀到的地方。
[0066]在圖2C中,web瀏覽器在完成資源發(fā)現(xiàn)過程之后提供用戶界面220作為文檔的最終視圖。隨著先前所顯示的元素已被移動(dòng)并重定大小,對(duì)布局的改變和腳本的處理已再次引起頁面的回流。用于文本202的顯示區(qū)域也已再次改變。此外,在處理文檔的CSS內(nèi)容之后,文本202的文本樣式(例如,字體大小、顏色、著重、字體和/或其它格式化)已改變。在加載期間對(duì)文檔的布局和格式化的改變可能似乎是突然的或分散注意力的,并且對(duì)元素的重新布置可以限制文檔對(duì)用戶的有用性,直到文檔的最終完整視圖(例如,用戶界面220)被提供為止。
[0067]圖3A至圖3C是圖示在加載文檔的同時(shí)示出的用戶界面300、310、320的示例的圖。該示例圖示圖2A至圖2C中所示出但是當(dāng)web瀏覽器使用被提供來加速頁面加載的元數(shù)據(jù)來加載文檔時(shí)的相同文檔的視圖。
[0068]在圖3A中,web瀏覽器提供用戶界面300作為文檔的初始視圖。web瀏覽器已從文檔的源服務(wù)器接收到文檔的內(nèi)容中的至少一些(例如,HTML文件)^eb瀏覽器也已經(jīng)單獨(dú)地接收到由另一源(例如,從第三方)提供的文檔的元數(shù)據(jù)。文檔內(nèi)容的布局和格式化是基于與正在進(jìn)行以從源服務(wù)器中檢索文檔并處理它的資源發(fā)現(xiàn)過程分別提供的元數(shù)據(jù)來確定的。元數(shù)據(jù)能夠包括從文檔中提取的數(shù)據(jù),諸如CSS文件或渲染文檔所需的CSS文件的部分。此夕卜,或者作為替選,元數(shù)據(jù)能夠包括根據(jù)對(duì)文檔的在先渲染的分析而確定的與頁面的最終布局有關(guān)的?目息。
[0069]元數(shù)據(jù)中的布局和格式化信息被用來安置并格式化文檔的內(nèi)容,諸如HTML文件指示應(yīng)該被顯示給用戶的文本202。元數(shù)據(jù)指示文檔中的元素的大小和形狀。已經(jīng)被檢索到的元素(諸如文檔的HTML文件指示應(yīng)該被顯示的文本202)被放置在由元數(shù)據(jù)所指示的顯示區(qū)域中。元數(shù)據(jù)還指示即使在資源發(fā)現(xiàn)過程中元素尚未被發(fā)現(xiàn),其它元素也被放置在文檔的最終布局中。用于這些其它元素的空間在布局中被保留,由用虛線示出的顯示區(qū)域304來指示。在一些實(shí)現(xiàn)中,所保留的顯示區(qū)域304可以包括空白空間(例如,示出文檔的背景顏色或背景圖像)。在一些實(shí)現(xiàn)中,可以包括占位符元素以向用戶指示內(nèi)容將被加載在該區(qū)域中,或者指示要加載的內(nèi)容的類型。
[0070]在圖3B中,web瀏覽器在發(fā)現(xiàn)并處理文檔的附加資源之后提供用戶界面310 jeb瀏覽器已使所發(fā)現(xiàn)的附加內(nèi)容(諸如圖像文件和其它組件)與用戶界面300中的初始視圖混合。附加元素已被添加到文檔代替在布局中設(shè)置在那些元素旁邊的所保留的顯示區(qū)域304。即使web瀏覽器已發(fā)現(xiàn)并添加了新內(nèi)容,文檔的布局也尚未改變?;亓鞑粫?huì)出現(xiàn),并且文本202如在用戶界面300中一樣被顯示在文檔的相同區(qū)域中,并且具有相同的字體和樣式。正在讀取用戶界面300中的文本202的用戶將能夠在屏幕被更新以示出用戶界面310的同時(shí)不間斷地閱讀。在一些實(shí)現(xiàn)中,可以隨著將文檔的附加內(nèi)容與初始視圖或后續(xù)視圖混合而提供文檔的多個(gè)中間視圖。
[0071 ]在圖3C中,web瀏覽器在完成資源發(fā)現(xiàn)過程之后提供用戶界面320作為文檔的最終或完整視圖。所保留的顯示區(qū)域304的全部已充滿它們相應(yīng)的元素。先前視圖(例如,用戶界面300、310)中所顯示的元素如先前一樣以相同的大小和位置被示出。因?yàn)樵獢?shù)據(jù)允許web瀏覽器在頁面的初始視圖中生成準(zhǔn)確的布局,所以對(duì)頁面的更新不需要改變布局,并且避免了回流。盡管初始視圖不完整(例如,因?yàn)橐恍┛娠@示元素不存在),但是對(duì)補(bǔ)充元數(shù)據(jù)中的信息的使用允許被顯示的元素被正確地顯示。
[0072]用戶界面320還可以合并對(duì)文檔的各種不可見的改變。例如,可以推遲對(duì)Javascript的處理以允許按最小延遲提供用戶界面300、310。用戶交互處理程序或其它功能性在用戶界面300、310被提供時(shí)可能還不是是激活的。到用戶界面320被提供時(shí),文檔中的Javascript已被處理。結(jié)果,當(dāng)用戶界面320被提供時(shí)用戶交互處理程序或其它功能性可能在文檔中是激活的。即使Javascript內(nèi)容描述布局或格式化的各方面,在一些實(shí)現(xiàn)中也不需要對(duì)布局的改變,因?yàn)橛脕砩沙跏家晥D(例如,用戶界面300)的補(bǔ)充元數(shù)據(jù)已經(jīng)指示了 Javascript內(nèi)容的處理之后的最終布局的特性。
[0073]用戶界面320與用戶界面220相同,因?yàn)樵趦蓚€(gè)示例中文檔的相同內(nèi)容中的全部(例如,由內(nèi)容發(fā)布者提供的原始CSS文件、Javascript文件等)是從相同URL中檢索的并且由web瀏覽器處理。然而,在圖3A至圖3C中,元數(shù)據(jù)對(duì)于文檔的初始和中間視圖允許更準(zhǔn)確的布局和格式化,所以布局和格式化能夠在文檔的剩余部分被逐漸添加的同時(shí)保持一致。
[0074]圖4是圖示在加載文檔時(shí)的事件的時(shí)序的示例的圖。在該示例中,web瀏覽器在資源發(fā)現(xiàn)過程402期間檢索并處理文檔的各種資源。web瀏覽器還在加速過程404中檢索并處理附加元數(shù)據(jù),以迅速地提供具有準(zhǔn)確的布局的文檔的視圖。正被加載的文檔包括HTML文件以及在單獨(dú)的資源中也是渲染文檔所需的三個(gè)其它組件。例如,組件可以是CSS文件、Javascript文件、圖像文件和其它媒體文件、字體文件、HTML文件或其它類型的資源。HTML文件是指第一組件,該第一組件引用第二組件,該第二組件引用第三組件,使得三個(gè)組件被順序地發(fā)現(xiàn)。
[0075]在時(shí)間To,Web瀏覽器例如通過從文檔的URL發(fā)起對(duì)文檔的請(qǐng)求來做出對(duì)HTML文件的請(qǐng)求。在接收HTML文件之前,web瀏覽器向另一服務(wù)器(諸如第三方元數(shù)據(jù)服務(wù))做出對(duì)用于加速文檔的加載的請(qǐng)求??梢栽趯?duì)文檔的請(qǐng)求之前、在與對(duì)文檔的請(qǐng)求大致相同的時(shí)間或者在對(duì)文檔的請(qǐng)求之后做出對(duì)元數(shù)據(jù)的請(qǐng)求。HTML文件和元數(shù)據(jù)被并行傳送,并且可以在大致相同的時(shí)間被接收到。在一些實(shí)例中,例如,因?yàn)樵獢?shù)據(jù)可以包括比HTML文件少的數(shù)據(jù)所以元數(shù)據(jù)可以在HTML文件之前被接收到,并且可以由為高效傳送而優(yōu)化的服務(wù)器系統(tǒng)來提供。
[0076]web瀏覽器使用HTML文件和元數(shù)據(jù)來生成在時(shí)間!^提供的文檔的初始視圖。即使在不用通過使用元數(shù)據(jù)檢索并處理文檔的三個(gè)其它資源的情況下,web瀏覽器也能夠提供文檔的被示出的部分被以正確的布局和格式化顯示的視圖。元數(shù)據(jù)可以包括三個(gè)組件中的一個(gè)或多個(gè)的部分,從而允許web瀏覽器在實(shí)際資源在資源發(fā)現(xiàn)過程402中被檢索到之前使用來自組件的數(shù)據(jù)。元數(shù)據(jù)還可以指示元素的大小和位置以及與文檔有關(guān)的其它信息。
[0077]在初始視圖被提供之后,資源發(fā)現(xiàn)過程402繼續(xù)。web瀏覽器檢索并處理文檔的三個(gè)附加組件中的每一個(gè),并且分別在時(shí)間T3、TjPT5完成處理這些組件。在時(shí)間T3、T4和T5中的每一個(gè)處,web瀏覽器提供文檔的更新視圖,從而使附加內(nèi)容與先前所提供的在先布局和視圖混合。在不利用元數(shù)據(jù)的情況下,在資源發(fā)現(xiàn)過程402結(jié)束之后,文檔的布局直到時(shí)間T5為止才會(huì)結(jié)束。然而,通過使用加速過程404來迅速地檢索元數(shù)據(jù),例如,對(duì)于文檔的初始視圖,最終布局實(shí)際上更早地被生成。
[0078]圖5是圖示用于加速文檔加載的過程500的示例的流程圖。過程500可以由圖1的客戶端設(shè)備110或另一設(shè)備執(zhí)行。
[0079]設(shè)備從第一源請(qǐng)求文檔的資源(502)。例如,設(shè)備可以發(fā)送對(duì)在文檔的URL處的資源的HTTP GET請(qǐng)求(例如,“GET http://example.com/HTTP/1.1...”)。可以響應(yīng)于用戶導(dǎo)航到網(wǎng)頁(例如,通過與鏈接或其它用戶界面元素交互)而發(fā)送該請(qǐng)求。
[0080]在第二請(qǐng)求中,設(shè)備從與第一源不同的第二源請(qǐng)求文檔的元數(shù)據(jù)(504)。可以響應(yīng)于觸發(fā)了第一請(qǐng)求的相同交互而發(fā)送第二請(qǐng)求。設(shè)備在接收動(dòng)作(502)中所請(qǐng)求的資源之前發(fā)送第二請(qǐng)求,所以可以并行地或相繼地傳送元數(shù)據(jù)以及文檔的資源。例如,對(duì)元數(shù)據(jù)的請(qǐng)求通過指示正在動(dòng)作(502)中預(yù)取的URL來識(shí)別正被加載的文檔。
[0081]在一些實(shí)現(xiàn)中,元數(shù)據(jù)是獨(dú)立于文檔的發(fā)布者從第三方請(qǐng)求的??梢詮谋慌渲贸蓮脑S多不同的互聯(lián)網(wǎng)域和內(nèi)容發(fā)布者提供許多不同文檔的元數(shù)據(jù)的預(yù)定位置或服務(wù)器請(qǐng)求元數(shù)據(jù)。例如,每當(dāng)文檔被加載時(shí),設(shè)備可以被配置成從特定源或源的預(yù)定集合中的一個(gè)請(qǐng)求元數(shù)據(jù)。
[0082]設(shè)備可以從第二源接收所請(qǐng)求的文檔的元數(shù)據(jù)(506)。即使設(shè)備尚未被識(shí)別或者具體地請(qǐng)求了資源,所接收到的元數(shù)據(jù)也可以包括來自文檔的資源(例如,CSS文件、字體文件等)的數(shù)據(jù)的副本。這可以允許設(shè)備在識(shí)別并檢索組成文檔的特定資源之前接收文檔中的各種資源的內(nèi)容。
[0083]所接收到的元數(shù)據(jù)可以包括來自文檔的CSS文件的數(shù)據(jù)。例如,所接收到的元數(shù)據(jù)可以包括一個(gè)或多個(gè)CSS文件的全體,或者可以僅包括影響文檔的渲染的CSS文件中的數(shù)據(jù)的子集。所接收到的元數(shù)據(jù)可以指示文檔的布局和格式化信息,例如,包括文檔的圖像和其它元素在文檔的最終渲染中的大小和位置。所接收到的元數(shù)據(jù)可以包括一個(gè)或多個(gè)字體文件的數(shù)據(jù),或者可以識(shí)別在文檔中使用的字體文件的URL。所接收到的元數(shù)據(jù)可以識(shí)別文檔的圖像或其它元素的URL,從而允許web瀏覽器更迅速地請(qǐng)求這些元素。
[0084]在一些實(shí)現(xiàn)中,所接收到的元數(shù)據(jù)可以包括來自文檔的圖像。例如,元數(shù)據(jù)可以包括文檔的實(shí)際圖像,或者可以包括用于在文檔的早期視圖中使用的較低分辨率圖像或壓縮圖像。在一些實(shí)現(xiàn)中,當(dāng)在元數(shù)據(jù)中傳送圖像文件數(shù)據(jù)時(shí),僅提供將在文檔中可見的圖像。在一些實(shí)例中,提供將在文檔中可見的圖像中的不到全部。例如,所提供的圖像的子集可以包括位于文檔的中心區(qū)域處的圖像和/或至少最小大小的圖像,并且可以排除文檔的其它圖像。在一些實(shí)現(xiàn)中,元數(shù)據(jù)僅將用于顯示在文檔中的圖像包括在文檔的折疊線上方區(qū)域中(例如,在由用戶滾動(dòng)之前可見的文檔的頂部部分或初始視圖中)??梢允褂糜糜谶x擇要在元數(shù)據(jù)提供的圖像的其它準(zhǔn)則。
[0085]設(shè)備從第一源接收所請(qǐng)求的文檔的資源(508)。例如,所接收到的資源可以是文檔白勺主 HTML文件(例如,文檔 “http://example.com/” 的 “http://example.com/index.html,,)。
[0086]設(shè)備基于從第二源接收到的元數(shù)據(jù)來提供文檔的第一表示以用于顯示(510)。第一表示可以是在用戶發(fā)起到文檔的導(dǎo)航之后提供給用戶的文檔的初始視圖。第一表示可以包括來自使用所接收到的元數(shù)據(jù)來格式化或者布局的文檔的一個(gè)或多個(gè)資源的內(nèi)容。
[0087]在提供文檔的第一表示之后,設(shè)備生成將第一表示的部分與文檔的附加部分進(jìn)行組合的文檔的第二表示(512)。設(shè)備提供第二表示以用于顯示(514)。在提供第一表示之后,設(shè)備可以繼續(xù)發(fā)現(xiàn)并處理文檔的資源。例如,第二表示可以添加來自在第一表示被提供之后識(shí)別和/或接收到的附加資源的文檔的內(nèi)容。例如,新元素可以被插入到第一表示中,代替占位符元素或者插入到為元素而保留的空間內(nèi)??梢栽诓挥没亓?例如,重定大小或者重新布置)第一表示中所示出的元素的情況下提供第二表示。當(dāng)Javascript或其它內(nèi)容的處理被推遲時(shí),設(shè)備可以處理內(nèi)容。例如,可以將用戶交互處理程序添加到第一表示中的元素。
[0088]例如,因?yàn)樗邮盏降脑獢?shù)據(jù)指示了文檔的正確布局,可以在第二表示中維持第一表示的布局和格式化??赡軆H基于初始HTML文件和元數(shù)據(jù)的第一表示可以隨著增量改變而被無縫地增強(qiáng),直到完全文檔被示出為止。
[0089]圖6是圖示用于加速文檔加載的系統(tǒng)600的示例的框圖。系統(tǒng)600包括客戶端設(shè)備610、計(jì)算系統(tǒng)620和網(wǎng)絡(luò)618。該圖示出了圖示數(shù)據(jù)的流動(dòng)的階段(A)至(C),以及圖示在客戶端設(shè)備610上示出的用戶界面的階段(D)。
[0090]在圖6的示例中,用于加速文檔的加載的元數(shù)據(jù)是在客戶端設(shè)備610的用戶602發(fā)起到一個(gè)或多個(gè)文檔的導(dǎo)航之前被提供的??蛻舳嗽O(shè)備610接收包括到目標(biāo)文檔的鏈接的引用文檔。加載引用文檔傳送用于加速目標(biāo)文檔的加載的元數(shù)據(jù)。當(dāng)用戶與到目標(biāo)文檔的鏈接交互時(shí),元數(shù)據(jù)(例如,與目標(biāo)文檔的布局和格式化有關(guān)的信息)已經(jīng)存在于客戶端設(shè)備610處。結(jié)果,客戶端設(shè)備610可以在不用從元數(shù)據(jù)服務(wù)請(qǐng)求元數(shù)據(jù)的情況下執(zhí)行目標(biāo)文檔的加速加載。
[0091]在階段(A)中,客戶端設(shè)備610向計(jì)算系統(tǒng)620發(fā)送查詢612。在階段(B)中,計(jì)算系統(tǒng)620處理查詢并且生成要響應(yīng)于該查詢而提供的文檔。計(jì)算系統(tǒng)620可以將查詢提供給搜索引擎并且從該搜索引擎接收搜索結(jié)果,或者以其它方式獲得響應(yīng)于查詢的信息。例如,計(jì)算系統(tǒng)620可以獲得識(shí)別被識(shí)別為與查詢相關(guān)的搜索結(jié)果文檔的集合的信息。計(jì)算系統(tǒng)620生成識(shí)別搜索結(jié)果文檔的文檔,諸如搜索引擎結(jié)果頁面。
[0092]計(jì)算系統(tǒng)620還訪問包含用于加速頁面加載的元數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)625。從數(shù)據(jù)存儲(chǔ)625,計(jì)算系統(tǒng)620識(shí)別搜索結(jié)果文檔中的一個(gè)或多個(gè)的元數(shù)據(jù),并且將該元數(shù)據(jù)包括在搜索引擎結(jié)果頁面中。在一些實(shí)現(xiàn)中,計(jì)算系統(tǒng)620包括僅最高排名搜索結(jié)果文檔的元數(shù)據(jù),或搜索結(jié)果文檔(例如,與前三個(gè)或前五個(gè)搜索結(jié)果對(duì)應(yīng)的文檔)的僅最高排名子集中的每一個(gè)的元數(shù)據(jù)。在一些實(shí)現(xiàn)中,計(jì)算系統(tǒng)620包括搜索引擎結(jié)果頁面中所識(shí)別的搜索結(jié)果中的每一個(gè)的元數(shù)據(jù)或元數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)625中可用的所識(shí)別的搜索結(jié)果中的每一個(gè)的元數(shù)據(jù)。
[0093]元數(shù)據(jù)632可以包括用于加速頁面加載的本文中所描述的類型的數(shù)據(jù)中的任一種,例如,包括來自搜索結(jié)果文檔的CSS文件的數(shù)據(jù)、指示搜索結(jié)果文檔中的元素的大小和位置的信息、來自搜索結(jié)果文檔的字體文件的數(shù)據(jù)、指示渲染搜索結(jié)果文檔所需的資源的數(shù)據(jù)等。
[0094]在階段(C)中,計(jì)算系統(tǒng)620提供搜索引擎結(jié)果頁面630,所述搜索引擎結(jié)果頁面630包括在該搜索引擎結(jié)果頁面630中識(shí)別的一個(gè)或多個(gè)搜索結(jié)果文檔的元數(shù)據(jù)632。在一些實(shí)現(xiàn)中,元數(shù)據(jù)632被包括在與搜索引擎結(jié)果頁面630相同的文件中。例如,搜索引擎結(jié)果頁面630的HTML文件能夠包括包含一個(gè)或多個(gè)搜索結(jié)果文檔的CSS內(nèi)容和布局信息的元數(shù)據(jù)。
[0095]在一些實(shí)現(xiàn)中,可以在與搜索引擎結(jié)果頁面630的HTML文件分開的一個(gè)或多個(gè)文件中所提供元數(shù)據(jù)632。文件可以作為搜索引擎結(jié)果頁面的被指示為完成搜索引擎結(jié)果頁面630的加載所需的資源或組件被嵌入。結(jié)果,在客戶端設(shè)備610處加載搜索引擎結(jié)果頁面630可以使客戶端設(shè)備610從計(jì)算系統(tǒng)620或另一系統(tǒng)中檢索包含元數(shù)據(jù)632的附加文件。以這種方式,客戶端設(shè)備610可以預(yù)先緩存搜索結(jié)果文檔的元數(shù)據(jù)作為加載搜索引擎結(jié)果頁面630的部分。
[0096]在階段(D)中,客戶端設(shè)備610提供包括搜索引擎結(jié)果頁面630的視圖的用戶界面650。用戶界面650包括各自包括到對(duì)應(yīng)搜索結(jié)果文檔的鏈接作為登陸頁面的搜索結(jié)果652a至652c。
[0097]當(dāng)用戶602與搜索結(jié)果652a至652c中的一個(gè)交互時(shí),客戶端設(shè)備610請(qǐng)求對(duì)應(yīng)的搜索結(jié)果文檔??蛻舳嗽O(shè)備610還使用對(duì)應(yīng)的搜索結(jié)果的元數(shù)據(jù)632,其在搜索引擎結(jié)果頁面630的加載期間被傳送到客戶端設(shè)備610,以迅速地生成具有準(zhǔn)確的格式化和布局的搜索結(jié)果文檔的表示。隨著資源發(fā)現(xiàn)過程繼續(xù),客戶端設(shè)備610更新搜索結(jié)果文檔的視圖,從而將其附加內(nèi)容與使用元數(shù)據(jù)632生成的初始視圖混合。
[0098]在一些實(shí)現(xiàn)中,計(jì)算系統(tǒng)620生成搜索引擎結(jié)果頁面630以包括響應(yīng)于與搜索結(jié)果652a至652c中的一個(gè)交互而使元數(shù)據(jù)632被請(qǐng)求的交互處理程序。例如,不是自動(dòng)地下載元數(shù)據(jù)632作為加載搜索引擎結(jié)果頁面630的一部分,而是用戶與到搜索結(jié)果文檔的鏈接的交互可以觸發(fā)對(duì)搜索結(jié)果文檔的第一請(qǐng)求以及對(duì)適當(dāng)?shù)脑獢?shù)據(jù)632的第二請(qǐng)求兩者。
[0099]圖7是圖示用于加速文檔加載的過程的示例的流程圖。過程700可以由圖7的計(jì)算系統(tǒng)620或另一計(jì)算系統(tǒng)來執(zhí)行。
[0100]計(jì)算系統(tǒng)620接收用戶輸入(702)。例如,計(jì)算系統(tǒng)620可以接收由用戶提交的搜索查詢。
[0101]計(jì)算系統(tǒng)620獲得響應(yīng)用戶輸入的數(shù)據(jù)(704)。數(shù)據(jù)識(shí)別要響應(yīng)于用戶輸入而引用的目標(biāo)文檔。例如,計(jì)算系統(tǒng)接收各自指示與搜索查詢相關(guān)的搜索結(jié)果文檔的搜索結(jié)果。
[0102]計(jì)算系統(tǒng)620識(shí)別用于加速目標(biāo)文檔的加載的元數(shù)據(jù)(706)。例如,計(jì)算系統(tǒng)620能夠訪問數(shù)據(jù)存儲(chǔ)以識(shí)別與目標(biāo)文檔的布局和格式化有關(guān)的先前選擇的數(shù)據(jù)。元數(shù)據(jù)被指定為與目標(biāo)文檔的URL相對(duì)應(yīng)。在一些實(shí)現(xiàn)中,包括多個(gè)目標(biāo)文檔(諸如多個(gè)搜索結(jié)果文檔)的元數(shù)據(jù)。
[0103]計(jì)算系統(tǒng)620生成包括到目標(biāo)文檔的鏈接并且還包括目標(biāo)文檔的元數(shù)據(jù)的文檔(708)。在一些實(shí)現(xiàn)中,元數(shù)據(jù)可以是所生成的文檔的一部分(例如,在HTML文件中)。在一些實(shí)現(xiàn)中,在客戶端設(shè)備處加載所生成的文檔使得該客戶端設(shè)備檢索目標(biāo)文檔的元數(shù)據(jù)。例如,計(jì)算系統(tǒng)620可以生成具有到搜索結(jié)果文檔的鏈接的搜索引擎結(jié)果頁面。包括搜索引擎結(jié)果頁面的資源能夠包括搜索結(jié)果文檔中的一個(gè)或多個(gè)的元數(shù)據(jù)。替選,搜索引擎結(jié)果頁面可以包括使得客戶端設(shè)備請(qǐng)求并接收一個(gè)或多個(gè)結(jié)果文檔的元數(shù)據(jù)的腳本或其它指令。
[0104]計(jì)算系統(tǒng)620響應(yīng)于用戶輸入而提供所生成的文檔(710)。傳送或者處理所生成的文檔能夠傳送目標(biāo)文檔的元數(shù)據(jù)。在加載所生成的文檔之后,當(dāng)客戶端設(shè)備導(dǎo)航到目標(biāo)文檔時(shí),用于加速目標(biāo)文檔的加載的元數(shù)據(jù)已經(jīng)存在于客戶端設(shè)備處。
[0105]圖8是圖示用于加速文檔加載的過程的示例的流程圖。圖8的示例描述用于生成文檔的元數(shù)據(jù)并且然后響應(yīng)于對(duì)元數(shù)據(jù)的請(qǐng)求而提供該元數(shù)據(jù)的技術(shù)。
[0106]計(jì)算系統(tǒng)檢索文檔(802)。例如,能夠被爬取網(wǎng)頁,使得網(wǎng)頁的數(shù)據(jù)被獲得。文檔能夠作為爬取的一部分被獲得以用于索引或其它目的。計(jì)算系統(tǒng)可以接收作為文檔的組件或者影響文檔的顯示的所有資源。
[0107]計(jì)算系統(tǒng)渲染文檔(804)。例如,能夠利用web瀏覽器的布局引擎(例如,web瀏覽器引擎或渲染引擎)(諸如Webkit或Gecko)來渲染文檔。當(dāng)渲染文檔時(shí),布局引擎獲得并處理文檔的所有資源(包括CSS文件、Javascript文件、字體文件)以及影響文檔的顯示的所有其它資源。計(jì)算系統(tǒng)能夠產(chǎn)生客戶端設(shè)備將通過發(fā)現(xiàn)并產(chǎn)生文檔中的所有嵌入式資源來產(chǎn)生的相同的渲染結(jié)果。計(jì)算設(shè)備可以在沒有對(duì)經(jīng)渲染的內(nèi)容進(jìn)行任何可視顯示的情況下使用“無頭”模式來生成清染。在一些實(shí)現(xiàn)中,布局引擎產(chǎn)生清染樹和文檔對(duì)象模型(DOM)樹。
[0108]計(jì)算系統(tǒng)使用文檔的渲染來提取文檔的元數(shù)據(jù)(806)。計(jì)算系統(tǒng)分析渲染,例如,檢查DOM樹、渲染樹以及文檔的最終布局。所提取的元數(shù)據(jù)可以包括頁面的布局和格式化的各種特性。例如,計(jì)算系統(tǒng)可以應(yīng)用預(yù)定規(guī)則的集合來確定哪些元素在渲染中可見以及所述元素的大小和位置。因?yàn)樽罱K完整渲染被分析,所以布局特性已經(jīng)反映了通過對(duì)頁面中的Javascript或其它指令的處理而添加或者調(diào)整的任何布局特征。
[0109]計(jì)算系統(tǒng)還能夠走查DOM樹和渲染樹以識(shí)別文檔的哪些資源被實(shí)際上用來影響文檔的顯示。此外,計(jì)算系統(tǒng)能夠確定特定資源內(nèi)的哪些部分影響文檔的顯示。例如,計(jì)算系統(tǒng)能夠確定特定CSS文件提供文檔的樣式,但是僅所定義的樣式的子集被實(shí)際上用在文檔中。計(jì)算系統(tǒng)在元數(shù)據(jù)中包括實(shí)際上影響文檔的顯示的CSS數(shù)據(jù),并且省略不影響文檔的顯示的CSS數(shù)據(jù)。來自文檔的多個(gè)不同的資源(例如,多個(gè)CSS文件、字體文件等)的數(shù)據(jù)能夠被包括在被提取的元數(shù)據(jù)中。元數(shù)據(jù)可以附加地或替選地指示DOM樹、渲染樹的特性。
[0110]此外,或者作為替選,可以基于來自先前已渲染文檔的其它用戶的數(shù)據(jù)來生成元數(shù)據(jù)。例如,在一個(gè)或多個(gè)用戶設(shè)備而不是服務(wù)器系統(tǒng)上的渲染的特性可以被用來選擇元數(shù)據(jù)。例如,在先渲染可以指示頁面的折疊線位于某個(gè)設(shè)備或某個(gè)類別的設(shè)備上哪里、哪些圖像被顯示在折疊線上方、圖像和其它元素的大小和位置、哪些CSS數(shù)據(jù)是渲染文檔所需的或關(guān)于文檔的其它信息。
[0111]所提取的元數(shù)據(jù)通常排除文檔的可視元素。例如,可以排除標(biāo)題和主體文本,但是可以包括定義文本的樣式的CSS數(shù)據(jù)。類似地,可以排除文檔的實(shí)際圖像,但是可以包括指示圖像在布局中的大小和位置的信息。
[0112]文檔中的可顯示元素改變地頻繁,但是文檔的總體設(shè)計(jì)改變地不太頻繁。結(jié)果,描述文檔的格式化和布局的元數(shù)據(jù)可以保持在比可顯示元素更長的時(shí)間內(nèi)有效。例如,網(wǎng)頁可以包括包含頻繁地被更新的文本在內(nèi)的主體區(qū)域。然而,主體區(qū)域的文本樣式以及大小和位置可以在數(shù)天、數(shù)星期或數(shù)月內(nèi)一致。類似地,網(wǎng)頁可以包括圖像,并且盡管所包括的特定圖像可以不時(shí)改變,但是該網(wǎng)頁可以一致地包括具有相同的位置和/或大小的圖像(例如,在300個(gè)像素乘300個(gè)像素的右上角中)。
[0113]省略可顯示內(nèi)容還可以具有其它優(yōu)點(diǎn)。例如,如果文檔改變并且元數(shù)據(jù)被用來生成文檔的初始視圖,則布局和格式化中的不準(zhǔn)確可能相較于例如提供過時(shí)的圖像或文本來說不太分散注意力。類似地,文檔的布局和格式化通常是不敏感的,并且可能是為安全內(nèi)容而提供的。
[0114]計(jì)算系統(tǒng)存儲(chǔ)所提取的文檔的元數(shù)據(jù)(808)。例如,計(jì)算系統(tǒng)能夠?qū)⒃獢?shù)據(jù)與文檔的URL或文檔的另一識(shí)別符相關(guān)聯(lián)。然后,當(dāng)接收到對(duì)識(shí)別特定文檔的元數(shù)據(jù)的請(qǐng)求時(shí),能夠提供特定于所識(shí)別的文檔的元數(shù)據(jù)。
[0115]元數(shù)據(jù)能夠由第三方生成,而無需由文檔的作者對(duì)文檔做出改變。結(jié)果,能夠?qū)τ糜谔峁┰獢?shù)據(jù)的服務(wù)進(jìn)行縮放以提供大量文檔的元數(shù)據(jù)。不需要改變對(duì)文檔或該文檔的資源的遞送的方式來允許元數(shù)據(jù)被提供用于加速頁面加載。
[0116]能夠針對(duì)多個(gè)文檔(包括來自多個(gè)發(fā)布者或互聯(lián)網(wǎng)域的文檔)中的每一個(gè)重復(fù)動(dòng)作(802)至(808)。例如,系統(tǒng)可以存儲(chǔ)多個(gè)文檔的元數(shù)據(jù)以能夠提供多個(gè)文檔中的任意一個(gè)的元數(shù)據(jù)。
[0117]在文檔的元數(shù)據(jù)已被存儲(chǔ)之后,計(jì)算系統(tǒng)接收對(duì)文檔的元數(shù)據(jù)的請(qǐng)求(810)。例如,計(jì)算系統(tǒng)接收識(shí)別文檔的URL的請(qǐng)求。
[0118]響應(yīng)于請(qǐng)求,計(jì)算系統(tǒng)識(shí)別所存儲(chǔ)的與文檔對(duì)應(yīng)的元數(shù)據(jù)(812)。例如,計(jì)算系統(tǒng)訪問被指定為與URL對(duì)應(yīng)的元數(shù)據(jù)。
[0119]計(jì)算系統(tǒng)響應(yīng)于請(qǐng)求而提供與文檔對(duì)應(yīng)的元數(shù)據(jù)(814)。通過提供元數(shù)據(jù),在請(qǐng)求元數(shù)據(jù)的設(shè)備識(shí)別作為文檔的一部分的特定資源之前,計(jì)算系統(tǒng)可以包括生成文檔的正確布局所需的資源的部分,諸如CSS文件。
[0120]在一些實(shí)現(xiàn)中,動(dòng)作(802)至(808)作為單獨(dú)的過程(例如,作為用于生成一個(gè)或多個(gè)文檔的元數(shù)據(jù)的合集的預(yù)處理階段)被執(zhí)行。類似地,動(dòng)作(810)至(814)可以作為單獨(dú)的過程被執(zhí)行,例如,以在元數(shù)據(jù)的庫被生成或者由另一系統(tǒng)提供之后提供元數(shù)據(jù)服務(wù)。
[0121]在一些實(shí)現(xiàn)中,web瀏覽器可以被配置成從文檔的源服務(wù)器而不是從第三方元數(shù)據(jù)服務(wù)請(qǐng)求元數(shù)據(jù)。例如,能夠從相同服務(wù)器請(qǐng)求文檔的HTML文件以及對(duì)用于加速加載的元數(shù)據(jù)的請(qǐng)求。文檔的作者能夠單獨(dú)地識(shí)別將幫助設(shè)備更迅速地生成文檔的初始視圖的他們的頁面的元數(shù)據(jù),并且能夠在包含元數(shù)據(jù)的個(gè)別資源被請(qǐng)求之前提供元數(shù)據(jù)。
[0122]上面所描述的技術(shù)允許為通過諸如HTTPS的安全協(xié)議所提供的公用文檔提取元數(shù)據(jù)。元數(shù)據(jù)可以由第三方提供并且被用來即便當(dāng)文檔的資源通過HTTPS被傳送到源服務(wù)器時(shí)也加速頁面加載。文檔的實(shí)際資源不流過第三方服務(wù)器,因?yàn)樵獢?shù)據(jù)是在加載過程中作為附加幫助單獨(dú)地被提供的。
[0123]在一些實(shí)現(xiàn)中,計(jì)算系統(tǒng)能夠從客戶端設(shè)備接收與文檔的渲染有關(guān)的信息。在計(jì)算系統(tǒng)不能夠訪問文檔的實(shí)例中,由客戶端設(shè)備提供的關(guān)于文檔的信息可以被用來識(shí)別用于加速頁面加載的來自文檔的元數(shù)據(jù)。例如,例如,在渲染文檔之后,web瀏覽器能夠提供關(guān)于頁面中的元素的大小和位置的信息。web瀏覽器可以指示所使用的格式化和樣式,并且可以提供從文檔的DOM樹或渲染樹所導(dǎo)出的信息。一般而言,web瀏覽器可以指示文檔的布局的一般屬性同時(shí)省略文檔中所顯示的個(gè)性化內(nèi)容和其它信息。來自許多不同的許多web瀏覽器的提交可以允許計(jì)算系統(tǒng)收集與計(jì)算系統(tǒng)不能夠檢索到的各種頁面的渲染有關(guān)的信息。在一些實(shí)現(xiàn)中,可以給用戶提供他們的設(shè)備是否向服務(wù)器提供信息的選項(xiàng),并且可以僅當(dāng)用戶已選擇允許文檔信息的提交時(shí)才發(fā)送布局和其它文檔屬性。
[0124]已經(jīng)描述了許多實(shí)現(xiàn)。然而,應(yīng)當(dāng)理解,可以在不脫離本公開的精神和范圍的情況下做出各種修改。例如,可以使用上面所示出的各種形式的流程,同時(shí)步驟被重新排序、添加或者移除。
[0125]本說明書中所描述的實(shí)施例以及所有的功能操作可以用數(shù)字電子電路或者用計(jì)算機(jī)軟件、固件或硬件(包括本說明書中所公開的結(jié)構(gòu)及其結(jié)構(gòu)等同物)或者用它們中的一個(gè)或多個(gè)的組合加以實(shí)現(xiàn)。實(shí)施例可以作為一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品(即,在計(jì)算機(jī)可讀介質(zhì)上被編碼以用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作的計(jì)算機(jī)程序指令的一個(gè)或多個(gè)模塊)被實(shí)現(xiàn)。計(jì)算機(jī)可讀介質(zhì)可以是機(jī)器可讀存儲(chǔ)設(shè)備、機(jī)器可讀存儲(chǔ)基質(zhì)、存儲(chǔ)器設(shè)備、影響機(jī)器可讀傳播信號(hào)的物質(zhì)的合成物,或它們中的一個(gè)或多個(gè)的組合。計(jì)算機(jī)可讀介質(zhì)可以是非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)。術(shù)語“數(shù)據(jù)處理裝置”包含用于處理數(shù)據(jù)的所有裝置、設(shè)備和機(jī)器,通過示例的形式包括可編程處理器、計(jì)算機(jī)或多個(gè)處理器或計(jì)算機(jī)。裝置除了包括硬件之外,還可以包括為所述的計(jì)算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)或它們中的一個(gè)或多個(gè)的組合的代碼。傳播信號(hào)是人工生成的信號(hào),例如,被生成來對(duì)信息進(jìn)行編碼以用于傳輸?shù)竭m合的接收器裝置的機(jī)器生成的電信號(hào)、光學(xué)信號(hào)或電磁信號(hào)。
[0126]計(jì)算機(jī)程序(還被稱為程序、軟件、軟件應(yīng)用、腳本或代碼)可以用任何形式的編程語言(包括編譯語言或解釋語言)編寫,并且它可以被以任何形式(包括作為獨(dú)立程序或作為適合于在計(jì)算環(huán)境中所使用的模塊、組件、子例程或其它單元)部署。計(jì)算機(jī)程序不是必要地對(duì)應(yīng)于文件系統(tǒng)中的文件??梢栽诒A袅似渌绦蚧驍?shù)據(jù)的文件的一部分(例如,存儲(chǔ)在標(biāo)記語言文檔中的一個(gè)或多個(gè)腳本)中、在專用于討論中的程序的單個(gè)文件中或者在多個(gè)協(xié)調(diào)文件(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、子程序或代碼的部分的文件)中存儲(chǔ)程序??梢詫⒂?jì)算機(jī)程序部署為在一個(gè)計(jì)算機(jī)上或者在位于一個(gè)站點(diǎn)處或跨越多個(gè)站點(diǎn)分布并通過通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行。
[0127]本說明書中所描述的過程和邏輯流程可以由執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序的一個(gè)或多個(gè)可編程處理器來執(zhí)行,以通過對(duì)輸入數(shù)據(jù)進(jìn)行操作并且生成輸出來執(zhí)行功能。過程和邏輯流程還可以由專用邏輯電路執(zhí)行,并且裝置還可以作為專用邏輯電路被實(shí)現(xiàn),所述專用邏輯電路例如FPGA(現(xiàn)場可編程門陣列)或ASICX專用集成電路)。
[0128]例如,適合于執(zhí)行計(jì)算機(jī)程序的處理器包括通用微處理器和專用微處理器,以及任何類型的數(shù)字計(jì)算機(jī)中的任何一個(gè)或多個(gè)處理器。通常,處理器將從只讀存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器或兩者接收指令和數(shù)據(jù)。計(jì)算機(jī)的必要元件是用于執(zhí)行指令的處理器以及用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。通常,計(jì)算機(jī)還將包括或者操作耦合以從用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備(例如,磁盤、磁光盤或光盤)接收數(shù)據(jù)或者向一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備轉(zhuǎn)移數(shù)據(jù)或兩者。然而,計(jì)算機(jī)不需要具有這樣的設(shè)備。而且,計(jì)算機(jī)可以被嵌入在另一設(shè)備(例如,平板計(jì)算機(jī)、移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、移動(dòng)音頻播放器、全球定位系統(tǒng)(GPS)接收器,僅舉幾例)中。適合于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)包括所有形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)器設(shè)備,通過示例的形式包括:半導(dǎo)體存儲(chǔ)器設(shè)備,例如,EPROM、EEPROM和閃速存儲(chǔ)器設(shè)備;磁盤,例如,內(nèi)部硬盤或可移除盤;磁光盤;以及⑶-ROM盤和DVD-ROM盤。處理器和存儲(chǔ)器可以由專用邏輯電路補(bǔ)充或者被合并在專用邏輯電路中。
[0129]為了提供與用戶的交互,可以在具有用于向用戶顯示信息的顯示設(shè)備(例如,CRT(陰極射線管)或LCD(液晶顯示器)監(jiān)視器)以及鍵盤和用戶可以用來向計(jì)算機(jī)提供輸入的指針設(shè)備(例如,鼠標(biāo)或軌跡球)的計(jì)算機(jī)上實(shí)現(xiàn)實(shí)施例。其它類型的設(shè)備也可以被用來提供用于與用戶交互;例如,提供給用戶的反饋可以是任何形式的感知反饋,例如,視覺反饋、聽覺反饋或觸覺反饋;并且可以以包括聲學(xué)輸入、語音輸入或觸覺輸入的任何形式接收來自用戶的輸入。
[0130]實(shí)施例可以被實(shí)現(xiàn)在計(jì)算系統(tǒng)中,所述計(jì)算系統(tǒng)包括后端組件(例如,作為數(shù)據(jù)服務(wù)器),或者包括中間件組件(例如,應(yīng)用服務(wù)器),或者包括前端組件(例如,具有用戶可以通過其與所公開的技術(shù)的實(shí)現(xiàn)交互的圖形用戶界面或Web瀏覽器的客戶端計(jì)算機(jī)),或一個(gè)或多個(gè)這樣的后端組件、中間件組件或前端組件的任何組合。本系統(tǒng)的組件可以通過任何形式或介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信(例如,通信網(wǎng)絡(luò))來互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)和廣域網(wǎng)(“WAN” ),例如,互聯(lián)網(wǎng)。
[0131]計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般地彼此遠(yuǎn)離并且通常通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系通過在相應(yīng)的計(jì)算機(jī)上運(yùn)行并且彼此具有客戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序來產(chǎn)生。
[0132]雖然本說明書包含許多特定細(xì)節(jié),但是這些不應(yīng)該被解釋為對(duì)限制,而是相反被解釋為特定于特定實(shí)施例的特征的描述。還可以在單個(gè)實(shí)施例中相結(jié)合地實(shí)現(xiàn)在本說明書中在單獨(dú)的實(shí)施例的場境中所描述的特定特征。相反地,還可以單獨(dú)地在多個(gè)實(shí)施例中或在任何適合的子組合中實(shí)現(xiàn)在單個(gè)實(shí)施例的場境中所描述的各種特征。而且,盡管特征可以被在上面描述為在特定組合中行動(dòng)并因此甚至最初要求被保護(hù)為這樣,但是來自要求保護(hù)的組合的一個(gè)或多個(gè)特征可以在一些情況下從組合中刪除,并且所要求保護(hù)的組合可以針對(duì)子組合或子組合的變化。
[0133]類似地,雖然在附圖中以特定次序描繪了操作,但是這不應(yīng)該被理解為要求這樣的操作被以所示出的特定次序或以順序次序執(zhí)行,或者要求執(zhí)行所有圖示的操作,以獲得期望的結(jié)果。在特定情況下,多任務(wù)和并行處理可能是有利的。而且,在上面所描述的實(shí)施例中各種系統(tǒng)組件的分離不應(yīng)該被理解為在所有實(shí)施例中都要求這樣的分離,并且應(yīng)該理解,所描述的程序組件和系統(tǒng)通常可以被一起集成在單個(gè)軟件產(chǎn)品中或者被封裝到多個(gè)軟件產(chǎn)品中。
[0134]因此,已經(jīng)描述了特定實(shí)施例。其它實(shí)施例在以下權(quán)利要求的范圍內(nèi)。例如,權(quán)利要求中所列舉的動(dòng)作可以被以不同的次序被執(zhí)行并且仍然獲得期望的結(jié)果。
【主權(quán)項(xiàng)】
1.一種由數(shù)據(jù)處理裝置執(zhí)行的方法,所述方法包括: 從第一源請(qǐng)求文檔的資源; 在接收所請(qǐng)求的資源之前,從與所述第一源不同的第二源請(qǐng)求所述文檔的元數(shù)據(jù); 從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù); 從所述第一源接收所請(qǐng)求的所述文檔的資源; 提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的第一表示以用于顯示;以及 在提供了基于來自所述第二源的所述元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示之后: 生成將所述第一表示的部分與所述文檔的附加部分組合的第二表示;以及 提供將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示以用于顯不O2.根據(jù)權(quán)利要求1所述的方法,其中,從與所述第一源不同的所述第二源請(qǐng)求所述文檔的元數(shù)據(jù)包括:從第二源請(qǐng)求未被所述文檔的資源所識(shí)別的所述文檔的元數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的方法,其中,提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括: 以由從所述第二源所接收到的所述元數(shù)據(jù)所指示的位置和大小來提供包括從所接收到的所述文檔的資源所指示的可顯示元素在內(nèi)的所述文檔的第一表示。4.根據(jù)權(quán)利要求1所述的方法,其中,提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括: 在接收指示用于對(duì)所述文檔的元素進(jìn)行顯示的區(qū)域的所述文檔的資源之前,基于所接收到的元數(shù)據(jù)來確定用于對(duì)所述元素進(jìn)行顯示的區(qū)域;以及 提供為所述元素保留表示的區(qū)域的所述文檔的所述第一表示。5.根據(jù)權(quán)利要求1所述的方法,其中,生成將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示包括: 按照由從所述第二源所接收到的元數(shù)據(jù)所指示的位置和大小,生成添加了所述文檔的附加可顯示元素的第二表示。6.根據(jù)權(quán)利要求1所述的方法,其中,從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括:接收包括來自級(jí)聯(lián)樣式表資源的樣式數(shù)據(jù)在內(nèi)的元數(shù)據(jù),其中,所述樣式數(shù)據(jù)包括被用在所述文檔中的一個(gè)或多個(gè)樣式的所述級(jí)聯(lián)樣式表資源中的數(shù)據(jù),并且所述樣式數(shù)據(jù)排除未被用在所述文檔中的一個(gè)或多個(gè)樣式的所述級(jí)聯(lián)樣式表資源中的數(shù)據(jù)。7.根據(jù)權(quán)利要求1所述的方法,其中,從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括:接收來自所述文檔的字體資源的數(shù)據(jù)。8.根據(jù)權(quán)利要求1所述的方法,其中,從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括:在客戶端設(shè)備處接收指示通過與所述客戶端設(shè)備不同的設(shè)備對(duì)所述文檔的渲染的布局或格式化的特性的數(shù)據(jù)。9.根據(jù)權(quán)利要求1所述的方法,其中,所述文檔包括Javascript內(nèi)容,所述Javascript內(nèi)容當(dāng)被處理時(shí),影響所述文檔的一個(gè)或多個(gè)元素的布局,并且 其中,從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括:接收指示反映處理所述Javascript內(nèi)容的效果的所述一個(gè)或多個(gè)元素的布局的數(shù)據(jù)。10.根據(jù)權(quán)利要求1所述的方法,其中,從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù)包括:接收指示所述文檔的折疊線的位置的數(shù)據(jù);并且 其中,所述方法進(jìn)一步包括: 基于指示所述文檔的折疊線的位置的所述數(shù)據(jù),識(shí)別用于顯示在所述文檔的折疊線上方區(qū)域中的內(nèi)容;以及 對(duì)所述文檔的內(nèi)容的處理進(jìn)行優(yōu)先排序,使得用于顯示在所述折疊線上方區(qū)域中的所識(shí)別的內(nèi)容在處理用于顯示在所述折疊線上方區(qū)域外的內(nèi)容之前被處理。11.一種存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,所述程序包括當(dāng)由一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行時(shí)使所述一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行操作的指令,所述操作包括: 從第一源請(qǐng)求文檔的資源; 在接收所請(qǐng)求的資源之前,從與所述第一源不同的第二源請(qǐng)求所述文檔的元數(shù)據(jù); 從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù); 從所述第一源接收所請(qǐng)求的所述文檔的資源; 提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的第一表示以用于顯示;以及在提供了基于來自所述第二源的所述元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示之后: 生成將所述第一表示的部分與所述文檔的附加部分組合的第二表示;以及 提供將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示以用于顯不O12.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,從與所述第一源不同的所述第二源請(qǐng)求所述文檔的元數(shù)據(jù)包括:從第二源請(qǐng)求未被所述文檔的資源所識(shí)別的所述文檔的元數(shù)據(jù)。13.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括: 以由從所述第二源所接收到的所述元數(shù)據(jù)所指示的位置和大小來提供包括從所接收到的所述文檔的資源所指示的可顯示元素在內(nèi)的所述文檔的第一表示。14.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括: 在接收指示用于對(duì)所述文檔的元素進(jìn)行顯示的區(qū)域的所述文檔的資源之前,基于所接收到的元數(shù)據(jù)來確定用于對(duì)所述元素進(jìn)行顯示的區(qū)域;以及 提供為所述元素保留表示的區(qū)域的所述文檔的所述第一表示。15.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,生成將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示包括: 按照由從所述第二源所接收到的元數(shù)據(jù)所指示的位置和大小,生成添加了所述文檔的附加可顯示元素的第二表示。16.一種系統(tǒng),所述系統(tǒng)包括: 一個(gè)或多個(gè)計(jì)算機(jī)以及存儲(chǔ)了可操作的指令的一個(gè)或多個(gè)存儲(chǔ)設(shè)備,所述指令當(dāng)由所述一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行時(shí),使所述一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行操作,所述操作包括: 從第一源請(qǐng)求文檔的資源; 在接收所請(qǐng)求的資源之前,從與所述第一源不同的第二源請(qǐng)求所述文檔的元數(shù)據(jù); 從所述第二源接收所請(qǐng)求的所述文檔的元數(shù)據(jù); 從所述第一源接收所請(qǐng)求的所述文檔的資源; 提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的第一表示以用于顯示;以及在提供了基于來自所述第二源的所述元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示之后: 生成將所述第一表示的部分與所述文檔的附加部分組合的第二表示;以及 提供將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示以用于顯不O17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,從與所述第一源不同的所述第二源請(qǐng)求所述文檔的元數(shù)據(jù)包括:從第二源請(qǐng)求未被所述文檔的資源所識(shí)別的所述文檔的元數(shù)據(jù)。18.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括: 以由從所述第二源所接收到的所述元數(shù)據(jù)所指示的位置和大小來提供包括從所接收到的所述文檔的資源所指示的可顯示元素在內(nèi)的所述文檔的第一表示。19.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,提供基于從所述第二源所接收到的元數(shù)據(jù)的所述文檔的所述第一表示以用于顯示包括: 在接收指示用于對(duì)所述文檔的元素進(jìn)行顯示的區(qū)域的所述文檔的資源之前,基于所接收到的元數(shù)據(jù)來確定用于對(duì)所述元素進(jìn)行顯示的區(qū)域;以及 提供為所述元素保留表示的區(qū)域的所述文檔的所述第一表示。20.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,生成將所述第一表示的部分與所述文檔的所述附加部分組合的所述第二表示包括: 按照由從所述第二源所接收到的元數(shù)據(jù)所指示的位置和大小,生成添加了所述文檔的附加可顯示元素的第二表示。
【文檔編號(hào)】G06F17/30GK105900091SQ201480072796
【公開日】2016年8月24日
【申請(qǐng)日】2014年11月14日
【發(fā)明人】拉姆庫瑪·拉馬尼, 羅伯特·J·恩納爾斯
【申請(qǐng)人】谷歌公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
仙居县| 华安县| 灵川县| 平阳县| 枣阳市| 工布江达县| 洪湖市| 宣武区| 江川县| 江永县| 武夷山市| 黄梅县| 搜索| 松潘县| 景东| 饶阳县| 弥渡县| 左权县| 获嘉县| 水城县| 阿克苏市| 察雅县| 红桥区| 舒兰市| 沙坪坝区| 育儿| 夏邑县| 增城市| 永新县| 洛宁县| 枣阳市| 舟山市| 吉水县| 丰原市| 尼勒克县| 于都县| 新闻| 桃源县| 那坡县| 武汉市| 来凤县|