數(shù)據(jù)被客戶端102需要時,高速緩存代理具有這樣的立即可訪問的數(shù)據(jù)而不需要從諸如應用服務器104之類的另一源獲得數(shù)據(jù)。如下面討論的,來自于客戶端102的請求可以被路由到高速緩存代理106以使得高速緩存代理106確定它是否具有響應于請求的數(shù)據(jù)并當可用時提供這樣的數(shù)據(jù)。
[0030]應用數(shù)據(jù)可以被存儲在應用服務器104可訪問的一個或多個數(shù)據(jù)存儲器110中。為高速緩存數(shù)據(jù),在這樣的數(shù)據(jù)被一個或多個客戶端102需要之前,高速緩存代理106可以將對于應用數(shù)據(jù)的請求提交到應用服務器104。應用服務器可以通過訪問來自于數(shù)據(jù)存儲器110的應用數(shù)據(jù)并且向可以在高速緩存112中存儲訪問的數(shù)據(jù)的高速緩存代理106提供數(shù)據(jù)來對這樣的請求做出響應。當客戶端102做出對于被存儲在高速緩存112中的應用數(shù)據(jù)的請求時,高速緩存代理106可以從高速緩存112獲得應用數(shù)據(jù)并且將它提供到客戶端102。注意,如果這樣的數(shù)據(jù)不在高速緩存112中,則高速緩存代理可以向應用服務器104提交請求,其可以獲得來自于數(shù)據(jù)存儲器110的數(shù)據(jù)并且向高速緩存代理106提供數(shù)據(jù)以提供給做出請求的客戶端102。
[0031]為了智能地確定哪些數(shù)據(jù)要存儲在高速緩存112中,高速緩存代理可以利用諸如下面更詳細地描述的關于應用的一個或多個用戶的數(shù)據(jù)。這樣的用戶數(shù)據(jù)可以被存儲在數(shù)據(jù)存儲器108中。如將更詳細地描述的,高速緩存代理可以為客戶端102的特定使用存儲與應用有關的用戶的過去活動的信息并且使用該信息以便確定哪些應用數(shù)據(jù)很可能要被客戶端訪問。數(shù)據(jù)存儲器108中的數(shù)據(jù)也可以包括關于其他用戶的數(shù)據(jù)以便增強高速緩存決定的準確度。例如,客戶端102的用戶可以具有某些特性。高速緩存代理可以訪問關于具有類似特性的其他用戶的過去行為的數(shù)據(jù)以便確定哪些數(shù)據(jù)要存儲在高速緩存112中。作為說明性的示例,客戶端102的用戶可以具有機構(gòu)內(nèi)的特定角色。高速緩存代理可以利用數(shù)據(jù)存儲器108中的關于具有相同角色的其他用戶的過去行為的數(shù)據(jù)。
[0032]應當注意在圖1中示出的環(huán)境100分為單獨組件以用于例示并且許多變化被認為在本公開的范圍之內(nèi)。例如,圖1中示出的環(huán)境顯示與高速緩存代理106和應用服務器104分離的客戶端。某些實施例可以采用不同的配置。例如,圖1中的環(huán)境的各個組件可以被組合。例如,描述為由高速緩存代理106執(zhí)行的活動可以由一個或多個客戶端102執(zhí)行。即,在一些實施例中客戶端102可以被配置為做出他們自己的高速緩存決定并且可以相應地高速緩存它們自己的應用數(shù)據(jù)??蛻舳?02可以例如在方便時高速緩存應用數(shù)據(jù),諸如當客戶端的計算資源是空閑的或至少不被完全使用時。在這樣的實施例中,當客戶端做出它們自己的高速緩存決定時,用于做出此類決定的用戶數(shù)據(jù)可以被本地地存儲在客戶端102或遠程存儲在諸如通過網(wǎng)絡服務或另一個適當?shù)姆绞娇稍L問的中心儲存庫中。
[0033]作為在本公開范圍內(nèi)考慮的變化的另一個示例,由高速緩存代理106和應用服務器104執(zhí)行的動作可以由單個設備執(zhí)行。S卩,應用服務器104可以做出對于應用服務器104的一個或多個客戶端的高速緩存決定。許多其他變化也被考慮在本公開的范圍內(nèi)。例如,圖1示出了應用服務器104,執(zhí)行用于客戶端102的應用。但是,客戶端本身可以執(zhí)行應用。高速緩存決定可以由客戶端102或由諸如在圖1中示出的單獨的計算設備組成。除這里專門地描述的變化之外,在本公開范圍內(nèi)的其他變化可以包括與在圖1的環(huán)境100中示出的相比較包括更多組件的環(huán)境。
[0034]在實施例中,應用具有多個可能的狀態(tài)。例如,基于網(wǎng)絡的應用可以包括許多頁面。用戶可以通過從頁面導航到頁面與應用交互。每個頁面可以對應于應用的一個或多個狀態(tài)。例如,在首先導航到應用的頁面中時,頁面可以具有特定形式。形式可以利用應用被個性化到用戶,雖然它可以具有為大部分用戶所共用的一般特性,諸如共用格式。應用的頁面的狀態(tài)可以根據(jù)用戶的各個活動改變。例如,用戶可以使用應用做出關于應用可訪問的數(shù)據(jù)的各種查詢。例如,人力資源應用的頁面可以允許用戶在應用的頁面上觀看機構(gòu)內(nèi)的雇員的各種職業(yè)記錄。前述的雇員可以導航到應用的不同頁面以執(zhí)行其他活動以便生成關于機構(gòu)的人力資源數(shù)據(jù)等的報告。
[0035]圖2相應示出根據(jù)實施例的應用的狀態(tài)的表示。具體地,圖2將應用的狀態(tài)表示為在數(shù)學意義中的圖,其中所述圖包括由邊連接的節(jié)點。圖的每個節(jié)點可以對應于應用的可能狀態(tài)或狀態(tài)的集合。兩個節(jié)點之間的邊指示應用的用戶可以使得應用在對應狀態(tài)之間轉(zhuǎn)換。在實施例中,圖是有向圖,由此圖的節(jié)點之間的邊具有由箭頭指示的方向。因此,圖的兩個節(jié)點之間的箭頭指示從由箭頭尾部的節(jié)點表示的狀態(tài)到由箭頭頭部表示的狀態(tài)之間的狀態(tài)轉(zhuǎn)換是可能的。箭頭可以具有指示轉(zhuǎn)換是可逆的兩頭??赡孓D(zhuǎn)換的示例是在基于網(wǎng)絡的應用中的用戶選擇鏈接并且能夠?qū)Ш降芥溄拥牡顷戫撁娴霓D(zhuǎn)換。用戶可以例如通過敲擊網(wǎng)絡瀏覽器的后退按鈕,從登陸頁面導航回到具有被選擇的鏈接的頁面。
[0036]如在圖2示出的圖包括可以是根據(jù)本公開的各個實施例被處理的應用的狀態(tài)的根節(jié)點202。狀態(tài)可以是例如,如呈現(xiàn)給用戶的應用的當前狀態(tài)。狀態(tài)也可以是用戶或許通過中間狀態(tài)能夠?qū)Ш降降奈磥頎顟B(tài)。在此特定示例中,根節(jié)點對應于可以做出從其到由節(jié)點204表示的其他狀態(tài)的轉(zhuǎn)換的狀態(tài)。每個節(jié)點204也可以對應于可以做出從其到由節(jié)點206表示的其他狀態(tài)的轉(zhuǎn)換的狀態(tài)。在圖2中,圖200由樹表示。但是,許多變化被認為是在本公開范圍內(nèi)。例如,圖可以包括圓圈。用戶可以例如從由節(jié)點202表示的狀態(tài)導航到由節(jié)點204表示的狀態(tài)并且退回。如另一個示例,用戶可以從由節(jié)點202表示的狀態(tài)導航到由節(jié)點204表示的狀態(tài)到由節(jié)點206表示的另一個狀態(tài),并且從由節(jié)點206表示的狀態(tài)到由節(jié)點202表示的狀態(tài)。如還有另一個示例,用戶可以從由節(jié)點202表示的狀態(tài)導航到由節(jié)點204表示的狀態(tài)到由204標記的節(jié)點表示的另一個狀態(tài)。
[0037]注意,應用的狀態(tài)可以不是靜態(tài)的。即,當在特定狀態(tài)中時,應用界面可以具有多個呈現(xiàn)。例如,用戶界面可以具有允許用戶選擇性地顯示和/或隱藏數(shù)據(jù)的控制。滾動條是如下拉式菜單的此類控制和允許用戶控制特定狀態(tài)中的界面的外觀的其他控制的示例。此外,用戶界面的狀態(tài)可以包括動態(tài)內(nèi)容,諸如隨時間變化的音頻或視頻和根據(jù)與用戶界面的某些用戶交互改變的內(nèi)容。
[0038]圖3示出如上參考圖1所述的呈現(xiàn)給諸如客戶端102的用戶之類的用戶的應用的說明性示例。如在圖3中示出的應用是基于網(wǎng)絡的應用,并且在此特定實例中,利用在客戶端的計算設備上執(zhí)行的瀏覽器應用訪問基于網(wǎng)絡的應用。應用本身可以在與客戶端的計算設備分離的服務器,諸如上面參考圖1描述的應用服務器上執(zhí)行。圖3所示的應用處于特定狀態(tài)并且具有外觀,其可以是計算設備的屏幕上的外觀。在此特定示例中,數(shù)據(jù)的呈現(xiàn)出現(xiàn)在屏幕中間。
[0039]應用包括許多鏈接和允許用戶操作應用的其他用戶界面控制。例如,在此示例中的應用包括許多標簽302。在此特定示例中的標簽是可選擇以使得不同的屏幕出現(xiàn)的用戶界面元件,其中每個屏幕具有對應的主題。例如,在此示例中,標簽包括主菜單標簽、帳戶標簽、聯(lián)系人標簽等等。在此示例中,選擇主菜單標簽302,使得應用的表示如它在圖3中那樣出現(xiàn)。用戶可以選擇帳戶標簽302以訪問關于用戶帳戶的各種信息。選擇帳戶標簽302,例如,可以使得應用改變到其中各個用戶帳戶可以被訪問的狀態(tài)。例如,帳戶可以被列出并且可選擇以導航到特定于選擇的帳戶的信息。也可以由應用提供搜索和其他能力。以這樣的方式,每個標簽302對應于應用的狀態(tài)。
[0040]在通過網(wǎng)絡檢索數(shù)據(jù)的實施例中,與應用的用戶界面的用戶交互可以使得電子通信發(fā)生。例如,當由用戶(諸如通過操作輸入設備)選擇用戶界面控制時,客戶端的設備可以向適當?shù)挠嬎銠C系統(tǒng)(諸如高速緩存代理或應用服務器)發(fā)送電子消息(諸如超文本傳輸協(xié)議(HTTP)請求)以獲得對應信息。當某些或所有響應被接收時,客戶端的設備可以相應地更新顯示器。
[0041]也在圖3的樣本中提供其他可選擇的用戶界面元件。例如,提供各種超鏈接304。超鏈接可以使得應用導航到相應于對應信息的頁面。例如,“我的成就”超鏈接304可以使得應用導航到顯示各種統(tǒng)計信息和/或特定于應用的用戶的表示的頁面。此外,應用可以包括特定于應用的當前狀態(tài)的附加標簽306,然而上面描述的標簽302可以是全局到應用的。因此,通過選擇主菜單標簽302,特定于主菜單標簽302的各種標簽306可以出現(xiàn)。
[0042]在用戶界面上的可選擇的元件可以包括除了標簽以外的元件,諸如啟動應用以執(zhí)行各種功能的各種鏈接。例如,圖3所示的應用包括在“創(chuàng)建”類別308下的許多鏈接。例如,選擇在“創(chuàng)建”類別308下的帳戶鏈接可以使得用戶界面改變以允許用戶輸入用于新用戶帳戶的信息。
[0043]圖4示出根據(jù)實施例用于執(zhí)行啟發(fā)式高速緩存的處理400的說明性示例。某些或所有處理400 (或這里描述的任何其他處理,或變化和/或它的組合)可以在配置有可執(zhí)行指令的一個或多個計算機系統(tǒng)的控制下執(zhí)行并且可以被實施為由硬件或它的組合在一個或多