專利名稱:在具有電子資源數(shù)據(jù)庫的客戶端裝置中高速緩存電子文檔資源的制作方法
在具有電子資源數(shù)據(jù)庫的客戶端裝置中高速緩存電子文檔資源相關(guān)申請的交叉引用本申請要求了 2010年5月7日提交的、美國臨時專利申請?zhí)枮?1/332,435、發(fā)明名稱為 “CACHING ELECTRONIC DOCUMENT RESOURCES IN A CLIENT DEVICE HAVING ANELECTRONIC RESOURCE DATABASE”的權(quán)益,其全部公開內(nèi)容通過參考包括于此。
背景技術(shù):
電子文檔,例如用于網(wǎng)站的網(wǎng)頁,通常參考一個或多個可能非常大的、用于顯示電子文檔的外部資源。例如,電子文檔可能參考圖像文件、音頻文件、視頻文件、格式文件或其他電子文檔資源。而且,電子文檔可能參考作為電子文檔資源的其他電子文檔。另外,主機裝置如網(wǎng)絡服務器可存儲電子文檔資源,并且當客戶端裝置請求電子文檔時,主機裝置可傳輸電子文檔和電子文檔資源至客戶端裝置。由于每次電子文檔被請求時都傳輸電子資源至客戶端裝置可能是耗費時間和浪費資源的,因此主機裝置可請求客戶端裝置將電子資源臨時地高速緩存在客戶端裝置的本地計算機可讀介質(zhì)上。可被客戶端裝置高速緩存的電子文檔資源的示例包括Java腳本文件、級聯(lián)樣式表(“CSS”)文件、圖像文件或其他類型的文件。一般地,主機裝置可通過聲明電子文檔資源為外部資源并在對客戶端裝置的響應中使用特定的命令來請求客戶端裝置高速緩存電子文檔資源。例如,在超文本傳輸協(xié)議(“HTTP”)中,對客戶端裝置的響應的開頭處的數(shù)據(jù)塊(稱作“信頭”)可提供用于控制電子文檔資源的高速緩存的數(shù)個函數(shù)。這個信頭在本技術(shù)領(lǐng)域被稱作“高速緩存-控制信頭”并可具有數(shù)個不同的可指定高速緩存行為的元素,稱作“命令(directive)”。例如,高速緩存控制命令可指定哪些電子文檔資源應被高速緩存、高速緩存的電子文檔資源的持續(xù)時間、是否驗證用于電子文檔資源的高速緩存和其他高速緩存控制命令。但是,簡單地聲明電子文檔資源為外部資源并依靠高速緩存-控制信頭和高速緩存控制命令的使用的傳統(tǒng)技術(shù)存在數(shù)個問題。而且,當客戶端裝置為移動裝置,例如蜂窩電話、個人數(shù)字助理、智能手機或其他移動裝置時,這些問題格外加劇。一個問題是移動裝置上的高速緩存典型地在容量上非常有限。由于移動裝置經(jīng)常是容量受限的,因此有效的存儲容量被高度保護且移動裝置經(jīng)常奉獻很少的資源給瞬時對象,如高速緩存。因此,在具有典型的高速緩存的移動裝置上,通過使用網(wǎng)絡瀏覽器來查看電子文檔如網(wǎng)頁、請求大量的電子文檔資源以顯示電子文檔、或者在查看依靠電子文檔資源(每個電子文檔資源需要移動裝置的大量的高速緩存)的電子文檔中可能簡單地在幾分鐘內(nèi)替換或移除(“沖洗”)高速緩存的電子資源。另外,傳統(tǒng)的高速緩存可能被網(wǎng)站或網(wǎng)頁共享,網(wǎng)頁或網(wǎng)站可能無意地、或者甚至有意地為來自高速緩存的其他網(wǎng)站或網(wǎng)頁沖洗一個或多個高速緩存的電子文檔資源。其他問題是可能用于移動裝置與主機裝置的通信的信道經(jīng)常具有有限數(shù)量的傳輸電子文檔和電子文檔資源的空間(“帶寬”)。而且,當電子文檔依靠大量的電子文檔資源時,客戶端裝置和主機裝置可能傳輸大量的請求和響應。由于客戶端裝置請求電子文檔資源的時間與主機裝置傳輸電子文檔資源的時間之間存在時延(稱作“延遲”),因此大量的請求和響應可能導致高延遲。高延遲是不理想的,因為它降低使用者在移動裝置上查看電子文檔的體驗。因此,需要減少移動裝置和主機裝置之間的延遲。
發(fā)明內(nèi)容
提供一種用于高速緩存之前標識的電子文檔資源的系統(tǒng)。所述系統(tǒng)可包括具有資源數(shù)據(jù)庫的計算機可讀介質(zhì),所述資源數(shù)據(jù)庫包括可操作用于標識電子文檔資源的資源記錄。所述資源記錄可包括資源記錄標識符和資源記錄內(nèi)容。所述系統(tǒng)還可包括可操作用于傳輸對所述電子文檔的第一請求以及接收包括所述電子文檔的第一響應的處理器。所述處理器還可操作用于解析所述電子文檔以識別已被標記有高速緩存標識符的電子文檔資源,其中所述高速緩存標識符可操作用于標識所述電子文檔資源將被高速緩存在所述計算機可讀介質(zhì)中。所述處理器還可操作用于將所述電子文檔資源高速緩存在所述資源數(shù)據(jù)庫中作為所述資源記錄,其中所述資源記錄內(nèi)容包括所述電子文檔資源,所述資源記錄標識符包括所述高速緩存標識符。在所述系統(tǒng)的一個方面中,所述處理器進一步可操作用于基于所述資源記錄生成電子資源目錄,其中所述電子資源目錄包括所述資源記錄標識符。在所述系統(tǒng)的另一個方面中,所述處理器進一步可操作用于提供所述電子資源目錄以標識存儲在所述資源數(shù)據(jù)庫中的所述電子文檔資源。在所述系統(tǒng)的又一個方面中,所述處理器可操作用于傳輸對所述電子文檔的第二請求,其中所述第二請求包括所述電子資源目錄,以及接收包括所述電子文檔的第二響應。所述處理器進一步還可操作用于基于所述第二響應從所述資源數(shù)據(jù)庫中檢索所述電子文檔資源以顯示所述電子文檔。在所述系統(tǒng)的又另一個方面中,所述電子資源記錄被建立用于預定的時間段。在所述系統(tǒng)的再另一個方面中,所述高速緩存標識符是基于所述電子文檔資源的。在所述系統(tǒng)的另一個方面中,其中所述電子文檔可操作用于識別多個電子文檔資源和多個高速緩存標識符,其中每個高速緩存標識符在所述多個高速緩存標識符中是唯一的,且每個高速緩存標識符對應所述多個電子文檔資源的電子文檔資源。還提供一種用于高速緩存之前標識的電子文檔資源的方法。所述方法可包括建立資源數(shù)據(jù)庫,所述資源數(shù)據(jù)庫包括可操作用于標識電子文檔資源的資源記錄,其中所述資源記錄包括資源記錄標識符和資源記錄內(nèi)容,以及傳輸對電子文檔的第一請求。所述方法還包括接收包括所述電子文檔的第一響應以及解析所述電子文檔以識別已被標記有高速緩存標識符的電子文檔資源,其中所述高速緩存標識符可操作用于標識所述電子文檔資源將被高速緩存在所述計算機可讀介質(zhì)中。所述方法還包括將所述電子文檔資源高速緩存在所述資源數(shù)據(jù)庫中作為所述資源記錄,其中所述資源記錄內(nèi)容包括所述電子文檔資源,所述資源記錄標識符包括所述高速緩存標識符。在所述方法的一個方面中,所述方法進一步包括基于所述資源記錄生成電子資源目錄,其中所述電子資源目錄包括所述資源記錄標識符。在所述方法的另一個方面中,所述方法包括提供所述電子資源目錄以標識存儲在所述資源數(shù)據(jù)庫中的所述電子文檔資源。在所述方法的又一個方面中,所述方法包括傳輸對所述電子文檔的第二請求,其中所述第二請求包括所述電子資源目錄;接收包括所述電子文檔的第二響應;以及基于所述第二響應從所述資源數(shù)據(jù)庫中檢索所述電子文檔資源以顯示所述電子文檔。在所述方法的又另一個方面中,所述電子資源記錄被建立用于預定的時間段。在所述方法的再又一個方面中,所述高速緩存標識符是基于所述電子文檔資源的。在所述方法的另一個方面中,所述電子文檔可操作用于識別多個電子文檔資源和多個高速緩存標識符,其中每個高速緩存標識符在所述多個高速緩存標識符中是唯一的,且每個高速緩存標識符對應于所述多個電子文檔資源中的電子文檔資源。還提供一種用于建立電子文檔資源的高速緩存的系統(tǒng)。所述系統(tǒng)包括計算機可讀介質(zhì),所述計算機可讀介質(zhì)具有用于通過客戶端裝置顯示的電子文檔,其中所述電子文檔可操作用于識別用于顯示所述電子文檔的電子文檔資源。所述系統(tǒng)還包括處理器,所述處理器可操作用于接收標識所述電子文檔資源可被高速緩存在客戶端裝置中的請求,并基于所述電子文檔資源生成第一高速緩存標識符,其中所述第一高速緩存標識符可操作用于區(qū)分所述電子文檔資源。所述處理器還可操作用于將所述第一高速緩存標識符插入所述電子文檔中,并在對所述電子文檔的第一請求的響應中傳輸所述電子文檔和所述電子文檔資源。在所述系統(tǒng)的一個方面中,所述處理器進一步可操作用于接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄,并且所述處理器進一步可操作用于確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存。所述處理器進一步可操作用于當確定所述電子文檔資源已被所述客戶端裝置高速緩存時,修改所述電子文檔以參考已被高速緩存的所述電子文檔資源。在所述系統(tǒng)的另一個方面中,所述處理器進一步可操作用于接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄,以及確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存。所述處理器進一步還可操作用于當確定所述電子文檔資源未被所述客戶端裝置高速緩存時,傳輸所述電子文檔資源。在所述系統(tǒng)的又另一個方面中,所述處理器進一步可操作用于接收用于替換所述電子文檔資源的替換電子文檔資源并生成用于所述替換電子文檔資源的第二高速緩存標識符,其中所述第二高速緩存標識符可操作用于區(qū)分所述替換電子文檔資源。所述處理器進一步還可操作用于使用所述第二高速緩存標識符替換所述電子文檔中的第一高速緩存標識符。在所述系統(tǒng)的再另一個方面中,所述處理器進一步可操作用于接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述替換電子文檔資源是否已被高速緩存的電子資源目錄,以及當所述電子資源目錄標識所述替換電子文檔資源未被高速緩存時,傳輸所述替換電子文檔資源。在所述系統(tǒng)的另一個方面中,所述電子資源目錄包括第一高速緩存標識符。在所述系統(tǒng)的又一個方面中,所述電子文檔可操作用于識別多個電子文檔資源和多個高速緩存標識符,其中每個高速緩存標識符在所述多個高速緩存標識符中是唯一的,且每個高速緩存標識符對應于所述多個電子文檔資源中的電子文檔資源。還提供一種用于建立電子文檔資源的高速緩存的方法。所述方法包括將用于通過客戶端裝置顯示的電子文檔存儲在計算機可讀介質(zhì)中,其中所述電子文檔可操作用于識別用于顯示所述電子文檔的電子文檔資源,以及通過處理器接收標識所述電子文檔資源可被高速緩存在客戶端裝置中的請求。所述方法還包括通過處理器基于所述電子文檔資源生成第一高速緩存標識符,其中所述第一高速緩存標識符可操作用于區(qū)分所述電子文檔資源,以及通過所述處理器將所述第一高速緩存標識符插入所述電子文檔中。所述方法進一步包括通過所述處理器在對所述電子文檔的第一請求的響應中傳輸所述電子文檔和所述電子文檔資源。在一個方面中,所述方法包括通過所述處理器接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄。所述方法還包括通過所述處理器確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存。所述方法進一步包括當確定所述電子文檔資源已被所述客戶端裝置高速緩存時,通過所述處理器修改所述電子文檔以參考已被高速緩存的所述電子文檔資源。在另一個方面中,所述方法包括通過所述處理器接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄。所述方法還包括通過所述處理器確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存。所述方法進一步包括當確定所述電子文檔資源未被所述客戶端裝置高速緩存時,通過所述處理器傳輸所述電子文檔資源。在又一個方面中,所述方法包括通過所述處理器接收用于替換所述電子文檔資源的替換電子文檔資源,以及通過所述處理器生成用于所述替換電子文檔資源的第二高速緩存標識符,其中所述第二高速緩存標識符可操作用于區(qū)分所述替換電子文檔資源。所述方法還包括通過所述處理器使用所述第二高速緩存標識符替換所述電子文檔中的所述第一高速緩存標識符。在又另一個方面中,所述方法包括接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述替換電子文檔資源是否已被高速緩存的電子資源目錄,以及當所述電子資源目錄標識所述替換電子文檔資源未被高速緩存時,傳輸所述替換電子文檔資源。在又一個方面中,所述電子資源目錄包括所述第一高速緩存標識符。在另一個方面中,所述電子文檔可操作用于識別多個電子文檔資源和多個高速緩存標識符,其中每個高速緩存標識符在所述多個高速緩存標識符中是唯一的,且每個高速緩存標識符對應于所述多個電子文檔資源中的電子文檔資源。
圖I示出根據(jù)本技術(shù)一方面的多個客戶端裝置與主機裝置通信以接收一個或多個電子文檔的一個示例;圖2示出根據(jù)本技術(shù)一方面的客戶端裝置與主機裝置通信以接收一個或多個電子文檔的一個示例;
圖3示出根據(jù)本技術(shù)一方面的具有高速緩存標識符的電子文檔的部分的一個示例;圖4示出根據(jù)本技術(shù)一方面的用于存儲電子文檔資源的電子資源記錄的示例;圖5示出根據(jù)本技術(shù)一方面的電子資源記錄的一個示例;圖6示出根據(jù)本技術(shù)一方面的參考高速緩存在客戶端裝置上的電子文檔資源的電子文檔的部分的一個示例;圖7是根據(jù)本技術(shù)一方面的用于傳輸將被客戶端裝置高速緩存的電子資源的邏輯流程的一個示例;圖8是根據(jù)本技術(shù)一方面的用于替換之前高速緩存的電子文檔資源的邏輯流程的一個示例;以及圖9是根據(jù)本技術(shù)一方面的檢索之前高速緩存的用于顯示電子文檔的電子文檔資源的一個示例。
具體實施例方式圖I示出客戶端裝置102-108通過網(wǎng)絡130與主機裝置110通信的一個示例。客戶端裝置102-108可以為任何類型的客戶端裝置,例如移動裝置、臺式電腦、筆記本電腦、上網(wǎng)本、平板電腦或任何其他類型的客戶端裝置。移動裝置的示例包括個人顯示助理、智能手機、移動電話、數(shù)字音樂播放器或任何其他類型的移動裝置??蛻舳搜b置102-108可從主機裝置110請求一個或多個電子文檔。電子文檔可以是任何類型的電子文檔,如文字處理文檔、電子表格文檔、多媒體文檔或已知的或后來開發(fā)的任何其他類型的電子文檔。而且,電子文檔可以是互聯(lián)網(wǎng)相關(guān)的文檔,如超文本標記語言(“HTML”)文檔、Java腳本文檔、CSS文檔、可擴展標記語言(“XML”)文檔或任何其他互聯(lián)網(wǎng)相關(guān)的文檔。在一種實施方式中,主機裝置110可以是搜索引擎提供器,可操作用于提供用于被客戶端裝置102-108訪問的搜索引擎的網(wǎng)站。在另一種實施方式中,主機裝置110可以是在線購物提供器,可操作用于提供用于被客戶端裝置102-108訪問的在線購物的網(wǎng)站。其他實施方式也是可行的,例如用于飲料供應商的網(wǎng)站、用于服裝供應商的網(wǎng)站或其他類型的網(wǎng)站。主機裝置110還可提供內(nèi)部網(wǎng)站,例如,用于與其他雇主協(xié)作或被雇員訪問的內(nèi)聯(lián)網(wǎng)網(wǎng)站。在任何實施方式中,用于主機裝置110的網(wǎng)站可參考一個或多個電子文檔資源,如多媒體文件、互聯(lián)網(wǎng)相關(guān)的文件或其他任何類型的用于顯示被主機裝置110存儲的一個或多個電子文檔的電子文檔資源。主機裝置110和客戶端裝置102-108可通過網(wǎng)絡130通信。例如,一個或多個客戶端裝置102-108可傳輸對一個或多個電子文檔的請求到主機裝置110。在響應中,主機裝置110可傳輸一個或多個電子文檔到客戶端裝置102-108。而且,主機裝置110可傳輸一個或多個電子文檔資源到客戶端裝置102-108以顯示一個或多個電子文檔。如下面所闡述的,客戶端裝置102-108還可通過網(wǎng)絡130傳輸電子文檔資源目錄如“信息記錄程序(cookie) ”至主機裝置110?;陔娮游臋n資源目錄的內(nèi)容,主機裝置110可限制其傳輸至一個或多個客戶端裝置102-108的電子文檔資源。參考圖2-8說明電子文檔資源目錄的內(nèi)容和主機裝置110可能限制傳輸至客戶端裝置102-108的電子文檔資源的方式。
盡管圖I示出客戶端裝置102-108與單個主機裝置110通信,但是客戶端裝置102-108可通過網(wǎng)絡130與多個主機裝置(未示出)通信。而且,客戶端裝置102-108之間可以彼此通信。在一種實施方式中,客戶端裝置102-108可以是主機裝置110。類似地,在另一種實施方式中,主機裝置110可以是客戶端裝置102-108。另外,單個主機裝置110可包括多個主機裝置,單個客戶端裝置如客戶端裝置102可包括多個客戶端裝置。圖2示出圖I的客戶端裝置102與主機裝置110通信的一個示例。在一種實施方式中,主機裝置110可包括計算機可讀介質(zhì)202、網(wǎng)絡接口 204、處理器206和電子文檔服務器208。計算機可讀介質(zhì)202可包括服務器資源數(shù)據(jù)庫210,服務器資源數(shù)據(jù)庫210可操作用于存儲一個或多個用于提供一個或多個電子文檔給客戶端裝置102的資源。服務器資源數(shù)據(jù)庫210可以是任何類型的數(shù)據(jù)庫,如平面文件數(shù)據(jù)庫、分層數(shù)據(jù)庫、網(wǎng)絡數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫、面向?qū)ο蟮臄?shù)據(jù)庫或任何其他已知的或后來開發(fā)的數(shù)據(jù)庫。在一種實施方式中,服務器資源數(shù)據(jù)庫210可包括多個電子文檔資源212-216和多個電子文檔218-220。電子文檔218或電子文檔220可參考電子文檔資源212-216的任一個或者不參考電子文檔資源212-216。如參考圖3和圖5所討論的,電子文檔218-220可包含參考電子文檔資源212-216的格式或文本。處理器206可操作用于為電子文檔資源212-216的一個或多個準備用于嵌入一個或多個電子文檔218-220的高速緩存標識符。高速緩存標識符可操作用于標識電子文檔資源是否可被客戶端裝置102高速緩存。而且,高速緩存標識符可操作用于唯一地標識電子文檔資源以及區(qū)分第一電子文檔資源和第二電子文檔資源。而且,根據(jù)處理器206如何生成高速緩存標識符,高速緩存標識符可標識自從處理器206最后一次生成電子文檔資源的高速緩存標識符起,電子文檔資源是否已被更新或修改。處理器206可基于電子文檔資源被認為是靜態(tài)的或動態(tài)的內(nèi)容而準備用于電子文檔資源的高速緩存標識符。例如,靜態(tài)內(nèi)容可包括不被期望在預定時間段內(nèi)改變的內(nèi)容或不被期望經(jīng)常改變的內(nèi)容,動態(tài)內(nèi)容可包括被期望在預定時間段內(nèi)改變的內(nèi)容或被期望經(jīng)常改變的內(nèi)容。而且,處理器206可接收為特定類型的電子文檔資源準備高速緩存標識符的選擇或其他指令,或者可接收為特定的電子文檔資源準備高速緩存標識符的選擇或其他指令。主機裝置110可采用用于為一個或多個電子文檔資源212-2169準備高速緩存標識符的其他選擇標準。高速緩存標識符可以是任何類型的標識電子文檔資源的標識符。在一種實施方式中,處理器206可為電子文檔資源218-220的每個生成“r: ID:fingerprint”形式的高速緩存標識符。在另一種實施方式中,電子文檔資源218-220的每個可具有唯一的高速緩存標識符。在又另一個替換實施方式中,處理器206可為可被客戶端裝置102高速緩存的所有電子文檔資源生成單一的高速緩存標識符。而且,處理器206可為被電子文檔218-220的一個或多個參考的電子文檔資源212-216的每個生成高速緩存標識符。高速緩存標識符可包括數(shù)個高速緩存標識符部分,例如高速緩存標識符前綴、高速緩存標識符主體和聞速緩存標識符后綴。但是,包括如綴、主體和后綴的任何組合的聞速緩存標識符也是可行的。另外,高速緩存標識符可以僅包括單個部分,例如僅包括高速緩存標識符前綴、僅包括高速緩存標識符主體或者僅包括高速緩存標識符后綴。在高速緩存標識符是“r: ID:fingerprint”的實施方式中,高速緩存標識符前綴“r:”可指示電子文檔資源是可被客戶端裝置102高速緩存的,高速緩存標識符主體“ID:”可標識將被客戶端裝置102高速緩存的特定電子文檔資源,高速緩存標識符后綴“ f ingerprint ”可用于檢測電子文檔資源的改變。高速緩存標識符前綴、高速緩存標識符主體和高速緩存標識符后綴可以是任何序列的字母數(shù)字字符。關(guān)于高速緩存標識符前綴,一種實施方式是使用字母數(shù)字字符“r:”,但是,也可使用其他字母數(shù)字字符,例如“5c”、“4#”、“prefiX”、“$$”或者任何其他序列的字母數(shù)字字符。關(guān)于高速緩存標識符主體,一種實施方式是為電子文檔資源使用唯一的字母數(shù)字字符序列。例如,當電子文檔參考第一電子文檔資源和第二電子文檔資源時,用于每個電子文檔資源的高速緩存標識符可被分別分配一個唯一的高速緩存標識符。在另一種實施方式中,用于每個電子文檔資源的每個高速緩存標識符是唯一的,并包括高速緩存標識符主體。在其他替換實施方式中,對于相同類型的電子文檔資源,高速緩存標識符可以是相同的;對于所有電子文檔資源,高速緩存標識符可以是相同的;僅對于一些電子文檔資源,高速緩存標識符是不同的;或者其任何組合或派生。最后,關(guān)于高速緩存標識符后綴,一種實施方式是使用對于電子文檔資源的內(nèi)容是唯一的字母數(shù)字字符序列。換句話說,高速緩存標識符后綴可以是基于電子文檔資源的。例如,處理器206可使用哈希算法如MD5哈希算法來生成電子文檔資源212的高速緩存標識符后綴。因此,當電子文檔資源212的內(nèi)容改變時,處理器206可為更新的電子文檔資源212準備不同的高速緩存標識符后綴。作為示例,假設電子文檔218具有參考第一電子文檔資源212的第一高速緩存標識符,并且處理器206接收到用于替換電子文檔資源212的替換電子文檔資源214。處理器206可生成用于替換電子文檔資源214的第二高速緩存標識符,其中第二高速緩存標識符可操作用于區(qū)分替換電子文檔資源214和電子文檔資源212。然后,處理器206可使用第二高速緩存標識符替換電子文檔218中的第一高速緩存標識符。網(wǎng)絡接口 204可操作用于與處理器206通信并將來自客戶端裝置102的對電子文檔的請求傳輸至處理器206。網(wǎng)絡接口 204可以是任何類型的有線網(wǎng)絡接口、無線網(wǎng)絡接口或有線和無線網(wǎng)絡接口的組合。然后,處理器206可將請求傳送至電子文檔服務器208,電子文檔服務器208可操作用于提供電子文檔218-220和/或電子文檔資源212-216至客戶端裝置102。在一種實施方式中,電子文檔服務器208可以是網(wǎng)絡服務器,例如可從位于馬里蘭州的森林山的Apach軟件基金會購買的Apache HTTP服務器。在電子文檔服務器208是網(wǎng)絡服務器的實施方式中,電子文檔218-220可以是網(wǎng)頁或其他互聯(lián)網(wǎng)相關(guān)的電子文檔,電子文檔資源212-216可以是多媒體文件或其他類型的互聯(lián)網(wǎng)相關(guān)的或視聽文件。但是,電子文檔服務器208可以是任何類型的服務器,例如文件傳輸協(xié)議(“FTP”)服務器、遠程桌面協(xié)議(“RDP”)服務器、虛擬網(wǎng)絡計算(“VNC”)服務器或已知的或稍后開發(fā)的任何其他類型的電子文檔服務器。圖3是具有數(shù)個分配給相應的電子文檔資源312-318的高速緩存標識符304-310的電子文檔302的部分的示例。高速緩存標識符304-310包括分配給具有第一計算機腳本語言(如Javascript)的第一電子文檔資源312的第一高速緩存標識符304、分配給具有第二計算機腳本語言(如CSS)的第二電子文檔資源314的第二高速緩存標識符306、分配給具有計算機標記語言和多媒體內(nèi)容(如具有多媒體內(nèi)容的HTML)的第三電子文檔資源316的第三高速緩存標識符308、以及分配給具有計算機標記語言(如HTML)的第四電子文檔資源318的第四高速緩存標識符310。通過示例并參考上面討論的高速緩存標識符結(jié)構(gòu),第一高速緩存標識符304具有高速緩存標識符前綴“r: ”、高速緩存標識符主體“UTILS”和高速緩存標識符后綴“28f2a3bcle4d”。其余的高速緩存標識符306-310的每個具有類似的結(jié)構(gòu)。但是,在替換實施方式中,用于電子文檔的高速緩存標識符可以是結(jié)構(gòu)不同的。再參考圖2,主機裝置110基于來自客戶端裝置102的對電子文檔218-220的請求,提供電子文檔218-220至客戶端裝置102。在一種實施方式中,客戶端裝置102包括計算機可讀介質(zhì)222、網(wǎng)絡接口 224、處理器226、顯示器228和輸入接口 230??蛻舳搜b置102還可包括任何在主機裝置110中示出的組件。類似地,主機裝置110可包括任 何在客戶端裝置102中示出的組件。事實上,在一種實施方式中,客戶端裝置102和主機裝置110可共享一套組件??蛻舳搜b置102可包括可操作用于接收客戶端裝置102要從主機裝置110請求電子文檔的輸入的輸入接口 230。輸入接口 230可以是任何類型的輸入接口,例如鍵盤、鼠標、軌跡球、與其他系統(tǒng)或組件連接的接口、或者任何其他已知的或后來開發(fā)的輸入接口。處理器226可操作用于傳輸對電子文檔的請求至主機裝置110。在一種實施方式中,處理器206可通過網(wǎng)絡接口 224傳輸請求。網(wǎng)絡接口 224可以是有線網(wǎng)絡接口、無線網(wǎng)絡接口或者有線和無線網(wǎng)絡接口的組合。另外,處理器226可進一步操作用于接收來自主機裝置的包括被請求的電子文檔的響應。當客戶端裝置102接收到來自主機裝置110的電子文檔時,客戶端裝置102可分析電子文檔以確定電子文檔是否參考可高速緩存的電子文檔資源。例如,處理器226可解析電子文檔以識別已被標記有高速緩存標識符的電子文檔資源。如上面所討論的,當電子文檔資源被標記有“1':10:打1^611)1^1^”形式的高速緩存標識符時,處理器226可識別出電子文檔資源將被高速緩存。在一種實施方式中,電子文檔可包含用于幫助電子文檔中被參考的可高速緩存的電子文檔資源的識別的邏輯或模塊。在另一種實施方式中,處理器226可從計算機可讀介質(zhì)中檢索邏輯或模塊以識別電子文檔中被參考的可高速緩存的電子文檔資源。在識別出可高速緩存的電子文檔資源之后,處理器226可操作用于將可高速緩存的電子文檔資源存儲在一個或多個客戶端資源數(shù)據(jù)庫232-234中??蛻舳速Y源數(shù)據(jù)庫232-234可以是任何類型的數(shù)據(jù)庫,例如平面文件數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫、分層數(shù)據(jù)庫、面向?qū)ο蟮臄?shù)據(jù)庫、或者任何其他已知的或后來開發(fā)的數(shù)據(jù)庫。在一種實施方式中,客戶端資源數(shù)據(jù)庫232-234是HTML5結(jié)構(gòu)化查詢語言(“SQL”)數(shù)據(jù)庫。計算機可讀介質(zhì)222還可包括用于訪問或修改客戶端資源數(shù)據(jù)庫232-234的應用程序接口( “API”),如HTML5網(wǎng)絡存儲API。訪問或修改客戶端資源數(shù)據(jù)庫232-234可包括從客戶端資源數(shù)據(jù)庫232-234讀取、編輯客戶端資源數(shù)據(jù)庫232-234、向客戶端資源數(shù)據(jù)庫232-234添加、或從客戶端資源數(shù)據(jù)庫232-234中移除??蛻舳速Y源數(shù)據(jù)庫232-234的每個可被分配給電子文檔服務器。例如,客戶端資源數(shù)據(jù)庫234可被分配給電子文檔服務器208,用于存儲由電子文檔服務器208提供的可高速緩存的電子文檔資源。作為另一種示例,假設主機裝置110被配置有位于“WWW. google,com”的統(tǒng)一資源定位符(URL)的第一電子文檔服務器,且主機裝置110還被配置有位于“mail, google, com”的URL的第二電子文檔服務器。當客戶端裝置102訪問“www. google,com”的URL時,處理器226可為第一電子文檔服務器建立或分配第一客戶端資源數(shù)據(jù)庫。類似地,當客戶端裝置102訪問“mail, google, com”的URL時,處理器226可為第二電子文檔服務器建立或分配第二客戶端資源數(shù)據(jù)庫。因此,客戶端資源數(shù)據(jù)庫232-234的每個可被分配給不同的電子文檔服務器。但是,在第一替換實施方式中,處理器226可操作用于為一個或多個電子文檔服務器分配或建立單個客戶端資源數(shù)據(jù)庫。在另一個替換實施方式中,處理器226可操作用于為被客戶端裝置102訪問的所有電子文檔服務器分配或建立單個客戶端資源數(shù)據(jù)庫。客戶端資源數(shù)據(jù)庫232-234可包括一個或多個電子資源記錄236-240。電子資源記錄236-240可操作用于存儲被標識為可被電子文檔高速緩存的電子文檔資源212-216。 因此,處理器226可將被標識為可被高速緩存在電子文檔中的電子文檔資源212-216高速緩存在一個或多個電子資源記錄236-240中。在一種實施方式中,電子資源記錄236-240可被格式化為鍵值對。電子資源記錄的鍵可以是可操作用于標識電子資源記錄的資源記錄標識符。電子資源記錄的值可以是資源記錄的資源記錄內(nèi)容。但是,根據(jù)客戶端資源數(shù)據(jù)庫232-234的實施方式,可以使用其他值或鍵來格式化電子資源記錄236-240。如上面所討論的,處理器226可使用邏輯來標識和高速緩存客戶端資源數(shù)據(jù)庫232-234中的可被高速緩存的電子文檔資源。以基于HTML5網(wǎng)絡存儲API的偽代碼格式編
寫的用于標識和高速緩存可被高速緩存的電子文檔資源的邏輯的一個示例如下在上面的偽代碼中,處理器226可標識將被高速緩存的電子文檔資源,然后可生成用于存儲電子文檔資源的資源數(shù)據(jù)庫的電子資源記錄。而且,電子資源記錄可包含與電子文檔資源相關(guān)的特征,例如電子文檔資源被訪問的日期、電子文檔資源的指紋或其他與電子文檔資源相關(guān)的特征。在上面的示例中,處理器226生成具有電子文檔資源的內(nèi)容的第一電子資源記錄、具有客戶端裝置102訪問電子文檔資源的當前日期的第二電子資源記錄、以及具有分配給電子文檔資源的指紋的第三電子資源記錄。圖4示出基于圖3的電子文檔302和第一高速緩存標識符304的電子資源記錄236-240的電子資源記錄組402的示例。電子資源記錄組402包括第一電子資源記錄236、第二電子資源記錄238和第三電子資源記錄240,第一電子資源記錄236存儲被第一高速緩存標識符304標識的電子文檔資源的內(nèi)容,第二電子資源記錄238存儲客戶端裝置102訪問被第一高速緩存標識符304標識的電子文檔資源的時間戳,第三電子資源記錄240存儲第一高速緩存標識符304的高速緩存標識符后綴(即,指紋)。如圖4所示,電子文檔資源236-240的每個的結(jié)構(gòu)都為鍵值對。參考上面討論的標識和存儲被標識為可被高速緩存的電子文檔資源的示例性邏輯,第一電子資源記錄236的鍵404為“r:UTILS: content”,值410為電子文檔資源的內(nèi)容。類似地,第二電子資源記錄235的鍵406為“r:UTILS: timestamp”,值412為“05/05/2010”。最后,第三電子資源記錄 240 的鍵 408 為 “r:UTILS: fingerprint”,值 414 為 “28f2a3bcle4d”。盡管電子資源記錄組402具有三個電子資源記錄236-240,額外的電子資源記錄也是可行的。盡管未示出,但是處理器226可操作用于存儲用于第二高速緩存標識符306、第三高速緩存標識符308和第四高速緩存標識符310的額外的電子資源記錄組。換句話說,在圖3和圖4示出的示例中,對于在電子文檔302中標識的高速緩存標識符304-310的每個,處理器226可操作用于準備具有存儲電子文檔資源和相關(guān)特征的電子資源記錄的電子資源記錄組,相關(guān)特征例如為客戶端裝置102訪問電子文檔資源的日期和電子文檔資源的指紋。另外,處理器226可使用用于管理客戶端資源數(shù)據(jù)庫232-234的電子資源記錄236-240的邏輯或模塊。例如,處理器226可操作用于在自從將電子文檔資源存儲到客戶端資源數(shù)據(jù)庫232-234起已經(jīng)過去預定時間段后,更新或修改客戶端資源數(shù)據(jù)庫232-234。在一種實施方式中,處理器226可操作用于在將電子文檔資源存儲到客戶端數(shù)據(jù)庫一年后,將相應的電子文檔資源移除。但是,處理器226可使用其他的預定時間段來確定是否移除電子文檔資源記錄,例如秒、分鐘、月、年或其他時間量。在另一種實施方式中,處理器226可操作用于基于預定數(shù)量的最近或最經(jīng)常被訪問的電子文檔資源來更新或修改客戶端資源數(shù)據(jù)庫232-234。例如,處理器226可操作用于更新或修改客戶端資源數(shù)據(jù)庫232-234以保存或保持10個最近或最經(jīng)常被訪問的電子文檔資源。在這個實施方式中,預定數(shù)量的最近或最經(jīng)常被訪問的電子文檔資源可被無限期地高速緩存。但是,在替換實施方式中,可基于計算機可讀介質(zhì)222的存儲容量、客戶端資源數(shù)據(jù)庫232-234的存儲容量或其組合來移除預定數(shù)量的最近或最經(jīng)常被訪問的電子文檔資源。再參考圖2,計算機可讀介質(zhì)還可包括可操作用于生成存儲在客戶端資源數(shù)據(jù)庫232-234中的電子文檔資源的目錄的一個或多個電子資源目錄242-244。第一電子資源目錄242可被分配給第一客戶端資源數(shù)據(jù)庫232,其生成存儲在第一電子資源數(shù)據(jù)庫232中的電子文檔資源的目錄;第二電子資源目錄244可被分配給第二客戶端資源數(shù)據(jù)庫234,其生成存儲在第二客戶端資源數(shù)據(jù)庫234中的電子文檔資源的目錄。由于可在計算機可讀介質(zhì)222中分配或建立額外的客戶端資源數(shù)據(jù)庫(未示出),處理器226可操作用于為每個分配的或建立的客戶端資源數(shù)據(jù)庫生成或建立額外的電子資源目錄。但是,在替換實施方式中,處理器226可生成或建立不同配置的電子資源目錄,例如,為所有的客戶端資源數(shù)據(jù)庫生成或建立單個電子資源目錄,或者為特定組的客戶端資源數(shù)據(jù)庫生成或建立電子資源目錄。處理器226可生成或建立的電子資源目錄的一個示例為“信息記錄程序”,其可以是包括一個或多個名值對的字符串。參考圖5示出信息記錄程序的一個示例。處理器226可使用邏輯或模塊以生成或建立電子資源目錄242-244。在一種實施方式中,電子文檔可包含邏輯或模塊以幫助電子資源目錄242-244的生成或建立。在另一種實施方式中,處理器226可從計算機可讀介質(zhì)222中檢索邏輯或模塊以生成或建立電子資源目錄242-244。
下面示出以基于HTML5網(wǎng)絡存儲API的偽代碼形式編寫的用于生成電子資源目錄242-244的邏輯的一個示例。下面的邏輯還包括用于管理預定時間段已經(jīng)期滿之后的電子資源記錄的偽代碼。
for each item in IocalStorage { if the item is of the format r:ID.timestamp {if the timestamp is older than the predetermined time period {
localStorage.removeItem(’r:’ + ID + ‘.timestamp’); localStorage.removeItem(,r:’ + ID + ‘.content); localStorage.removeItem(,r:5 + ID + ‘.fingerprint);
}
else {
fingerprint = localStorage.getItem(,r:,+ ID + ‘·fingerprint,); resourceList.add(ID + + fingerprint)
}
}
writeCookie(resourceList);在上面的偽代碼中,邏輯指示處理器226首先通過分析電子資源記錄是否具有“r: ID. timestamp”格式的鍵來確定客戶端裝置102是否已高速緩存用于電子文檔的電子文檔資源。參考圖3,這種格式的鍵的一個示例是用于電子資源記錄238的鍵406。如果處理器226確定客戶端裝置102已高速緩存電子文檔資源,且電子資源記錄具有“r: ID. timestamp”格式的鍵,那么處理器226將電子資源記錄的值部分中指示的日期與預定時間段進行比較。例如,處理器226可將電子資源記錄238的值412與預定時間段如一年進行比較。當電子資源記錄的值部分中指示的日期比預定時間段遲,那么處理器226可移除與具有比預定時間段遲的日期的電子資源記錄相應的電子文檔資源對應的電子資源記錄。通過從電子資源數(shù)據(jù)庫中移除電子資源記錄,處理器226強制客戶端裝置102使用存儲在主機裝置10上的電子文檔資源。但是,處理器226可不從電子資源數(shù)據(jù)庫中移除電子資源記錄。例如,當日期值不比預定時間段遲時,處理器226可不從電子資源數(shù)據(jù)庫中移除電子資源記錄。當客戶端裝置102首次訪問電子文檔服務器208時,日期值可能不比預定時間段遲,因為客戶端裝置102之前未訪問過電子文檔服務器208,處理器226剛剛在客戶端資源數(shù)據(jù)庫中生成電子資源記錄;或者,當客戶端裝置102接下來在預定時間段內(nèi)訪問電子文檔服務器208時,日期值可能也不比預定時間段遲。如果電子資源記錄的日期值不比預定時間段遲,那么服務器226可為電子資源目錄增加高速緩存標識符主體(電子文檔資源的“ID”)和高速緩存標識符后綴(電子文檔資源的“fingerprint”)。因此,通過檢查客戶端裝置102高速緩存電子文檔資源的日期,處理器226可保證電子資源目錄中列出的電子文檔資源不比規(guī)定的預定時間段遲。圖5示出用于圖3中示出的電子文檔的電子資源目錄242的一個示例。電子資源目錄242包括數(shù)個指示客戶端裝置102已高速緩存的電子文檔資源的對502-508。如圖5所示,電子資源目錄242指示客戶端組裝置102已高速緩存具有“UTILS”的ID和“28f2a3bcle4d”的指紋的第一電子文檔資源、具有“CSS”的ID和“d24ela2cb89f ”的指紋的第二電子文檔資源、具有“HEADER”的ID和“ab394e3d2bc6”的指紋的第三電子文檔資源、以及具有“FOOTER”的ID和“7144e8C2a28e”的指紋的第四電子文檔資源。根據(jù)電子文檔是否進一步識別將被客戶端裝置102高速緩存的電子文檔資源,額外的對也是可行的。再參考圖2,在高速緩存電子文檔資源212-216時或之后,客戶端裝置102可在顯示器228上顯示被請求的一個或多個電子文檔218-220。顯示器228可以是任何類型的顯 示器,例如視頻顯示器(例如,電腦顯示器)、音頻顯示器(例如,音頻揚聲器)或音頻和視頻顯示器的組合。當客戶端裝置102從主機裝置102請求電子文檔時,客戶端裝置102還可傳輸一個或多個電子資源目錄242-244至主機裝置110。通過一起傳輸對電子文檔的請求和一個或多個電子資源目錄242-244,客戶端裝置102可通知主機裝置110哪些電子文檔資源已被客戶端裝置102高速緩存在一個或多個客戶端資源數(shù)據(jù)庫232-234中。因此,一個或多個電子資源數(shù)據(jù)242-244的傳輸減少接收和/或顯示電子文檔的延遲,因為客戶端裝置102和主機裝置110不必持續(xù)地通信以便主機裝置110或客戶端裝置102確定哪些電子文檔資源已被客戶端裝置102高速緩存以及確定那些已被高速緩存的電子文檔資源與存在于主機裝置110上的電子文檔資源相比是否不同或過期。當主機裝置110接下來傳輸電子文檔至客戶端裝置102時,主機裝置110可修改由客戶端裝置102顯示的電子文檔以使其包括對存在于客戶端裝置102上的高速緩存的電子文檔資源的參考。下面的偽代碼是可用于主機裝置110確定是否修改發(fā)送至客戶端裝置102的電子文檔的邏輯的一個示例
if (cookie contains resource_id) {
print(’’<script>load_resource(,r:’’ + resource_id + “‘)</script>”)
} else { print(resource_content)
}使用上面的偽代碼,主機裝置110的處理器206可首先確定隨著對電子文檔的請求一起發(fā)送的電子資源目錄(例如,信息記錄程序)是否包含用于被所請求的電子文檔參考的電子文檔資源的資源標識符,如高速緩存標識符主體。作為示例,并參考圖3和圖5,處理器206可確定電子資源目錄242的對506是否具有與電子文檔302的高速緩存標識符308的高速緩存標識符主體相匹配的高速緩存標識符主體,在這個示例中,高速緩存標識符主體為“HEADER”。當對506的高速緩存標識符主體與高速緩存標識符308的高速緩存標識符主體相匹配時,處理器206修改電子文檔302以指示客戶端裝置102的處理器226從客戶端資源數(shù)據(jù)庫234中檢索高速緩存的電子文檔資源。而且,關(guān)于主機裝置110已經(jīng)更新或替換的電子文檔資源,主機裝置110傳輸更新的或替換的電子文檔資源至客戶端裝置102,因為用于更新的或替換的電子文檔資源的高速緩存標識符的高速緩存標識符后綴(例如,指紋)與被替換的電子文檔資源的高速緩存標識符后綴(例如,指紋)不同?!?br>
圖6示出參考高速緩存在客戶端裝置102上的電子文檔資源的修改的電子文檔602的部分的一個示例。修改的電子文檔602包括指示客戶端裝置102的處理器226參考存儲在客戶端資源數(shù)據(jù)庫232-234中的高速緩存的電子文檔資源以顯示被請求的電子文檔602的修改604-610。修改的電子文檔602還可包括用于被客戶端裝置102的處理器226執(zhí)行以確定是否從客戶端資源數(shù)據(jù)庫檢索高速緩存的電子文檔資源的邏輯或模塊。盡管示出修改的電子文檔602中的偽代碼形式的邏輯,但是偽代碼形式的邏輯也可被復制如下
function load resource(resource id) {
content = localStorage.getItem(,r:’ + ID + ‘.content’); if (content) {
document, write(content);
Il update the timestamp so that the content does not expire from cache
localStorage.setItem(’r:’ + ID + ‘.timestamp’, Date.now());
} else { clearCookie(); reloadPage();
}
}
上面的偽代碼指示處理器226首先確定客戶端資源數(shù)據(jù)庫是否已高速緩存標識在電子資源目錄中的電子文檔資源。如果是,偽代碼指示處理器226從客戶端資源數(shù)據(jù)庫檢索用于顯示電子文檔的電子文檔資源。另外,上面的偽代碼指示處理器226確定電子資源目錄是否錯誤地參考客戶端裝置102之前未高速緩存的電子文檔資源。在這種情況下,處理器226可嘗試糾正錯誤地記錄的電子文檔資源。例如,處理器226可刪除電子資源目錄的內(nèi)容,或者移除電子資源目錄,然后重新從主機裝置110請求電子文檔。在響應中,主機裝置可傳輸電子文檔資源至客戶端裝置102,因為重新請求不包括電子資源目錄或具有移除的內(nèi)容的電子資源目錄。圖7是用于傳輸將被客戶端裝置102高速緩存的電子資源的邏輯流程700的一個示例。首先,主機裝置110可接收標識一個或多個電子文檔資源212-216是否可被客戶端裝置102高速緩存的請求(塊702)。主機裝置110可從主機裝置的使用者、主機裝置110的組件、或其他計算機系統(tǒng)或其組合接收請求。然后,處理器206可生成用于一個或多個電子文檔資源的一個或多個高速緩存標識符(塊704),然后將一個或多個高速緩存標識符插入一個或多個電子文檔218-220中(塊706)。然后,主機裝置110可接收對一個或多個電子文檔218-220的請求(塊708)。當主機裝置Iio接收到對一個或多個電子文檔218-220的請求時,主機裝置110可確定請求是否包括一個或多個電子資源目錄242-244(塊710)。如果請求不包括一個或多個電子資源目錄242-244,主機裝置110可傳輸被請求的一個或多個電子文檔218-220以及被一個或多個電子文檔218-220參考的一個或多個電子文檔資源212-216 (塊712)。但是,主機裝置110可能確定對一個或多個電子文檔218-220的請求包括一個或多個電子資源目錄242-244。那么,主機裝置110可確定一個或多個電子資源目錄242-244是否包括用于被一個或多個電子文檔218-220參考的一個或多個電子文檔資源212-216的高速緩存標識符(塊714)。在一種場景中,一個或多個電子目錄242-244不包括用于電子文檔資源的高速緩存標識符,因為自從客戶端裝置102最后一次請求電子文檔起,電子文檔資源已被增加至電子文檔。在另一種場景中,一個或多個電子目錄242-244不包括用于電子文檔資源的高速緩存標識符,因為自從客戶端裝置102最后一次請求電子文檔起,電子文檔資源被替換或更新。當一個或多個電子目錄242-244不包括用于被一個或多個電子文檔218-220參考的電子文檔資源的高速緩存標識符時,主機裝置110可傳輸電子文檔資源至客戶端裝置102 (塊712)。但是,當一個或多個電子目錄242-244包括用于被所請求的一個或多個電子文檔218-220參考的電子文檔資源的高速緩存標識符時,主機裝置110可修改被請求的一個或多個電子文檔218-220以使其參考高速緩存在一個或多個客戶端資源數(shù)據(jù)庫232-234中的高速緩存的電子文檔資源(塊716)。圖8是用于替換之前高速緩存的電子文檔資源的邏輯流程802的一個示例。首先,主機裝置110可接收替換電子文檔資源或更新的電子文檔資源(塊804)。然后,處理器206可生成用于替換電子文檔資源或更新的電子文檔資源的替換高速緩存標識符或更新的高速緩存標識符(塊806)。處理器206可將用于電子文檔資源的原始高速緩存標識符替換為替換高速緩存標識符(塊808)。但是,處理器206還可在電子文檔之前不參考替換電子文檔資源時,將替換高速緩存標識符插入電子文檔中。例如,替換電子文檔資源可以為額外的之前不被電子文檔參考的電子文檔資源。然后,主機裝置110可接收對一個或多個電子文檔218-220的請求(塊810)。當主機裝置Iio接收到對一個或多個電子文檔218-220的請求時,主機裝置110可確定請求是否包括一個或多個電子資源目錄242-244(塊812)。如果請求不包括一個或多個電子資源目錄242-244,主機裝置110可傳輸所請求的一個或多個電子文檔218-220以及被一個或多個電子文檔218-220參考的一個或多個電子文檔資源212-216,其中一個或多個電子文檔資源212-216包括更新的、額外的或替換的電子文檔資源(塊814)。但是,主機裝置110可能確定對一個或多個電子文檔218-220的請求包括一個或多個電子資源目錄242-244。那么,主機裝置110可確定一個或多個電子資源目錄242-244是否包括用于被一個或多個電子文檔218-220參考的替換電子文檔資源的高速緩存標識符(塊816)。在一種場景中,一個或多個電子目錄242-244不包括用于替換電子文檔資源的替換高速緩存標識符。當一個或多個電子目錄242-244不包括用于被所請求的一個或多個電子文檔218-220參考的替換電子文檔資源的替換高速緩存標識符時,主機裝置110可傳輸替換電子文檔資源至客戶端裝置102 (塊814)。但是,在另一種場景中,一個或多個電子目錄242-244可能包括替換高速緩存標識符,其中主機裝置110生成的替換高速緩存標識符不與用于被替換的電子文檔資源的高速緩存標識符不同。換句話說,替換高速緩存標識符和高速緩存標識符是相同的,因此客戶端裝置102存儲的高速緩存標識符與替換高速緩存標識符相匹配。因此,主機裝置110可分析高速緩存的電子資源的時間戳或其他特征以確定是否傳輸替換電子文檔資源。當主機裝置110確定高速緩存的電子文檔資源的特征與替換電子文檔資源的特征不同時,主機裝置110可傳輸替換電子文檔資源至客戶端裝置102 (塊 818)。圖9是用于檢索之前高速緩存的電子文檔資源以顯示電子文檔的邏輯流程902的一個示例。首先,客戶端裝置102可傳輸對一個或多個電子文檔218-220的請求(塊904)。在傳輸請求的同時,或在傳輸請求之前,處理器226可確定是否包括與對一個或多個電子文檔218-220的請求一起的一個或多個電子資源目錄242-244(塊906)。當處理器226確定不包括與對一個或多個電子文檔218-220的請求一起的一個或多個電子資源目錄242-244時,例如當客戶端裝置102之前未訪問過電子文檔服務器208時,處理器226傳輸請求并等待來自主機裝置110的響應。然后,處理器226接收一個或多個所請求的電子文檔218-220以及被一個或多個所請求的電子文檔218-220參考的一個或多個電子文檔資源212-216 (塊908)。處理器226解析一個或多個所請求的電子文檔以識別被參考的電子文檔資源212-216及其相應的高速緩存標識符(塊910)。由于處理器226識別出一個或多個電子文檔218-220中的高速緩存標識符,因此處理器226可在用于高速緩存被標識為可被高速緩存的一個或多個電子文檔資源212-216的一個或多個客戶端資源數(shù)據(jù)庫232-234中生成一個或多個資源記錄236-240 (塊912)。在一種實施方式中,處理器226還可生成或建立一個或多個的客戶端資源數(shù)據(jù)庫232-234。然后,處理器226可高速緩存一個或多個客戶端資源記錄236-240中的一個或多個電子文檔資源212-216并生成標識高速緩存在一個或多個客戶端資源數(shù)據(jù)庫232-234中的電子文檔資源的電子資源目錄(塊914)。但是,處理器226可能確定包括與對一個或多個電子文檔218-220的請求一起的一個或多個電子資源目錄242-244。例如,當客戶端裝置102之前訪問過電子文檔服務器208時,處理器226可能確定包括與對一個或多個電子文檔218-220的請求一起的一個或多個電子資源目錄242-244。當處理器226確定包括與對一個或多個電子文檔218-220的請求一起的一個或多個電子資源目錄242-244時,處理器226傳輸一個或多個電子資源目錄242-244以及對一個或多個電子文檔218-220的請求(塊916)。在傳輸請求以及一個或多個電子資源目錄242-244之后,處理器226可接收一個或多個電子文檔218-220 (塊918)。在一種場景中,當電子文檔資源之前未被客戶端裝置102高速緩存時,處理器226還可接收這些電子文檔資源。當處理器226接收到電子文檔218-220時,處理器220識別出對一個或多個電子文檔218-220的修改并從一個或多個電子資源記錄236-240中檢索一個或多個高速緩存的電子文檔資源(塊920)。然后,處理器226可使用高速緩存的電子資源顯示所請求的一個或多個電子文檔218-220 (塊922)。上面描述的系統(tǒng)、組件和邏輯可以很多不同的方式實施,包括硬件和軟件的結(jié)合、或者用于安裝在任何期望的操作系統(tǒng)上的軟件,操作系統(tǒng)包括Linux、UNIX或Windows。功能可在單個系統(tǒng)中實施,或者功能可被分割到多個系統(tǒng)。作為另一種示例,組件、系統(tǒng)和邏輯可被實施為計算機可執(zhí)行的指令或者內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),并可被存儲在、分布到、或讀取自很多不同類型的機器可讀介質(zhì)。機器可讀介質(zhì)可包括RAM、R0M、硬盤、軟盤、CD-ROMS、閃存或其他機器可讀介質(zhì)。組件、系統(tǒng)和邏輯還可被編碼在信號中,例如從網(wǎng)絡接收到的信號、或者分割成段的信號、以及在與網(wǎng)絡通信的多個數(shù)據(jù)包中接收到的信號。系統(tǒng)可在軟件、硬件或軟件和硬件的組合中實施。系統(tǒng)、邏輯和/或模塊可在計算機程序語言中實施,例如C#或Java、或任何其他已知的或后來開發(fā)的計算機程序語言。系統(tǒng)、邏輯和/或模塊還可在計算機腳本語言中實施,例如Javascript、PHP、ASP、或任何其他已知的或后來開發(fā)的計算機腳本語言。而且,可以采用計算機程序語言和計算機腳本語言的結(jié)合來實施系統(tǒng)、邏輯和/或模塊的一個或多個。而且,系統(tǒng)可使用額外的、不同的或更少的組件而實現(xiàn)。作為一種示例,處理器或任何其他的邏輯或組件可通過微處理器、微控制器、DSP、特定用途集成電路(ASIC)、程序指令、離散模擬或數(shù)字邏輯、或其他類型的電路或邏輯的組合而實現(xiàn)。作為另一種示例,內(nèi)存可以為DRAM、SRAM、閃存或其他類型的內(nèi)存。系統(tǒng)可以分布在多個組件之間,例如在多個處理器和內(nèi)存之間,優(yōu)選地包括多個分布式處理系統(tǒng)。邏輯,例如程序或電路,可以在多個程序之間組合或分割、分布在數(shù)個內(nèi)存和處理器上、并可在函數(shù)庫中或作為函數(shù)庫實施,例如動態(tài)鏈接庫(DLL)或其他共享的程序庫。例如,DLL可存儲用于執(zhí)行如上所述的特定模塊的功能的代碼。作為另一種示例,DLL自身可提供系統(tǒng)的所有或一些功能。系統(tǒng)之間的接口和系統(tǒng)中的邏輯和模塊之間的接口可以多種方式實施。例如,系統(tǒng)之間的接口可以是網(wǎng)絡服務、簡單對象訪問協(xié)議或企業(yè)服務總線接口。接口的其他示例包括消息傳遞,例如發(fā)布/訂閱消息傳遞、共享的內(nèi)存和遠程程序呼叫。盡管本文已經(jīng)結(jié)合特定實施例描述本發(fā)明的方面,但是應理解這些實施例僅僅用于示意性地說明本發(fā)明的原理和應用。因此,應理解在不脫離所附的權(quán)利要求定義的本發(fā)明的精神和范圍的前提下,可對示意性實施例做出多種修改并可以設計出其他配置。而且,盡管以特定的順序示出某些操作和功能,但是除非另有明確的規(guī)定,它們可以不同的順序執(zhí)行。工業(yè)應用性本發(fā)明具有廣泛的工業(yè)應用性,包括但不限于瀏覽系統(tǒng)和裝置,以及互聯(lián)網(wǎng)相關(guān)的服務器和其他互聯(lián)網(wǎng)相關(guān)的高速緩存技術(shù)。
權(quán)利要求
1.一種用于高速緩存之前標識的電子文檔資源的系統(tǒng),所述系統(tǒng)包括 計算機可讀介質(zhì),包括 包括資源記錄的資源數(shù)據(jù)庫,所述資源記錄可操作用于標識電子文檔資源,其中所述資源記錄包括資源記錄標識符和資源記錄內(nèi)容;以及處理器,可操作用于 傳輸對電子文檔的第一請求; 接收包括所述電子文檔的第一響應; 解析所述電子文檔以識別已被標記有高速緩存標識符的電子文檔資源,其中所述高速緩存標識符可操作用于標識所述電子文檔資源將被高速緩存在所述計算機可讀介質(zhì)中;和將所述電子文檔資源高速緩存在所述資源數(shù)據(jù)庫中作為所述資源記錄,其中 所述資源記錄內(nèi)容包括所述電子文檔資源;和 所述資源記錄標識符包括所述高速緩存標識符。
2.根據(jù)權(quán)利要求I所述的系統(tǒng),其中所述處理器進一步可操作用于基于所述資源記錄生成電子資源目錄,其中所述電子資源目錄包括所述資源記錄標識符。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述處理器進一步可操作用于提供所述電子資源目錄以標識存儲在所述資源數(shù)據(jù)庫中的所述電子文檔資源。
4.根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述處理器進一步可操作用于 傳輸對所述電子文檔的第二請求,其中所述第二請求包括所述電子資源目錄; 接收包括所述電子文檔的第二響應;以及 基于所述第二響應從所述資源數(shù)據(jù)庫中檢索所述電子文檔資源以顯示所述電子文檔。
5.根據(jù)權(quán)利要求I所述的系統(tǒng),其中所述電子資源記錄被建立用于預定的時間段。
6.根據(jù)權(quán)利要求I所述的系統(tǒng),其中所述高速緩存標識符是基于所述電子文檔資源的。
7.根據(jù)權(quán)利要求I所述的系統(tǒng),其中所述電子文檔可操作用于識別 多個電子文檔資源;以及 多個高速緩存標識符,其中 每個高速緩存標識符在所述多個高速緩存標識符中是唯一的;和 每個高速緩存標識符對應所述多個電子文檔資源中的電子文檔資源。
8.一種用于高速緩存之前標識的電子文檔資源的方法,所述方法包括 建立資源數(shù)據(jù)庫,所述資源數(shù)據(jù)庫包括可操作用于標識電子文檔資源的資源記錄,其中所述資源記錄包括資源記錄標識符和資源記錄內(nèi)容; 傳輸對電子文檔的第一請求; 接收包括所述電子文檔的第一響應; 解析所述電子文檔以識別已被標記有高速緩存標識符的電子文檔資源,其中所述高速緩存標識符可操作用于標識所述電子文檔資源將被高速緩存在所述計算機可讀介質(zhì)中;和將所述電子文檔資源高速緩存在所述資源數(shù)據(jù)庫中作為所述資源記錄,其中 所述資源記錄內(nèi)容包括所述電子文檔資源;和 所述資源記錄標識符包括所述高速緩存標識符。
9.根據(jù)權(quán)利要求8所述的方法,進一步包括基于所述資源記錄生成電子資源目錄,其中所述電子資源目錄包括所述資源記錄標識符。
10.根據(jù)權(quán)利要求9所述的方法,進一步包括提供所述電子資源目錄以標識存儲在所述資源數(shù)據(jù)庫中的所述電子文檔資源。
11.根據(jù)權(quán)利要求8所述的方法,進一步包括 傳輸對所述電子文檔的第二請求,其中所述第二請求包括所述電子資源目錄; 接收包括所述電子文檔的第二響應;以及 基于所述第二響應從所述資源數(shù)據(jù)庫中檢索所述電子文檔資源以顯示所述電子文檔。
12.根據(jù)權(quán)利要求8所述的方法,其中所述電子資源記錄被建立用于預定的時間段。
13.根據(jù)權(quán)利要求8所述的方法,其中所述高速緩存標識符是基于所述電子文檔資源的。
14.根據(jù)權(quán)利要求8所述的方法,其中所述電子文檔可操作用于識別 多個電子文檔資源;以及 多個高速緩存標識符,其中 每個高速緩存標識符在所述多個高速緩存標識符中是唯一的;和 每個高速緩存標識符對應于所述多個電子文檔資源中的電子文檔資源。
15.一種用于建立電子文檔資源的高速緩存的系統(tǒng),所述系統(tǒng)包括 計算機可讀介質(zhì),包括 用于通過客戶端裝置顯示的電子文檔,其中所述電子文檔可操作用于識別用于顯示所述電子文檔的電子文檔資源;以及處理器,可操作用于 接收標識所述電子文檔資源可被高速緩存在客戶端裝置中的請求; 基于所述電子文檔資源生成第一高速緩存標識符,其中所述第一高速緩存標識符可操作用于區(qū)分所述電子文檔資源; 將所述第一高速緩存標識符插入所述電子文檔中;和 在對所述電子文檔的第一請求的響應中傳輸所述電子文檔和所述電子文檔資源。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述處理器進一步可操作用于 接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄; 確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存;以及當確定所述電子文檔資源已被所述客戶端裝置高速緩存時,修改所述電子文檔以參考已被高速緩存的所述電子文檔資源。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述處理器進一步可操作用于 接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄; 確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存;以及 當確定所述電子文檔資源未被所述客戶端裝置高速緩存時,傳輸所述電子文檔資源。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述處理器進一步可操作用于 接收用于替換所述電子文檔資源的替換電子文檔資源; 生成用于所述替換電子文檔資源的第二高速緩存標識符,其中所述第二高速緩存標識符可操作用于區(qū)分所述替換電子文檔資源;以及 使用所述第二高速緩存標識符替換所述電子文檔中的第一高速緩存標識符。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中所述處理器進一步可操作用于 接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述替換電子文檔資源是否已被高速緩存的電子資源目錄;以及 當所述電子資源目錄標識所述替換電子文檔資源未被高速緩存時,傳輸所述替換電子文檔資源。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述電子資源目錄包括第一高速緩存標識符。
21.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述電子文檔可操作用于識別 多個電子文檔資源;以及 多個高速緩存標識符,其中 每個高速緩存標識符在所述多個高速緩存標識符中是唯一的;和 每個高速緩存標識符對應于所述多個電子文檔資源中的電子文檔資源。
22.—種用于建立電子文檔資源的高速緩存的方法,所述方法包括 將用于通過客戶端裝置顯示的電子文檔存儲在計算機可讀介質(zhì)中,其中所述電子文檔可操作用于識別用于顯示所述電子文檔的電子文檔資源; 通過處理器接收標識所述電子文檔資源可被高速緩存在客戶端裝置中的請求; 通過處理器基于所述電子文檔資源生成第一高速緩存標識符,其中所述第一高速緩存標識符可操作用于區(qū)分所述電子文檔資源; 通過所述處理器將所述第一高速緩存標識符插入所述電子文檔中;以及通過所述處理器在對所述電子文檔的第一請求的響應中傳輸所述電子文檔和所述電子文檔資源。
23.根據(jù)權(quán)利要求22所述的方法,進一步包括 通過所述處理器接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄; 通過所述處理器確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存; 當確定所述電子文檔資源已被所述客戶端裝置高速緩存時,通過所述處理器修改所述電子文檔以參考已被高速緩存的所述電子文檔資源。
24.根據(jù)權(quán)利要求22所述的方法,還包括 通過所述處理器接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述電子文檔資源是否已被所述客戶端裝置高速緩存的電子資源目錄; 通過所述處理器確定所述電子文檔資源是否已通過參考所述電子資源目錄而被高速緩存;以及 當確定所述電子文檔資源未被所述客戶端裝置高速緩存時,通過所述處理器傳輸所述電子文檔資源。
25.根據(jù)權(quán)利要求22所述的方法,進一步包括 通過所述處理器接收用于替換所述電子文檔資源的替換電子文檔資源; 通過所述處理器生成用于所述替換電子文檔資源的第二高速緩存標識符,其中所述第二高速緩存標識符可操作用于區(qū)分所述替換電子文檔資源;以及 通過所述處理器使用所述第二高速緩存標識符替換所述電子文檔中的所述第一高速緩存標識符。
26.根據(jù)權(quán)利要求25所述的方法,進一步包括 接收對所述電子文檔的第二請求,其中所述第二請求包括可操作用于標識所述替換電子文檔資源是否已被高速緩存的電子資源目錄;以及 當所述電子資源目錄標識所述替換電子文檔資源未被高速緩存時,傳輸所述替換電子文檔資源。
27.根據(jù)權(quán)利要求26所述的方法,其中所述電子資源目錄包括所述第一高速緩存標識符。
28.根據(jù)權(quán)利要求22所述的方法,其中所述電子文檔可操作用于識別 多個電子文檔資源;以及 多個高速緩存標識符,其中 每個高速緩存標識符在所述多個高速緩存標識符中是唯一的;和 每個高速緩存標識符對應于所述多個電子文檔資源中的電子文檔資源。
全文摘要
一種參考存儲在主機裝置(120)上的一個或多個電子文檔資源(212-216)的電子文檔(302)。主機裝置(120)可在電子文檔(302)中指示電子文檔(302)可被客戶端裝置(102)高速緩存。當電子文檔資源(212-216)被標識為可被客戶端裝置(102)高速緩存時,客戶端裝置(102)將電子文檔資源(212-216)高速緩存在存儲在客戶端裝置(102)的計算機可讀介質(zhì)(222)中的數(shù)據(jù)庫中??蛻舳搜b置(102)還可生成電子文檔資源目錄(242-244)以標識那些高速緩存在數(shù)據(jù)庫中的電子文檔資源。當客戶端裝置(102)接下來從主機裝置(120)請求電子文檔(302)時,客戶端裝置(102)可傳輸電子文檔資源目錄(242-244)至主機裝置(120)。一旦接收到電子文檔資源目錄(242-244),主機裝置(120)可修改電子文檔(302)以便電子文檔(302)參考高速緩存在客戶端裝置(102)的數(shù)據(jù)庫中的電子文檔資源(236-240)。
文檔編號G06F17/30GK102985921SQ201180026187
公開日2013年3月20日 申請日期2011年5月6日 優(yōu)先權(quán)日2010年5月7日
發(fā)明者史蒂文·T·卡納弗斯凱 申請人:谷歌公司