用于在主機文檔服務(wù)中提供離線訪問的系統(tǒng)和方法
【專利摘要】當用戶設(shè)備處于離線狀態(tài)時在用戶設(shè)備處接收到對文檔的請求。該請求包括與遠離用戶設(shè)備的位置相對應(yīng)的公共統(tǒng)一資源定位符(URL)。用戶設(shè)備啟動攔截該請求的應(yīng)用并且基于公共URL選擇多個本地緩存之一。多個本地緩存中的每個與私有URL相關(guān)聯(lián)。用戶設(shè)備經(jīng)由相應(yīng)的私有URL訪問所選的本地緩存以取回編輯器。用戶設(shè)備修改URL歷史以使用公共URL替換私有URL并且經(jīng)由該編輯器向用戶設(shè)備提供文檔。
【專利說明】用于在主機文檔服務(wù)中提供離線訪問的系統(tǒng)和方法
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2012年7月30日提交的美國專利申請N0.13/561,173和于2011年8月29日提交的美國臨時申請N0.61/528,472的優(yōu)先權(quán),其均通過引用的方式完整地并入本文。
[0003]本申請與以下申請有關(guān):于2011年6月23日提交的美國專利申請N0.13/166,844 ;于2011年5月27日提交的美國專利申請N0.13/117,386 ;于2011年5月5日提交的美國專利申請N0.13/101,312 ;于2011年3月30日提交的美國專利申請N0.13/075, 402 ;于2011年8月10日提交的美國專利申請N0.13/206, 896 ;于2011年8月10日提交的美國專利申請N0.13/207,051 ;于2011年8月10日提交的美國專利申請N0.13/207,117 ;于2011年8月10日提交的美國專利申請N0.13/207,176 ;于2011年I月13日提交的美國專利申請N0.13/006,259;于2011年9月10日提交的美國臨時申請N0.61/381,780 ;于2011年3月3日提交的美國臨時申請N0.61/448,715 ;以及于2011年3月16日提交的美國臨時申請N0.61/453,238,其均通過引用的方式并入本文。 【技術(shù)領(lǐng)域】
[0004]本說明書大體上涉及用于在主機(hosted)文檔服務(wù)中提供離線訪問的系統(tǒng)、方法和裝置,更具體地,涉及用于在主機文檔服務(wù)中提供對多個文檔的離線訪問的系統(tǒng)、方法和
>J-U ρ?α裝直。
【背景技術(shù)】
[0005]當處于離線模式時,現(xiàn)有的系統(tǒng)向用戶提供有限的訪問在線應(yīng)用的能力。在現(xiàn)有的文檔處理應(yīng)用中,用戶可以在本地編輯文檔。在現(xiàn)有的在線文檔處理應(yīng)用中,當處于在線狀態(tài)時,用戶可以通過訪問網(wǎng)頁來編輯文檔。然而,當用戶的設(shè)備處于離線模式時,功能受到限制。例如,如果用戶設(shè)備在處于離線狀態(tài)時嘗試訪問在線文檔,則用戶的瀏覽器可以返回錯誤消息,該錯誤消息指示互聯(lián)網(wǎng)連接丟失或者不可用并且用戶不能連接到網(wǎng)頁。
[0006]當用戶設(shè)備處于離線狀態(tài)時,一些瀏覽器可以顯示與特定網(wǎng)頁相關(guān)的緩存數(shù)據(jù)(例如,存儲在瀏覽器緩存中的數(shù)據(jù))。然而,功能受到限制,并且當嘗試訪問網(wǎng)頁中的超鏈接或者對網(wǎng)頁中的文檔進行編輯時,通常顯示錯誤消息(如上所述)。
【發(fā)明內(nèi)容】
[0007]根據(jù)一個實施例,當用戶設(shè)備處于離線狀態(tài)時在用戶設(shè)備處接收到對文檔的請求。該請求包括與遠離用戶設(shè)備的位置相對應(yīng)的公共統(tǒng)一資源定位符。啟動攔截請求的應(yīng)用?;诠步y(tǒng)一資源定位符來選擇包含能夠查看文檔的應(yīng)用的多個本地緩存之一。多個本地緩存中的每一個本地緩存與私有統(tǒng)一資源定位符相關(guān)聯(lián)。經(jīng)由相應(yīng)的私有統(tǒng)一資源定位符來訪問所選擇的本地緩存以取回編輯器。修改統(tǒng)一資源定位符歷史以使用公共統(tǒng)一資源定位符來替換私有統(tǒng)一資源定位符。經(jīng)由編輯器向用戶設(shè)備提供文檔。[0008]在一個實施例中,私有統(tǒng)一資源定位符包括具有持久的本地緩存副本的互聯(lián)網(wǎng)頁面的地址。
[0009]在一個實施例中,文檔被存儲在用戶設(shè)備上的數(shù)據(jù)庫處。在另一個實施例中,響應(yīng)于確定用戶設(shè)備處于在線狀態(tài),啟動第二編輯器應(yīng)用,其中,第二編輯器應(yīng)用被配置為與遠離用戶設(shè)備的位置處的服務(wù)器進行通信。在一個實施例中,在用戶設(shè)備處存儲在用戶設(shè)備處對文檔進行的編輯,以及向服務(wù)器發(fā)送改變。在另一實施例中,向服務(wù)器發(fā)送輪詢對文檔的更新的請求。響應(yīng)于向服務(wù)器輪詢對文檔的更新,接收更新。
[0010]在一個實施例中,從存儲設(shè)備取回與文檔和用戶設(shè)備有關(guān)的信息。
[0011]對于本領(lǐng)域普通技術(shù)人員而言,通過參照下面的詳細描述和附圖,本公開的這些和其他優(yōu)點將顯而易見。
【專利附圖】
【附圖說明】
[0012]圖1示出了根據(jù)一個實施例可以用于提供對文檔的訪問的通信系統(tǒng);
[0013]圖2示出了根據(jù)一個實施例的示例性用戶設(shè)備的功能組件;
[0014]圖3示出了根據(jù)一個實施例的示例性文檔服務(wù)的功能組件;
[0015]圖4示出了根據(jù)一個實施例在實現(xiàn)為網(wǎng)頁的編輯器中顯示的文檔;
[0016]圖5是描繪根據(jù)一個實施例在離線狀態(tài)中提供對文檔的訪問的方法的流程圖;
[0017]圖6示出了根據(jù)一個實施例與文檔相關(guān)聯(lián)的公共地址和私有地址;
[0018]圖7是描繪根據(jù)一個實施例訪問文檔的方法的流程圖;以及
[0019]圖8示出了可以用于實現(xiàn)本發(fā)明的計算機的組件。
【具體實施方式】
[0020]圖1示出了根據(jù)一個實施例可以用于提供對文檔的訪問的通信系統(tǒng)100。通信系統(tǒng)100包括網(wǎng)絡(luò)102、文檔服務(wù)104和用戶設(shè)備106。通信系統(tǒng)100可以包括多于一個的用
戶設(shè)備。
[0021]在圖1的示例性實施例中,網(wǎng)絡(luò)102是互聯(lián)網(wǎng)。在其他實施例中,網(wǎng)絡(luò)102可以包括多個不同類型的網(wǎng)絡(luò)中的一個或多個,例如,內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、無線網(wǎng)絡(luò)、基于光纖通道的存儲區(qū)域網(wǎng)(SAN)或以太網(wǎng)??梢允褂闷渌W(wǎng)絡(luò)。備選地,網(wǎng)絡(luò)102可以包括不同類型的網(wǎng)絡(luò)的組合。
[0022]通信系統(tǒng)100還包括網(wǎng)站108。在一個實施例中,文檔服務(wù)104可以管理可以由用戶設(shè)備106訪問的網(wǎng)站108。文檔服務(wù)104可以包括服務(wù)器。在備選實施例中,網(wǎng)站108可以由不同的服務(wù)器管理。文檔服務(wù)104經(jīng)由網(wǎng)站108向用戶設(shè)備106提供對各種網(wǎng)頁的訪問。在一個實施例中,網(wǎng)站108向用戶設(shè)備106提供對一個或多個網(wǎng)頁的訪問,從而提供對存儲在文檔服務(wù)104處的文檔(例如,文檔216-A)的訪問,如圖3中所示。用戶設(shè)備106可以訪問網(wǎng)站108上的萬維網(wǎng)頁面,其中,可以使用例如傳統(tǒng)的web瀏覽器查看該萬維網(wǎng)頁面。
[0023]用戶設(shè)備106可以是使用戶能夠經(jīng)由網(wǎng)絡(luò)102查看網(wǎng)站108的任何設(shè)備。用戶設(shè)備106可以通過直接(有線)鏈路或者無線地連接到網(wǎng)絡(luò)102。用戶設(shè)備106可以具有用于顯示信息的顯示屏(未示出)。例如,用戶設(shè)備106可以是個人計算機、膝上型計算機、工作站、大型計算機、諸如無線電話的移動通信設(shè)備、個人數(shù)字助理、蜂窩設(shè)備、膝上型計算機、上網(wǎng)本、平板電腦設(shè)備等??梢允褂闷渌O(shè)備。
[0024]圖2示出了根據(jù)一個實施例的用戶設(shè)備106的功能組件。用戶設(shè)備106包括web瀏覽器210和顯示器270。web瀏覽器210可以是用于經(jīng)由例如互聯(lián)網(wǎng)訪問萬維網(wǎng)網(wǎng)站的傳統(tǒng)web瀏覽器。顯示器270提供對文檔、文本、圖像、軟件應(yīng)用、網(wǎng)頁和其他信息的顯示。例如,可以在顯示器270上顯示文檔216-A的全部或一部分。
[0025]用戶設(shè)備106還包括存儲啟動器應(yīng)用214的存儲器219和多個本地編輯器緩存(第一個本地編輯器緩存215-A、第二個本地編輯器緩存215-B、……、第N個本地編輯器緩存215-N,此后統(tǒng)稱為215)。本地編輯器緩存215中的每個能夠加載、顯示并可能編輯文檔216的特定子集。存儲器219還存儲URL(統(tǒng)一資源定位符)歷史217。URL歷史217是用戶設(shè)備106訪問的多個URL的匯集(compilation),并且可以包括與特定URL相對應(yīng)的網(wǎng)頁被訪問時的日期和時間。URL歷史217還確定當查看網(wǎng)頁時向用戶呈現(xiàn)哪個URL。存儲器219另外存儲數(shù)據(jù)庫220。數(shù)據(jù)庫220可以存儲文檔的集合(文檔216-B、……、文檔216-N)。在一個實施例中,每一個文檔與一個編輯器緩存相對應(yīng),但是每個編輯器緩存可以用于多個文檔。例如,數(shù)據(jù)庫220可以包括本地結(jié)構(gòu)化查詢語言(SQL)存儲設(shè)備、IndexedDB存儲設(shè)備、“window.localstorage”DOM存儲設(shè)備、HTML5沙盒文件系統(tǒng)、這些技術(shù)的組合、或者能夠存儲文檔集合 的任何其他系統(tǒng)。此外,數(shù)據(jù)庫220可以包括應(yīng)用緩存221 (應(yīng)用緩存)。在一個實施例中,應(yīng)用緩存221可以存儲多個本地編輯器緩存215。在一個實施例中,應(yīng)用緩存221可以是如超文本標記語言5 (HTML5)中所定義的AppCache。
[0026]在備選實施例中,在瀏覽器中可以包含應(yīng)用緩存221、URL歷史217和其他組件。在另一備選實施例中,數(shù)據(jù)庫220可以包括應(yīng)用緩存221和其他組件。
[0027]多個本地編輯器緩存215中的每個包括冷啟動編輯器。在圖2描繪的示意性實施例中,第一本地編輯器緩存215-A包括冷啟動編輯器212 ;第二本地編輯器緩存215-B包括冷啟動編輯器213,并且第N本地編輯器緩存215-N包括冷啟動編輯器218。當用戶希望開始編輯文檔并且用戶設(shè)備106處于離線模式中時,將使用冷啟動編輯器。下面詳細描述冷啟動編輯器。
[0028]在一個實施例中,用戶設(shè)備106可以是非公共設(shè)備,例如,雇主向員工提供的個人膝上型計算機或計算機。用戶可能需要在將文檔存儲到其本地設(shè)備上之前給予許可。與用戶設(shè)備106進行通信的文檔服務(wù)104可以執(zhí)行針對新用戶的選擇加入(opt-1n)過程(以在本地存儲它們的文檔之前征求許可)和針對不再希望在特定設(shè)備上離線訪問文檔的用戶的選擇退出(opt-out)過程。因此,僅可信任設(shè)備可以在離線模式中訪問文檔,而不可信設(shè)備將被限制于在線訪問。
[0029]在一個實施例中,編輯器可以根據(jù)網(wǎng)絡(luò)環(huán)境從該本地數(shù)據(jù)庫、從服務(wù)器或者從組合中獲得文檔的內(nèi)容以便查看。
[0030]在備選實施例中,應(yīng)用緩存221可以存儲在瀏覽器210中。
[0031]圖3示出了根據(jù)一個實施例的文檔服務(wù)104的功能組件。文檔服務(wù)104包括處理器375和存儲器325。存儲器325存儲文檔和其他數(shù)據(jù)。例如,由用戶設(shè)備106的用戶創(chuàng)建和/或編輯的文檔216-A可以存儲在存儲器325中,如圖3中所示。在備選實施例中,文檔216-A可以存儲在文檔服務(wù)104的外部。存儲在文檔服務(wù)104中或者文檔服務(wù)104的外部(例如,存儲在不同的服務(wù)器處)的文檔216-A也可以在本地緩存到用戶設(shè)備106上。因此,文檔216-A的副本被存儲在用戶設(shè)備106上。在一個實施例中,當在文檔服務(wù)104上改變文檔216-A時,文檔服務(wù)104向用戶設(shè)備106發(fā)送改變的文檔或者表示該改變的文檔的數(shù)據(jù)。此后,用戶設(shè)備106緩存改變的或更新的文檔。
[0032]存儲器325還可以存儲包括文檔216-A的熱啟動編輯器313、冷啟動編輯器315和啟動器應(yīng)用316。文檔服務(wù)104可以包括圖3中未示出的其他組件。在一個實施例中,文檔服務(wù)104向用戶設(shè)備106提供冷啟動編輯器315、啟動器應(yīng)用316和熱啟動編輯器313。然后,用戶設(shè)備106可以啟動和/或運行冷啟動編輯器315、啟動器應(yīng)用316、以及熱啟動編輯器313中的任意一個。
[0033]假設(shè)用戶使用用戶設(shè)備106來訪問文檔216-A,用戶可以例如基于與文檔相關(guān)聯(lián)的地址(例如,URL)經(jīng)由網(wǎng)站108來訪問文檔。圖4示出了根據(jù)一個實施例在作為網(wǎng)頁408實現(xiàn)的編輯器中顯示的文檔216-A。網(wǎng)頁408是網(wǎng)站108的一部分,并且可以由用戶設(shè)備106的用戶來訪問。因此,在瀏覽器210中經(jīng)由網(wǎng)頁408向使用用戶設(shè)備106的用戶顯示文檔216-A。在示意性實施例中,網(wǎng)站108還顯示與文檔216-A相關(guān)聯(lián)的公共URL410。在圖6中示出了公共地址(或公共URL地址)的示例。本文使用的術(shù)語地址可以是指代位置或針對位置的指針,例如,URL。在一個實施例中,瀏覽器210可以可選擇地在網(wǎng)站108 (或者屏幕上的任何其他位置)中顯示離線/在線指示符430,其中,離線/在線指示符430指示用戶設(shè)備106是否在線并且能夠經(jīng)由網(wǎng)絡(luò)102與文檔服務(wù)104連接。在一個實施例中,所有URL (公共的和私有的)可以處于在HTML web應(yīng)用標準部分6.3中定義的相同起始點。在一個實施例中,文檔管理器可以允許用戶(例如,通過從文檔列表中進行選擇)選擇他們希望查看或編輯的文檔??赡艽嬖趦蓚€版本的文檔管理器,一個供離線使用,另一個供在線使用。圖2中所示的離線文檔管理器222可以構(gòu)造針對應(yīng)用緩存的編輯器應(yīng)用的私有URL,并且可以啟動該私有URL。離線文檔管理器222可以具有與其在線對應(yīng)方的地址不同的地址,例如,DocService[dot]com/offline。文檔管理器的用戶界面可以包括表格。該表格可以包括文檔標題、當在線時最后一次在本地查看文檔并且因此與文檔同步的日期。離線文檔管理器222可以存儲在應(yīng)用緩存中。
[0034]文檔管理器可以顯示文檔列表以使用戶能夠選擇要查看或編輯的文檔。文檔列表可以包括輔信息,例如,所給定的文檔是否保存未傳送的本地改變(如下所述)。在一個實施例中,文檔管理器可以在“應(yīng)用緩存維護”中起作用,因為文檔管理器能夠計算對于啟動文檔中的任意一個或全部所必需的編輯器應(yīng)用緩存集合并且更新這些編輯器應(yīng)用緩存。
[0035]熱啟動編輯器
[0036]當使用用戶設(shè)備106的用戶能夠上網(wǎng)并且經(jīng)由網(wǎng)絡(luò)102訪問存儲在文檔服務(wù)104上的文檔時,用戶設(shè)備106請求運行熱啟動編輯器313。在一個實施例中,熱啟動編輯器313只能在用戶設(shè)備106處于在線狀態(tài)時被啟動。例如,可以通過成功的ping通或?qū)eb的嘗試接入來驗證在線狀態(tài)。熱啟動編輯器313由文檔服務(wù)提供以在請求顯示文檔時在用戶設(shè)備上立即運行,并且可以不被本地存儲。所請求的文檔可以與應(yīng)用代碼合并在一起。在一個實施例中,合并可以允許特定的延遲優(yōu)化。在啟動期間,熱啟動編輯器可以在數(shù)據(jù)庫220中存儲文檔,或者更新已經(jīng)存儲在那里的任何版本。
[0037]例如,當用戶設(shè)備106在在線模式中請求訪問文檔216-A時,從文檔服務(wù)104獲取文檔216-A。在備選實施例中,熱啟動編輯器313還可以使用由用戶設(shè)備106存儲在存儲器219或數(shù)據(jù)庫220中的緩存的圖像、文檔數(shù)據(jù)和/或web字體,而不是從文檔服務(wù)104獲取它們,以在加載文檔216-A時試圖減小加載時間。只要用戶設(shè)備在線,在其上運行的任何熱啟動編輯器就保持與文檔服務(wù)104的連接。這使得它們能夠持續(xù)地將它們正在顯示的文檔和存儲在數(shù)據(jù)庫220中的任何版本與服務(wù)器的文檔和版本進行同步。如果在熱啟動編輯器正在運行時用戶離線,則熱啟動編輯器可以繼續(xù)運行,并且可以允許編輯。在用戶從離線返回以后,在用戶設(shè)備上運行的任何熱啟動編輯器可以與文檔服務(wù)104重新連接,并且可以對它們正在顯示的文檔以及存儲在數(shù)據(jù)庫220中的版本進行同步。
[0038]在熱啟動時(S卩,當使用熱啟動編輯器313時),發(fā)現(xiàn)文檔與編輯器應(yīng)用合并在一起而不必經(jīng)由XMLHttpRequest (XHR)來獲取文檔。該順序也可以是熱啟動的啟動順序的實現(xiàn)。
[0039]冷啟動編輯器
[0040]當使用用戶設(shè)備106的用戶處于離線模式并且嘗試訪問文檔216-A時,用戶設(shè)備106啟動冷啟動編輯器212。冷啟動編輯器212可以包括應(yīng)用緩存,該應(yīng)用緩存可以包括應(yīng)用緩存清單。應(yīng)用緩存清單是網(wǎng)頁使用的所有URL的列表。應(yīng)用緩存清單被提供給諸如瀏覽器210的瀏覽器。應(yīng)用緩存清單中提到的資源被構(gòu)造為不包括文檔216-A,但是它們可以包含用戶特有的數(shù)據(jù)。下面詳細地描述應(yīng)用緩存清單。每一個冷啟動編輯器具有私有URL,該私有URL不會被公布。用戶通常使用公共URL請求其文檔,該公共URL描述只能在線使用的資源。啟動器應(yīng)用214攔截這些請求,創(chuàng)建相應(yīng)的私有地址,并且導(dǎo)航至該私有地址,使得(例如)從第一個本地編輯器緩存215-A取回冷啟動編輯器212并且啟動冷啟動編輯器212。然后,冷啟動編輯器212使用公共地址替換頁面的呈現(xiàn)URL (否則,頁面將顯示私有地址)。然后,看起來一直導(dǎo)航至公共地址。這向用戶提供了熟悉的體驗,并且確保將呈現(xiàn)URL作為例如書簽的任何記錄不包括私有地址。在圖6中示出了私有地址610的示例。在一個實施例中,超文本標記語言5 (HTML5)歷史應(yīng)用編程界面(API)可以用于掩蓋私有地址610。私有地址610包括識別編輯器緩存的組成部分、識別文檔的其他組成部分以及附加信息。在一個實施例中,當啟動冷啟動編輯器212時,冷啟動編輯器212讀取其私有URL并且確定用戶打算打開哪個文檔。然后,冷啟動編輯器212從數(shù)據(jù)庫220讀取用戶記錄,以找到當前的離線用戶(例如,使用用戶設(shè)備106的已經(jīng)選擇加入以允許在本地緩存文檔的用戶)。用戶記錄可以列出有權(quán)訪問相應(yīng)文檔的一個或多個用戶。例如,可以將上述示例中的劇作家作為有權(quán)訪問劇本的用戶來列出。一旦確定用戶被同意訪問本地所存儲的文檔并且給予訪問本地所存儲的文檔的許可時,冷啟動編輯器212從數(shù)據(jù)庫220讀取文檔216-A并且提供對該文檔216-A的顯示。
[0041]在當在線時啟動冷啟動編輯器(S卩,當使用冷啟動編輯器212時)的情況下,可以發(fā)出超文本傳輸協(xié)議(http)請求,冷啟動編輯器接受文檔的標識(B卩,文檔ID)并且返回數(shù)據(jù),該數(shù)據(jù)包括包含文檔的JavaScript對象表示法(JSON)響應(yīng)。該數(shù)據(jù)用于填充本地數(shù)據(jù)庫并且渲染文檔106。
[0042]編輯器應(yīng)用
[0043]在一個實施例中,冷啟動編輯器(例如,冷啟動編輯器212、213和218)以及啟動器應(yīng)用214被適配為從應(yīng)用緩存(例如,應(yīng)用緩存221)運行。在一個實施例中,冷啟動編輯器應(yīng)用的JavaScript (JS)或HTML組成部分均不包括引用特定文檔的任何內(nèi)容,并且能夠在沒有網(wǎng)絡(luò)的情況下引導(dǎo)和運行。在一個實施例中,可能存在用于覆蓋編輯模式和只讀模式二者的單個應(yīng)用;其中,只讀模式禁用編輯特征。在一些情形中,在不同的清單和主輸入URL下將多個編輯器應(yīng)用緩存安裝到用戶設(shè)備106上。每個文檔可以要求打開特定的冷啟動編輯器,該特定的冷啟動編輯器將被存儲在特定的本地編輯器緩存中。為了確定使用哪一個本地編輯器緩存,可以使用很多因素。例如,因素之一可以是文檔類型(例如,文本、電子數(shù)據(jù)表等)。
[0044]本文結(jié)合圖5描述了用戶設(shè)備106如何在離線狀態(tài)中訪問文檔216-A的細節(jié)。
[0045]圖5是描繪根據(jù)一個實施例在離線狀態(tài)中提供對文檔的訪問的方法的流程圖。在步驟5002,當用戶設(shè)備處于離線狀態(tài)時,在用戶設(shè)備處接收到對文檔的請求。該請求包括與遠離用戶設(shè)備的位置相對應(yīng)的公共統(tǒng)一資源定位符。例如,可以當用戶設(shè)備106處于離線狀態(tài)時(例如,由于網(wǎng)絡(luò)臨時或永久中斷或者斷斷續(xù)續(xù)的連接)在用戶設(shè)備106處接收到對文檔216-A的請求。該請求包括與遠離用戶設(shè)備106的位置相對應(yīng)的公共URL410。例如,公共URL410可以是公共地址605,公共地址605可以指向存儲在文檔服務(wù)104上的文檔216-A的位置。在一個實施例中,假設(shè)劇作家正在乘火車去米蘭旅行。(可能或可能不知曉他的設(shè)備離線的)劇作家希望訪問他的劇本。他通過點擊、打字或者以其他方式訪問與存儲他的劇本的遠端位置相對應(yīng)的公共URL來發(fā)送對劇本的請求。
[0046]在一個實施例中,可以經(jīng)由網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))來訪問遠離用戶設(shè)備的位置。例如,位置可以指向在文檔服務(wù)104上存儲文檔216-A并且可以經(jīng)由網(wǎng)絡(luò)102 (B卩,互聯(lián)網(wǎng))訪問該位置。在一個實施例中,文檔216-A被存儲在用戶設(shè)備106上的數(shù)據(jù)庫220處。
[0047]在步驟5004,啟動攔截請求的應(yīng)用。當用戶設(shè)備106在離線模式時,啟動器應(yīng)用214攔截包括公共URL410的請求。在一個實施例中,啟動器應(yīng)用214被啟動以攔截可以是公共地址605的公共URL410。在一個實施例中,應(yīng)用緩存221可以使啟動器應(yīng)用214攔截公共URL。因此,啟動攔截公共統(tǒng)一資源定位符的應(yīng)用還包括:啟動應(yīng)用緩存。例如,啟動啟動器應(yīng)用214還包括:啟動應(yīng)用緩存,當冷啟動編輯器應(yīng)用212與文檔216-A相關(guān)聯(lián)時,應(yīng)用緩存選擇冷啟動編輯器應(yīng)用212。
[0048]在步驟5006,基于公共統(tǒng)一資源定位符來選擇多個本地緩存之一,其中,多個本地緩存中的每個本地緩存與私有統(tǒng)一資源定位符相關(guān)聯(lián)。因此,基于公共URL410 (可以是公共地址605)從多個本地編輯器緩存215中選擇第二本地編輯器緩存215-B。多個本地編輯器緩存215中的每個與至少一個私有URL (或者私有地址,例如,私有地址610)相關(guān)聯(lián)。
[0049]在步驟5008,經(jīng)由相應(yīng)的私有統(tǒng)一資源定位符來訪問所選擇的本地緩存以取回編輯器。因此,經(jīng)由相應(yīng)的私有地址610來訪問第二個本地編輯器緩存215-B以取回冷啟動編輯器213。在一個實施例中,私有地址610包括具有本地緩存的副本的互聯(lián)網(wǎng)頁面的地址,當離線時,它確實可用。一旦已經(jīng)啟動冷啟動編輯器,它就從數(shù)據(jù)庫220取回文檔216-A并且提供文檔的顯示。
[0050]在步驟5010,修改統(tǒng)一資源定位符歷史以使用公共統(tǒng)一資源定位符來替換私有統(tǒng)一資源定位符。參照圖2,修改URL歷史217以使用公共地址605(例如,公共URL410)來替換私有地址610 (或私有URL)。通過這種方式,私有地址610 (可能不能被用戶查看)被屏蔽,并且在URL歷史217中,看起來僅公共地址605而不是私有地址610曾被訪問。因此,URL歷史217不包括關(guān)于在離線模式曾訪問一個或多個私有URL以獲得文檔的任何指示。在一個實施例中,當劇作家查看URL歷史217時,看起來他已經(jīng)訪問公共地址605并且不存在關(guān)于他已經(jīng)訪問私有地址610以訪問文檔216-A的緩存副本的指示。在一個實施例中,通過以編程的方式處理瀏覽器歷史來執(zhí)行屏蔽。這種屏蔽影響當正在查看編輯器頁面時編輯器頁面的呈現(xiàn)URL以及歷史。
[0051]在步驟5012,經(jīng)由冷啟動編輯器向用戶提供文檔。經(jīng)由冷啟動編輯器213向使用用戶設(shè)備106的用戶提供文檔216-A。因此,即使劇作家的設(shè)備處于離線狀態(tài),劇作家仍然可以訪問文檔216-A,這是因為在數(shù)據(jù)庫220中本地緩存了文檔216-A的本地副本。
[0052]在一個實施例中,啟動器應(yīng)用214響應(yīng)于用戶的導(dǎo)航操作而啟動,讀取用戶已經(jīng)輸入的URL,并且確定是否存在對文檔的請求。啟動器應(yīng)用214進行檢查以確定文檔是否在用戶設(shè)備處的本地存儲設(shè)備中。如果發(fā)現(xiàn)文檔在本地存儲設(shè)備中,則啟動器應(yīng)用214可以了解文檔類型以確定可以使用哪一個編輯器緩存。例如,如果文檔是電子數(shù)據(jù)表文檔,則可以使用包含電子數(shù)據(jù)表應(yīng)用的編輯器緩存。然后,啟動器應(yīng)用214構(gòu)造針對所選擇的編輯器緩存的私有URL并且啟動私有URL。
[0053]在一個實施例中,從存儲設(shè)備取回與文檔和用戶設(shè)備有關(guān)的信息。文檔服務(wù)104從存儲設(shè)備和/或數(shù)據(jù)庫220取回與文檔216-A和用戶設(shè)備106有關(guān)的信息。
[0054]下文詳細地描述關(guān)于啟動器應(yīng)用214如何實現(xiàn)對文檔216-A的選擇的細節(jié)。
[0055]啟動器應(yīng)用
[0056]啟動器應(yīng)用214(例如,應(yīng)用緩存的啟動器應(yīng)用)經(jīng)由其公共URL攔截對文檔216-A的請求。啟動器應(yīng)用214啟動正確版本的相應(yīng)冷啟動編輯器以向用戶提供文檔216-A的顯示。當冷啟動編輯器212與文檔216-A相關(guān)聯(lián)時,啟動器應(yīng)用214構(gòu)造冷啟動編輯器212的URL,這啟動文檔216-A和所選擇的用戶所需的冷啟動編輯器版本。一旦已經(jīng)啟動了冷啟動編輯器212,冷啟動編輯器212就可以使用HTML5歷史應(yīng)用編程界面(API)來將其自身呈現(xiàn)的URL修改為針對熱啟動編輯器313的URL。
[0057]啟動器應(yīng)用214通過使用應(yīng)用緩存清單回退輸入來攔截當離線時對使用DocService [dot] com下的URL的嘗試。通過使用文檔216-A的私有地址610 (其存儲在用戶設(shè)備106上的本地編輯器緩存215-B中),啟動器應(yīng)用214可以使用冷啟動編輯器212來啟動文檔216-A。此外,可以由啟動器來攔截在線文檔管理器的URL,并且離線文檔管理器222在適當時啟動。
[0058]在一個實施例中,文檔管理器應(yīng)用可以給出文檔URL的列表。在一個實施例中,文檔管理器的離線變體可以是啟動器應(yīng)用214的一部分。在如圖2中所示的備選實施例中,離線文檔管理器222可以與啟動器應(yīng)用214分離,并且當攔截到對導(dǎo)航至在線文檔管理器的URL的嘗試時,可以由啟動器應(yīng)用214啟動離線文檔管理器222。當使用處于離線狀態(tài)的用戶設(shè)備106的用戶做出對文檔和/或相關(guān)聯(lián)的文檔URL的選擇時,離線文檔管理器222選擇并啟動與該文檔相關(guān)聯(lián)的適當?shù)睦鋯泳庉嬈?。離線文檔管理器222還可以在啟動器應(yīng)用214的幫助下或者獨立地進行該操作。
[0059]現(xiàn)在參照圖6,圖6示出了與文檔相關(guān)聯(lián)的公共地址和私有地址的示例。用于訪問文檔216-A的公共地址605的示例是DocService [dot] com/document/ZZ。用于(在本地機器、用戶設(shè)備106處)訪問文檔216-A的私有地址610的示例是DocService[dot]com/offline/document?cacheid=XX#ID=ZZ。在一個實施例中,出現(xiàn)在“uc”之后的“XX”是用戶的特征字符串。在一個實施例中,文檔ID出現(xiàn)在“#ID=”之后。在一個實施例中,在URL的“段標識符組成部分”中編碼的文檔ID和任何其他信息可能不在應(yīng)用緩存選擇中起作用。取而代之地,它由冷啟動編輯器212在啟動時讀取以確定從多個本地緩存編輯器215加載哪個文檔(例如,文檔216-A、文檔216-B、……、文檔216-N)和可能的其他信息?!皍c”字符串(和可選擇的URL的一些其他部分)包括用于使文檔服務(wù)104確定當在在線模式時向哪一個二進制提供服務(wù)的信息。
[0060]將在本文中參照圖7來描述關(guān)于訪問文檔的細節(jié)。圖7是描繪根據(jù)一個實施例訪問文檔的方法的流程圖。在步驟7002,流程圖或例程開始。在步驟7004,請求包括公共URL的文檔。例如,使用用戶設(shè)備106的用戶通過打字、選擇、點擊或以其他方式訪問與文檔216-A相關(guān)聯(lián)的公共URL410 (例如,公共地址605)來請求文檔216-A。
[0061]在步驟7006,確定用戶設(shè)備是否在線。用戶設(shè)備106通過多種方式中的任意一種來確定它是否處于在線狀態(tài)。如果確定用戶設(shè)備106處于在線狀態(tài),則流程圖前進至步驟7024。在步驟7024,公共URL用于從文檔服務(wù)得到包括文檔的熱啟動編輯器。用戶設(shè)備106使用公共URL410來從文檔服務(wù)104取回包括文檔216-A的熱啟動編輯器,并且當熱啟動編輯器啟動并且文檔被顯示時,流程圖然后在步驟7022結(jié)束。
[0062]響應(yīng)于在步驟7006中確定用戶設(shè)備106不處于在線狀態(tài),流程圖或例程前進至步驟7008。例如,瀏覽器確定用戶設(shè)備106處于離線狀態(tài)或模式。
[0063]在步驟7008,啟動器應(yīng)用檢查公共URL以確定公共URL是否包括針對文檔的鏈接。如果包括,則提取文檔ID。當啟動器應(yīng)用214攔截到對文檔216-A的請求時,啟動器應(yīng)用214檢查公共URL4 10 (例如,點擊、選擇、命令、或者其他訪問請求)以找到要提取的文檔ID。在一個實施例中,可以從公共URL410 (其可以是公共地址605)提取或者通過其他方式獲得文檔ID。
[0064]在步驟7010,查詢數(shù)據(jù)庫以找出與文檔相關(guān)聯(lián)的冷啟動編輯器。在一個實施例中,查詢數(shù)據(jù)庫220以找出與文檔216-A相關(guān)聯(lián)的冷啟動編輯器。當選擇編輯器二進制時,可以考慮與用戶和文檔相關(guān)聯(lián)的因素。
[0065]在步驟7012,查詢數(shù)據(jù)庫以查明影響二進制選擇的用戶特征。在一個實施例中,查詢數(shù)據(jù)庫220以查明影響二進制選擇的用戶特征。
[0066]在步驟7014,構(gòu)造包含來自步驟7008、7010和7012的信息的私有URL。例如,可以以圖6所描繪的形式來構(gòu)造私有地址610。
[0067]在步驟7016,啟動器應(yīng)用使瀏覽器導(dǎo)航至私有URL。瀏覽器210導(dǎo)航至私有地址610。
[0068]在步驟7018,HTML5歷史API用于使用私有URL的等同公共URL來替換私有URL。例如,如上所述,HTML5歷史API用于使用公共地址605來替換私有地址610。
[0069]在步驟7020,從本地數(shù)據(jù)庫加載文檔并且顯示文檔。從數(shù)據(jù)庫220加載文檔216-A(和與文檔216-A相關(guān)聯(lián)的數(shù)據(jù))并且向使用用戶設(shè)備106的用戶顯示文檔216-A (和與文檔216-A相關(guān)聯(lián)的數(shù)據(jù))。然后,流程圖前進至步驟7022中的結(jié)束。
[0070]在備選實施例中,首先,冷啟動編輯器嘗試聯(lián)系文檔服務(wù)104以加載文檔216-A。如果該步驟失敗,則從本地數(shù)據(jù)庫220加載文檔216-A。如上所述,冷啟動編輯器可以不包括與應(yīng)用合并在一起的文檔版本。
[0071]因為僅當用戶設(shè)備106用于在處于離線模式時啟動文檔時才使用冷啟動編輯器212,因此冷啟動編輯器212可以具有與熱啟動編輯器313不同的啟動過程。
[0072]當用戶不能訪問互聯(lián)網(wǎng)并且不能上網(wǎng)(例如,由于網(wǎng)絡(luò)臨時或永久中斷、或者斷斷續(xù)續(xù)的連接)時,用戶可以經(jīng)由在其數(shù)據(jù)庫220中包含正確的文檔數(shù)據(jù)并且在其編輯器緩存中包含正確的冷啟動編輯器的任何設(shè)備(例如,用戶設(shè)備106)來訪問文檔216-A。
[0073]批暈同步器
[0074]批量同步器在無需打開編輯器的情況下同步文檔。在一個實施例中,當用戶設(shè)備106在線時使用批量同步器。在一個實施例中,批量同步器可以采用所有編輯器和文檔管理器可以連接到的共享工作器的形式。批量同步器可以是應(yīng)用緩存的。使編輯器當前打開的文檔可以不被該工作器同步,并且它可以在協(xié)調(diào)對使相同的文檔打開的多個編輯器的數(shù)據(jù)庫訪問中起作用。被選擇用于離線訪問并且不使編輯器打開的文檔可以由該部件定期地同步。用戶的服務(wù)器所存儲的文檔的、由批量同步器選擇以存儲在客戶端上的子集可以取決于多個因素。這些因素可以包括手動用戶選擇以及基于文檔內(nèi)容和用戶活動的自動化確定。例如,可以存儲最近打開的文檔。文檔可以進入或離開該離線子集,這需要批量同步器移除現(xiàn)有的本地存儲的文檔并且添加新的文檔以及更新現(xiàn)有的文檔。批量同步器可以僅在文檔管理器或編輯器打開時才保持活動,或者它可以永久地保持活動。
[0075]存儲和傳送未保存的改變
[0076]當離線時對文檔進行的改變可以被存儲在與用戶設(shè)備106處的約定變化(即,其是當處于在線模式時做出的并且被傳送到服務(wù)器)不同的數(shù)據(jù)結(jié)構(gòu)中??梢栽诋a(chǎn)生改變的會話回到在線時或者在用戶設(shè)備106在存在離線改變時啟動在線時對改變進行傳送。在該情況下,可以由批量同步器或者由被打開以編輯該文檔的編輯器會話來傳送離線改變。一旦該傳送完成,就可以從單獨的客戶端存儲設(shè)備中移除這些改變,并且客戶端的存儲的文檔版本被更新以包括這些改變。
[0077]當離線時編輯:文檔
[0078]在一個實施例中,熱啟動文檔可以為可寫入版本和只讀版本的不同web應(yīng)用提供服務(wù)。離線冷啟動編輯器212 (如上所述)能夠在只讀模式或可寫入模式中顯示自身。只讀模式是在所有編輯動作被禁用并且與編輯有關(guān)的控制被禁用或者未被顯示的情況下的可寫入模式。
[0079]在一個實施例中,文檔編輯器持續(xù)地嘗試以建立與文檔服務(wù)104的網(wǎng)絡(luò)連接。如果通信被建立,則進行嘗試以獲取服務(wù)器已知的對文檔的任何更新,并且向服務(wù)器傳送本地進行的改變。如果由于瀏覽器沒有有效的授權(quán)憑證因此通信嘗試受阻,則可以顯示用戶界面從而請求憑證。
[0080]在可寫入模式中,可以對文檔216-A進行改變?,F(xiàn)在假設(shè)劇作家希望在乘火車去米蘭時將第四幕添加到他的劇本中。對劇本文檔進行的任何改變被存儲在本地,并且當劇作家的設(shè)備能夠返回上網(wǎng)時,存儲在他的設(shè)備上的所有改變被發(fā)送到文檔服務(wù)104。劇作家進行的改變可以存儲在與文檔相同的數(shù)據(jù)結(jié)構(gòu)中。該結(jié)構(gòu)將包括關(guān)于是否存儲任何未傳送的本地改變的指示。在備選實施例中,未傳送的改變可以存儲在單獨的數(shù)據(jù)結(jié)構(gòu)中。
[0081]在一個實施例中,存儲在用戶設(shè)備106處對文檔216-A進行的編輯。例如,如上所述,存儲未傳送的本地改變。當用戶設(shè)備106與文檔服務(wù)104連接時,改變被發(fā)送到服務(wù)器(即,文檔服務(wù)104)。
[0082]在一個實施例中,用戶設(shè)備106向服務(wù)器(即,文檔服務(wù)104)發(fā)送輪詢對文檔216-A的更新的請求。通過這種方式,本地存儲在用戶設(shè)備106上的文檔216-A與存儲在文檔服務(wù)104上的文檔216-A同步,并且合作者或其他用戶進行的任何改變由用戶設(shè)備106接收。響應(yīng)于向服務(wù)器輪詢對文檔216-A的更新,用戶設(shè)備106接收更新。
[0083]當用戶在用戶設(shè)備106處于離線模式時選擇文檔216-A時,應(yīng)用緩存221確定多個本地編輯器緩存215中的哪個應(yīng)當用于打開文檔216-A??梢曰谂c用戶和文檔216-A相關(guān)聯(lián)的特征的組合來進行該確定。
[0084]在各個實施例中,本文所描述的方法步驟(包括圖5和圖7中所描述的方法步驟)可以以與所描述和示出的特定順序不同的順序來執(zhí)行。在其他實施例中,可以提供其他步驟,或者可以從所描述的方法中消除步驟。
[0085]可以使用數(shù)字電路或者使用利用公知的計算機處理器、存儲器單元、存儲設(shè)備、計算機軟件和其他組件的一個或多個計算機來執(zhí)行本文所描述的系統(tǒng)、裝置和方法。通常,計算機包括用于執(zhí)行指令的處理器和用于存儲指令和數(shù)據(jù)的一個或多個存儲器。計算機還可以包括或者耦合到一個或多個大容量存儲設(shè)備,例如,一個或多個磁盤、內(nèi)部硬盤和可拆卸磁盤、磁光盤、光盤等。
[0086]可以使用以客戶端-服務(wù)器關(guān)系操作的計算機來實現(xiàn)本文所描述的系統(tǒng)、裝置和方法。通常,在這種系統(tǒng)中,客戶端計算機位于服務(wù)器計算機遠端,并且經(jīng)由網(wǎng)絡(luò)進行交互??梢酝ㄟ^在相應(yīng)的客戶端和服務(wù)器計算機上運行的計算機程序來定義和控制客戶端-服務(wù)器關(guān)系。
[0087]可以在基于網(wǎng)絡(luò)的云計算系統(tǒng)中使用本文所描述的系統(tǒng)、裝置和方法。在這種基于網(wǎng)絡(luò)的云計算系統(tǒng)中,連接到網(wǎng)絡(luò)的服務(wù)器或另一處理器經(jīng)由網(wǎng)絡(luò)與一個或多個客戶端計算機進行通信??蛻舳擞嬎銠C可以經(jīng)由駐留在例如客戶端計算機上并且在客戶端計算機上運行的網(wǎng)絡(luò)瀏覽器應(yīng)用與服務(wù)器進行通信??蛻舳擞嬎銠C可以在服務(wù)器上存儲數(shù)據(jù)并且經(jīng)由網(wǎng)絡(luò)訪問該數(shù)據(jù)??蛻舳擞嬎銠C可以經(jīng)由網(wǎng)絡(luò)向服務(wù)器發(fā)送對數(shù)據(jù)的請求、或者對在線服務(wù)的請求。服務(wù)器可以執(zhí)行所請求的服務(wù),并且向客戶端計算機提供數(shù)據(jù)。服務(wù)器還可以發(fā)送被適配為使客戶端計算機執(zhí)行指定的功能(例如,執(zhí)行計算、在屏幕上顯示指定的數(shù)據(jù)等)的數(shù)據(jù)。例如,服務(wù)器可以發(fā)送被適配為使客戶端計算機執(zhí)行本文所描述的方法步驟(包括圖5和圖7的步驟中的一個或多個步驟)中的一個或多個的請求。本文所描述的方法的某些步驟(包括圖5和圖7的步驟中的一個或多個步驟)可以由服務(wù)器或者由基于網(wǎng)絡(luò)的云計算系統(tǒng)中的另一處理器來執(zhí)行。本文所描述的方法的某些步驟(包括圖5和圖7的步驟中的一個或多個步驟)可以由基于網(wǎng)絡(luò)的云計算系統(tǒng)中的客戶端計算機來執(zhí)行。本文所描述的方法的步驟(包括圖5和圖7的步驟中的一個或多個步驟)可以由服務(wù)器和/或由基于網(wǎng)絡(luò)的云計算系統(tǒng)中的客戶端計算機以任何組合來執(zhí)行。
[0088]可以使用有形地具體實現(xiàn)在信息載體(例如,非瞬時機器可讀存儲設(shè)備)中以由可編程處理器來執(zhí)行的計算機程序產(chǎn)品來實現(xiàn)本文所描述的系統(tǒng)、裝置和方法;并且可以使用可以由這種處理器執(zhí)行的一個或多個計算機程序來執(zhí)行本文所描述的方法(包括圖5和圖7的步驟中的一個或多個步驟)。計算機程序是可以在計算機中直接或間接使用以執(zhí)行特定活動或者引起特定結(jié)果的計算機程序指令集合??梢杂萌魏涡问降木幊陶Z言(包括編譯或解釋語言)來寫計算機程序,并且可以以任意形式部署計算機程序,包括作為單獨的程序或者作為適合于在計算環(huán)境中使用的模塊、組件、子例程或其他單元。
[0089]在圖8中示出了可以用于執(zhí)行本文所描述的系統(tǒng)、裝置和方法的示例性計算機的高層次框圖。計算機800包括處理器801,處理器801可操作地耦合到數(shù)據(jù)存儲設(shè)備802和存儲器803。處理器801通過執(zhí)行定義這些操作的計算機程序指令來控制計算機800的整體操作。計算機程序指令可以存儲在數(shù)據(jù)存儲設(shè)備802或者其他計算機可讀介質(zhì)中,并且當期望執(zhí)行計算機程序指令時,被加載到存儲器803中。因此,圖5和圖7的方法步驟可以由存儲在存儲器803和/或數(shù)據(jù)存儲設(shè)備802中的計算機程序指令來定義并且由執(zhí)行計算機程序指令的處理器801來控制。例如,計算機程序指令可以實現(xiàn)為由本領(lǐng)域技術(shù)人員編程以執(zhí)行圖5和圖7的方法步驟定義的算法的計算機可執(zhí)行代碼。因此,通過執(zhí)行計算機程序指令,處理器801執(zhí)行由圖5和圖7的方法步驟定義的算法。計算機800還包括用于經(jīng)由網(wǎng)絡(luò)與其他設(shè)備進行通信的一個或多個網(wǎng)絡(luò)接口 804。計算機800還包括能夠?qū)崿F(xiàn)與計算機800的用戶交互的一個或多個輸入/輸出設(shè)備805 (例如,顯不器、鍵盤、鼠標、揚聲器、按鈕等)。
[0090]處理器801可以包括通用微處理器和專用微處理器,并且可以是單個處理器或計算機800的多個處理器之一。處理器801可以包括例如一個或多個中央處理單元(CPU)。處理器801、數(shù)據(jù)存儲設(shè)備802和/或存儲器803可以包括以下各項、由以下各項補充或者并入到以下各項中:一個或多個專用集成電路(ASIC)和/或一個或多個現(xiàn)場可編程門陣列(FPGA)0
[0091]數(shù)據(jù)存儲設(shè)備802和存儲器803均包括有形的非瞬時計算機可讀存儲介質(zhì)。數(shù)據(jù)存儲設(shè)備802和存儲器803均可以包括高速隨機存取存儲器,例如,動態(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM)、雙倍數(shù)據(jù)速率同步動態(tài)隨機存取存儲器(DDR RAM)、或者其他隨機存取固態(tài)存儲器設(shè)備,并且可以包括非易失性存儲器,例如,一個或多個磁盤存儲設(shè)備(例如,內(nèi)部硬盤和可拆卸磁盤)、磁光盤存儲設(shè)備、光盤存儲設(shè)備、閃存存儲器設(shè)備、半導(dǎo)體存儲器設(shè)備(例如,可擦除可編程只讀存儲器(EPR0M)、電可擦除可編程只讀存儲器(EEPR0M))、緊致光盤只讀存儲器(⑶-ROM)、、數(shù)字多功能盤壓縮光盤只讀存儲器(DVD-ROM)盤、或者其他非易失性固態(tài)存儲設(shè)備。
[0092]輸入/輸出設(shè)備805可以包括外圍設(shè)備,例如,打印機、掃描儀、顯示屏等。例如,輸入/輸出設(shè)備805可以包括用于向用戶顯示信息的顯示設(shè)備(例如,陰極射線管(CRT)或液晶顯示器(LCD)監(jiān)控器)、鍵盤、以及用戶可以使用以向計算機800提供輸入的定點設(shè)備(例如,鼠標或軌跡球)。
[0093]可以使用諸如計算機800等的計算機來實現(xiàn)本文所討論的系統(tǒng)和裝置中的任意一個或全部,其包括文檔服務(wù)104、用戶設(shè)備106、網(wǎng)站108及其組件,所述組件包括:web瀏覽器210、顯示器270、處理器250、存儲器219、處理器375和存儲器325。
[0094]本領(lǐng)域技術(shù)人員將認識到,實際的計算機或計算機系統(tǒng)的實現(xiàn)可以具有其他結(jié)構(gòu)并且還可以包含其他組件,并且圖8是用于說明的目的的這種計算機的組件中的一些組件的聞層次表不。
[0095]前面的詳細描述應(yīng)被理解為在每一個方面都是說明性和示例性的,而不是限制性的,并且本文公開的本發(fā)明的范圍不應(yīng)根據(jù)詳細描述來確定,而是如根據(jù)專利法準許的全部范圍所解釋的權(quán)利要求來確定。將理解的是,本文所示和描述的實施例僅說明本發(fā)明的原理并且本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的范圍和精神的前提下執(zhí)行各種修改。本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的范圍和精神的前提下實現(xiàn)各種其他特征組合。
【權(quán)利要求】
1.一種方法,包括: 當用戶設(shè)備處于離線狀態(tài)時在所述用戶設(shè)備處接收對文檔的請求,所述請求包括與遠離所述用戶設(shè)備的位置相對應(yīng)的公共統(tǒng)一資源定位符; 啟動攔截所述請求的應(yīng)用; 基于所述公共統(tǒng)一資源定位符來選擇多個本地緩存之一,所述多個本地緩存中的每個本地緩存與私有統(tǒng)一資源定位符相關(guān)聯(lián); 經(jīng)由相應(yīng)的私有統(tǒng)一資源定位符來訪問所選擇的本地緩存以取回編輯器; 修改統(tǒng)一資源定位符歷史以使用所述公共統(tǒng)一資源定位符替換所述私有統(tǒng)一資源定位符;以及 經(jīng)由所述編輯器向所述用戶設(shè)備提供所述文檔。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述私有統(tǒng)一資源定位符包括互聯(lián)網(wǎng)頁面的地址,所述互聯(lián)網(wǎng)頁面具有持久的本地所緩存的副本。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述文檔被存儲在所述用戶設(shè)備上的數(shù)據(jù)庫處。
4.根據(jù)權(quán)利 要求3所述的方法,還包括: 響應(yīng)于確定所述用戶設(shè)備處于在線狀態(tài),啟動第二編輯器應(yīng)用,所述第二編輯器應(yīng)用被配置為與在遠離所述用戶設(shè)備的所述位置處的服務(wù)器進行通信。
5.根據(jù)權(quán)利要求4所述的方法,還包括: 在所述用戶設(shè)備處存儲對所述文檔進行的編輯;以及 向所述服務(wù)器發(fā)送所述改變。
6.根據(jù)權(quán)利要求4所述的方法,還包括: 向所述服務(wù)器發(fā)送輪詢對所述文檔的更新的請求;以及 響應(yīng)于向所述服務(wù)器輪詢對所述文檔的更新,接收所述更新。
7.根據(jù)權(quán)利要求1所述的方法,還包括: 從存儲設(shè)備取回與所述文檔和所述用戶設(shè)備有關(guān)的信息。
8.一種存儲有計算機程序指令的非瞬時計算機可讀介質(zhì),當在處理器上執(zhí)行所述計算機程序指令時,所述計算機程序指令使所述處理器執(zhí)行包括以下步驟的方法: 當用戶設(shè)備處于離線狀態(tài)時在所述用戶設(shè)備處接收對文檔的請求,所述請求包括與遠離所述用戶設(shè)備的位置相對應(yīng)的公共統(tǒng)一資源定位符; 啟動攔截所述請求的應(yīng)用; 基于所述公共統(tǒng)一資源定位符來選擇多個本地緩存之一,所述多個本地緩存中的每個本地緩存與私有統(tǒng)一資源定位符相關(guān)聯(lián); 經(jīng)由相應(yīng)的私有統(tǒng)一資源定位符來訪問所選擇的本地緩存以取回編輯器; 修改統(tǒng)一資源定位符歷史以使用所述公共統(tǒng)一資源定位符替換所述私有統(tǒng)一資源定位符;以及 經(jīng)由所述編輯器向所述用戶設(shè)備提供所述文檔。
9.根據(jù)權(quán)利要求8所述的非瞬時計算機可讀介質(zhì),其中,所述私有統(tǒng)一資源定位符包括互聯(lián)網(wǎng)頁面的地址,所述互聯(lián)網(wǎng)頁面具有持久的本地所緩存的副本。
10.根據(jù)權(quán)利要求8所述的非瞬時計算機可讀介質(zhì),其中,能夠經(jīng)由網(wǎng)絡(luò)訪問遠離所述用戶設(shè)備的所述位置。
11.根據(jù)權(quán)利要求8所述的非瞬時計算機可讀介質(zhì),其中,所述文檔被存儲在所述用戶設(shè)備上的數(shù)據(jù)庫處。
12.根據(jù)權(quán)利要求9所述的非瞬時計算機可讀介質(zhì),還包括定義以下步驟的指令: 響應(yīng)于確定所述用戶設(shè)備處于在線狀態(tài),啟動第二編輯器應(yīng)用,所述第二編輯器應(yīng)用被配置為與在遠離所述用戶設(shè)備的所述位置處的服務(wù)器進行通信。
13.根據(jù)權(quán)利要求12所述的非瞬時計算機可讀介質(zhì),還包括定義以下步驟的指令: 在所述用戶設(shè)備處存儲對所述文檔進行的編輯;以及 向所述服務(wù)器發(fā)送所述改變。
14.根據(jù)權(quán)利要求11所述的非瞬時計算機可讀介質(zhì),還包括定義以下步驟的指令: 向所述服務(wù)器發(fā)送輪詢對所述文檔的更新的請求,以及 響應(yīng)于向所述服務(wù)器輪詢對所述文檔的更新,接收所述更新。
15.根據(jù)權(quán)利要求11所述的非瞬時計算機可讀介質(zhì),還包括定義以下步驟的指令: 從存儲設(shè)備取回與所述文檔和所述用戶設(shè)備有關(guān)的信息。
【文檔編號】G06F17/30GK103765419SQ201280041938
【公開日】2014年4月30日 申請日期:2012年8月17日 優(yōu)先權(quán)日:2011年8月29日
【發(fā)明者】大衛(wèi)·巴雷特-卡恩, 尼古拉斯·亞歷山大·可可瑪 申請人:谷歌公司