專利名稱:使用共享工作器的子組件實例和同步的制作方法
技術領域:
本公開涉及網(wǎng)絡通信。更具體地,本公開涉及被配置成在耦接到網(wǎng)絡的通信設備上的web瀏覽器中運作的web應用。
背景技術:
Web瀏覽器一般是在計算設備(例如,個人計算機、膝上型機、個人數(shù)字助理(PDA)、蜂窩電話、智能手機等)上運作來使通過網(wǎng)絡(例如,因特網(wǎng))可獲得的信息能夠被訪問的應用(例如,計算機程序)。Web瀏覽器可以被配置成通過利用指示根據(jù)其可以訪問信息的位置的統(tǒng)一資源標識符(URI)來訪問在網(wǎng)絡上可獲得的信息。典型的web瀏覽器可以被配置成在一個或多個瀏覽器窗口或在瀏覽器內(nèi)的瀏覽器標簽中向用戶展現(xiàn)網(wǎng)絡可訪問和/或其他信息。Web瀏覽器可以使用戶能夠同時打開多個web瀏覽器窗口或在web瀏覽器窗口內(nèi)的標簽。Web應用一般是通過如上所述的web瀏覽器可訪問的軟件應用。例如,web應用可以是文檔,諸如超文本標記語言(HTML)文檔。文檔web應用可以被配置成向用戶在視覺上展現(xiàn)在網(wǎng)絡上可獲得的信息。文檔web應用可以向用戶展現(xiàn)到可獲得的信息(例如,到URI)的一個或多個鏈接??梢韵蛴脩籼峁┻x擇一個或多個鏈接的能力,其可以導致新的web文檔的展現(xiàn),包括通過與鏈接相關聯(lián)的URI可訪問的信息。對web文檔的一個或多個鏈接的用戶選擇可以替代或另外執(zhí)行一個或多個非文檔web應用來在瀏覽器內(nèi)執(zhí)行期望功能。一些web應用可以被配置成對一個或多個子組件進行操作。Web應用所操作的子組件可以為web應用執(zhí)行期望任務。子組件可以向用戶展現(xiàn)某一形式的視覺描繪,例如即時消息(例如,聊天)窗口、聯(lián)系人采集器、日歷事件輸入/更新窗口、照片上載和/或展現(xiàn)子窗口、音頻/視頻展現(xiàn)/播放器窗口、或主要或主機web應用的任何其他形式的彈出或嵌入式子窗口。在其他示例中,主要或主機web應用可以對被配置成為web應用執(zhí)行非視覺功能的一個或多個子組件進行操作。
發(fā)明內(nèi)容
本公開針對用于使用共享工作器應用來為至少一個主機web應用創(chuàng)建一個或多個子組件實例或視覺用戶接口(UI)元件的技術。本公開進一步針對用于使用共享工作器應用來使得能夠(例如,在沒有訪問網(wǎng)絡的情況下)進行對共享工作器和子組件實例正在其上運作的計算機設備是本地的對一個或多個子組件實例(Π元件)的狀態(tài)的更新的技術。本公開的技術可以提供在創(chuàng)建子組件實例和/或更新子組件實例狀態(tài)方面的改進,因為通過使用共享工作器,可以使訪問網(wǎng)絡以獲得定義子組件(Π元件)的軟件和/或傳送子組件實例狀態(tài)更新的需求最小化。進一步,定義子組件(Π元件)的軟件可以不依賴于定義主機web應用的軟件,其可以提供在為主機web應用和子組件中的一個或多個管理軟件發(fā)布周期方面的改進。在一個示例中,在此描述了用于向視覺用戶接口元件提供更新的方法。該方法包括通過在計算設備上執(zhí)行的瀏覽器執(zhí)行被配置成向計算設備所渲染的用戶接口(UI)元件提供更新的共享工作器應用。該方法進一步包括通過瀏覽器執(zhí)行被配置成展現(xiàn)第一 Π元件的視覺渲染的第一 Web應用。該方法進一步包括通過瀏覽器執(zhí)行被配置成展現(xiàn)第二 UI元件的視覺渲染的第二 web應用,其中第二 Π元件基本上類似于第一 Π元件。該方法進一步包括通過共享工作器應用并且從第一 Π元件接收對第一 Π元件的狀態(tài)更新,其中該狀態(tài)更新包括對待由第一 Π元件提供的視覺內(nèi)容的更新。該方法進一步包括通過共享工作器應用對第一 Π元件和第二 Π元件的視覺渲染進行更新以反映所接收的狀態(tài)更新。在此還描述了包括存儲指令的計算機可讀存儲介質(zhì)的制品。所述指令促使計算設備通過在計算設備上執(zhí)行的瀏覽器執(zhí)行被配置成向計算設備所渲染的用戶接口(UI)元件提供更新的共享工作器應用。所述指令進一步促使計算設備通過瀏覽器執(zhí)行被配置成展現(xiàn)第一 UI元件的視覺渲染的第一 web應用。所述指令進一步促使計算設備通過瀏覽器執(zhí)行被配置成展現(xiàn)第二 Π元件的視覺渲染的第二 web應用,其中第二 Π元件基本上類似于第-UI元件。通過共享工作器應用并且從第一 Π元件接收對第一 Π元件的狀態(tài)更新,其中該狀態(tài)更新包括對待由第一 Π元件提供的視覺內(nèi)容的更新。所述指令進一步促使計算設備通過共享工作器應用對第一Π元件和第二Π元件的視覺渲染進行更新以反映所接收的狀態(tài)更新。在此還描述了設備。該設備包括瀏覽器,其被配置成執(zhí)行被配置成向計算設備所渲染的用戶接口(UI)元件提供更新的共享工作器應用,以及其中瀏覽器被進一步配置成執(zhí)行被配置成展現(xiàn)第一 UI元件的視覺渲染的第一 web應用和被配置成展現(xiàn)第二 UI元件的視覺渲染的第二 web應用。該設備進一步包括用于從第一 Π元件并且通過共享工作器應用接收對第一 UI元件的狀態(tài)更新的裝置,其中該狀態(tài)更新包括對待由第一 UI元件提供的視覺內(nèi)容的更新。該設備進一步包括用于通過共享工作器應用對第一 Π元件和第二 Π元件的視覺渲染進行更新以反映所接收的狀態(tài)更新的裝置。在此進一步描述了用于通過web應用展現(xiàn)視覺用戶接口元件的方法。該方法包括通過在計算設備上執(zhí)行的瀏覽器執(zhí)行主機web應用。該方法進一步包括通過該瀏覽器執(zhí)行被配置成向在計算設備上執(zhí)行的至少一個主機web應用提供至少一個用戶接口(UI)元件的共享工作器。該方法進一步包括從主機web應用并且通過共享工作器接收對創(chuàng)建展現(xiàn)與該主機web應用相關聯(lián)的UI元件的功能的視覺描繪的用戶接口(UI)元件的視覺渲染的請求。該方法進一步包括通過共享工作器獲得可執(zhí)行來展現(xiàn)Π元件的視覺渲染的軟件。該方法進一步包括通過共享工作器將所獲得的軟件存儲在計算設備的存儲器中。該方法進一步包括響應于該請求而執(zhí)行所獲得的軟件來創(chuàng)建與主機web應用協(xié)同展現(xiàn)的UI元件的視覺渲染。在此還描述了包括存儲指令的計算機可讀存儲介質(zhì)的制品。所述指令促使計算設備通過在計算設備上執(zhí)行的瀏覽器執(zhí)行主機Web應用。所述指令進一步促使計算設備通過瀏覽器執(zhí)行被配置成向在計算設備上執(zhí)行的至少一個主機web應用提供至少一個用戶接口(UI)元件的共享工作器。所述指令進一步促使計算設備從主機web應用并且通過共享工作器接收對創(chuàng)建展現(xiàn)與該主機web應用相關聯(lián)的UI元件的功能的視覺描繪的用戶接口(UI)元件的視覺渲染的請求。所述指令進一步促使計算設備通過共享工作器獲得可執(zhí)行來展現(xiàn)Π元件的視覺渲染的軟件。所述指令進一步促使計算設備通過共享工作器將所獲得的軟件存儲在計算設備的存儲器中。所述指令進一步促使計算設備響應于該請求而執(zhí)行所獲得的軟件來創(chuàng)建與主機web應用協(xié)同展現(xiàn)的UI元件的視覺渲染。在附圖和下面描述中闡述了本公開的一個或多個實施例的細節(jié)。本公開的其他特征、目的和優(yōu)勢從描述和附圖以及從權利要求將是顯而易見的。
圖1A是圖示與本公開的技術一致的計算設備和在該計算設備上執(zhí)行的包括共享工作器應用的瀏覽器的一個示例的概念圖。圖1B是圖示與本公開的技術一致的主機web應用和該主機web應用的子組件實例的一個示例的概念圖。圖2是圖示與本公開的技術一致的計算設備和在該計算設備上執(zhí)行的包括共享工作器應用以及第一和第二用戶接口元件(UI)的瀏覽器的一個示例的概念圖。圖3是圖示與本公開的技術一致的被配置成運作合并有共享工作器應用的web瀏覽器的計算硬件的各種示例的概念圖。圖4是圖示與本公開的技術一致的運作使得能夠?qū)嵗咏M件和/或同步子組件狀態(tài)的共享工作器應用的瀏覽器的一個示例的框圖。圖5是圖示與本公開的技術一致的可操作來同步子組件實例的狀態(tài)的共享工作器應用的一個示例的概念圖。圖6是圖示與本公開的技術一致的可操作來使得能夠?qū)ψ咏M件進行同步和/或?qū)嵗墓蚕砉ぷ髌鲬玫慕M件的一個示例的框圖。圖7是圖示與本公開的技術一致的通過共享工作器應用來創(chuàng)建子組件實例的方法的一個示例的流程圖。圖8是圖示與本公開的技術一致的更新子組件狀態(tài)的方法的一個示例的流程圖。圖9是圖示與本公開的技術一致的可操作來跨域?qū)嵗粋€或多個子組件和/或更新一個或多個子組件實例的狀態(tài)的共享工作器的一個示例的框圖。圖10是圖示與本公開的技術一致的更新用戶接口(UI)元件狀態(tài)的方法的一個示例的流程圖。圖11是圖示與本公開的技術一致的向主機web應用提供接口(UI)元件的方法的一個示例的流程圖。
具體實施例方式圖1A是圖示與本公開一致的包括合并有共享工作器應用14的瀏覽器12的計算系統(tǒng)的一個示例的概念圖。圖1A描繪了本地計算設備10。本地計算設備10可以通過網(wǎng)絡2被耦接到一個或多個其他計算設備。網(wǎng)絡2可以是因特網(wǎng)。網(wǎng)絡2替代地可以是任何其他網(wǎng)絡,例如,公用/專用網(wǎng)絡或無線網(wǎng)絡。在圖1中描繪的計算設備10是個人臺式計算機。盡管圖1A中未示出,然而,計算設備10可以是被配置成通過網(wǎng)絡進行通信的任何計算設備,例如膝上型計算機、蜂窩電話、平板計算機、或被配置成通過網(wǎng)絡2傳送信息的任何其他設備,無論設備的主要目的是否是基于網(wǎng)絡的通信。計算設備的另一個示例是被配置成通過網(wǎng)絡2進行通信的電視。進一步,計算設備10可以通過用于網(wǎng)絡通信的任何數(shù)量的已知機制,例如到網(wǎng)絡2的有線連接(例如,以太網(wǎng))或無線連接(例如,W1-F1、蜂窩),被耦接到網(wǎng)絡2。如圖1A中所描繪,計算設備10通過網(wǎng)絡2被耦接到多個網(wǎng)絡服務器計算設備16A-16E。為了訪問從網(wǎng)絡服務器16A-16E可訪問的信息,瀏覽器應用12可以在本地計算設備10上運行。瀏覽器12可以被配置成在計算設備10的本地操作系統(tǒng)內(nèi)運行。已知瀏覽器應用的非限制性不例包括 Microsoft Explorer 、Apple Safari 、Mozilla Firefox 和Google Chrome 瀏覽器。用于臺式和/或膝上型計算機的已知操作系統(tǒng)的非限制性示例可以包括Microsoft Vista 、Apple Snow Leopard 或Linux。用于移動設備(例如,智能手機、上網(wǎng)本等)的已知操作系統(tǒng)的示例包括Microsoft Windows Mobile 、Apple Iphone OS 以及Google Android 移動技術平臺。瀏覽器12可以使用戶能夠操縱對通過網(wǎng)絡2可訪問的信息的訪問。例如,瀏覽器12可以向用戶提供輸入一個或多個統(tǒng)一資源指示符(URI,例如,www.google, com),以訪問web應用,諸如超文本標記語言(HTML)文檔的能力。Web應用和/或web應用所使用的信息可以被存儲在一個或多個網(wǎng)絡服務器16A-16E上。瀏覽器12可以被配置成訪問存儲在網(wǎng)絡服務器16A-16E上的web應用和/或其他信息,以除其他用途外向計算設備10的用戶展現(xiàn)視覺信息。如圖1A中所示,瀏覽器12可以通過瀏覽器12的窗口或標簽向用戶展現(xiàn)一個或多個web應用15A-15B。在圖1A的示例中僅示出了兩個web應用15A-15B,然而,可以通過瀏覽器12向用戶同時展現(xiàn)單個web應用或多于兩個web應用。在一個示例中,web應用15A-15B中的一個或多個是被配置成向用戶展現(xiàn)視覺描繪(例如,HTML文檔)的web應用。Web應用15A-15B中的一個或多個可以進一步向用戶展現(xiàn)功能,例如,使用戶能夠進行通信、導航到其他web應用、查看地圖、查看日歷、玩游戲、收聽音樂、觀看視頻、訪問(例如,上載)對用戶的計算設備是本地的信息或任何其他形式的功能。同樣如圖1A中所示,瀏覽器12包括共享工作器14。在各個示例中,共享工作器14被配置成獲得網(wǎng)絡可訪問的信息,例如存儲在圖1的示例中的一個或多個網(wǎng)絡服務器16A-16C上的信息,并且向一個或多個web應用15A-15B提供所獲得的信息。共享工作器應用14可以被進一步配置成將所獲得的信息存儲在計算設備10的本地存儲器中,以使共享工作器14可以使用該信息來滿足來自一個或多個web應用15A-15B的對相同或相似信息的一個或多個請求。例如,如果web應用15A已請求過共享工作器14響應于該請求獲得并且被存儲在本地存儲器中的某些網(wǎng)絡可訪問的信息,如果web應用15B傳送對相似信息的請求,則共享工作器可以訪問存儲在本地存儲器中的信息來滿足來自web應用15B的請求。根據(jù)本公開的技術,共享工作器14可以進一步創(chuàng)建一個或多個子組件18的實例和/或使得能夠與一個或多個子組件18的實例進行通信/在一個或多個子組件18的實例之間進行通信。如在此所述的子組件18是被配置成由多于一個web應用使用的web應用功能的預定義實現(xiàn)。如在此所述的子組件實例18A、18B指用于特定web應用15A、15B的子組件功能的實現(xiàn)。在一些示例中,子組件實例18A、18B包括web應用功能的視覺渲染。例如,web應用15A、15B可以利用子組件18的一個或多個實例18A、18B,諸如即時消息(聊天)窗口、聯(lián)系人采集器、日歷事件輸入/更新窗口、照片上載和/或展現(xiàn)子窗口、或音頻/視頻展現(xiàn)/播放器窗口、或可以由多于一個web應用使用的任何其他功能。
如在此所述的共享工作器14可以是計算設備可執(zhí)行來獲得網(wǎng)絡可訪問的信息和/或?qū)υ跒g覽器12中執(zhí)行的web應用的子組件實例(例如,18A、18B)/視覺用戶接口進行更新的軟件。在一個特定示例中,共享工作器14可以是以JavaScript語言編寫的軟件(程序指令)的一個或多個獨立線程。在其他示例中,共享工作器14可以包括以任何其他語言編寫的軟件。圖1B圖示展現(xiàn)不同子組件的實例48A和49A的兩個示例的主機(主要)web應用45(與URL www.mail, google, com相關聯(lián)的HTML文檔)的一個非限制性示例。如在此所述,子組件是定義被配置成由多于一個web應用使用的功能的軟件。如在此所述的子組件的實例是子組件與web應用一起的實現(xiàn)。如圖1B中所示的第一子組件實例48A是聯(lián)系人采集器子組件的實例。如所示,子組件實例48A在主機web應用35的視覺描繪的一部分上展現(xiàn)子組件功能的視覺描繪。例如,子組件實例48A向用戶提供用來搜索聯(lián)系人、選擇聯(lián)系人、添加聯(lián)系人、查看建議的聯(lián)系人和/或在用戶的已定義的聯(lián)系人內(nèi)找到重復的聯(lián)系人的視覺控件。在圖1B中還示出了第二子組件實例49A。第二子組件實例49A是聊天窗口子組件的實例。聊天窗口向用戶展現(xiàn)了大概與另一個用戶的聊天內(nèi)容。盡管在圖1B中未示出,然而,聊天窗口可以示出用戶所發(fā)送或接收的消息。如圖1B中所示,聊天窗口還展現(xiàn)了文本輸入框50以供用戶輸入消息。僅出于說明目的,提供了圖1B的示例,并且其意在是非限制性的。如在此所述的子組件是可以由多于一個web應用或單個web應用的多于一個實例利用的任何一致功能。Web應用使用子組件可以是有利的,因為使用特定子組件的每一個web應用不必獨立定義該子組件。如此,對于在其中期望子組件的功能的每一個web應用,可以重復使用而不是重新編寫定義子組件的代碼(例如,Java script)。進一步,使用預定義的子組件可以使功能集成不那么復雜。另外,共同子組件可以通過跨多個不同web應用提供一致性來改進用戶體驗,例如,每次用戶使用用于不同web應用的類似功能時,用戶不必重新學習如何操作特定功能。例如,可以通過電子郵件web應用(例如,gmail:www.gmail.com)和聯(lián)系人web應用(例如,www.google, com/contacts)兩者向用戶展現(xiàn)相同的聯(lián)系人采集器子組件。然而,已知的瀏覽器實現(xiàn)12可能以相對無效的方式提供子組件功能。例如,根據(jù)已知的瀏覽器實現(xiàn),可以將定義子組件功能的代碼嵌入在定義web應用自身的代碼中。嵌入式子組件代碼可能是不期望的,因為獨立于使用子組件的主機web應用的發(fā)布周期對定義該子組件的代碼進行更新可能很難。并且,典型地,從一個或多個網(wǎng)絡服務器(例如,圖1A的示例中的服務器16A-16C)訪問定義web應用的這樣的代碼(以及相關聯(lián)的子組件代碼)。如此,為了在瀏覽器12中運作的兩個web應用15A、15B使用相同子組件18,從一個或多個網(wǎng)絡服務器兩次訪問定義子組件18的實例的代碼。通過網(wǎng)絡2不必要地訪問信息可能是不期望的,尤其在計算設備10通過很慢和/或間歇網(wǎng)絡2連接(例如,諸如蜂窩網(wǎng)絡的移動網(wǎng)絡)被耦接到一個或多個網(wǎng)絡服務器16A-16C的情況下。出于其他原因,每web應用通過網(wǎng)絡對子組件18實例化可能也是不期望的。例如,對于一些子組件(例如,聊天窗口、聯(lián)系人采集器),可能期望的是,在兩個或更多個子組件18實例之間同步狀態(tài)。例如,在用戶使兩個瀏覽器窗口或標簽打開以顯示利用聊天窗口子組件18A-18B的兩個(相同或不同)web應用時,可能期望的是,當消息被鍵入到第一聊天窗口時對第二聊天窗口進行更新。根據(jù)已知的瀏覽器實現(xiàn),為了執(zhí)行這樣的更新,第一子組件實例18A可以將狀態(tài)改變(例如,新的消息)傳送給一個或多個網(wǎng)絡服務器16A-16C。該一個或多個網(wǎng)絡服務器16A-16C然后可以將該狀態(tài)更新傳送到托管第二子組件實例18B的web應用。托管web應用然后可以相應地更新第二子組件實例18B。該實現(xiàn)可能是不期望的,因為該同步狀態(tài)需要通過網(wǎng)絡2的通信來在第一和第二子組件實例18A、18B之間同步狀態(tài)。在計算設備10通過很慢和/或間歇網(wǎng)絡2連接(例如,諸如蜂窩網(wǎng)絡的移動網(wǎng)絡)被耦接到網(wǎng)絡服務器16A-16C的情況下,這可能是尤其不期望的。在另一個示例中,已知的瀏覽器實現(xiàn)可能需要與每一個子組件實例18A、18B相關聯(lián)的信息被獨立存儲在計算設備的本地存儲器中。這可能也是不期望的,因為增加了訪問存儲器的需求,以及信息可能在存儲器中不必要地被復制。本公開的技術解決了已知web瀏覽器實現(xiàn)為web應用創(chuàng)建子組件的實例以及在子組件的實例之間共享狀態(tài)更新的上述不足。如此,如在圖1A中所示,瀏覽器12合并有共享工作器應用14。在一個示例中,共享工作器14可以為一個或多個web應用15A、15B創(chuàng)建一個或多個子組件18的實例(子組件實例18A、18B表示單個子組件18的實例)。例如,根據(jù)來自web應用15A的請求,共享工作器14可以通過網(wǎng)絡2從一個或多個網(wǎng)絡服務器16A-16C獲得定義子組件18的軟件代碼。共享工作器14可以將定義子組件18的軟件代碼傳送給web應用15A,以為web應用15A創(chuàng)建子組件18的實例18A。在一個示例中,共享工作器14可以對web應用15A進行分析來為子組件實例18A確定適當位置。共享工作器14可以進一步確定子組件實例18A的形狀。在一個示例中,共享工作器14可以對定義子組件18的軟件代碼進行修改,來提供將子組件實例18A定義成符合用于子組件實例18A的相對于web應用15A的適當位置和/或尺寸/形狀的軟件代碼。共享工作器14可以進一步將定義子組件18的軟件代碼存儲在瀏覽器12正在其上運作的計算設備10的本地存儲器中。如此,共享工作器14可以根據(jù)來自第二 web應用15B的創(chuàng)建相同子組件18的第二實例18B的第二請求,基于存儲在本地存儲器中的軟件代碼來創(chuàng)建子組件18的第二實例18B。因此,根據(jù)本公開的技術,通過共享工作器14共享子組件18可以減少訪問網(wǎng)絡2來獲得創(chuàng)建子組件18的實例18A、18B的代碼的需求。在另一個示例中,本公開的技術提供了對一個或多個子組件實例的改進的更新。例如,如圖1A中所示,瀏覽器12可操作來向用戶展現(xiàn)第一 web應用15A。第一 web應用15A使用子組件18的第一實例18A。子組件18的第一實例18A如上所述可能已由共享工作器12創(chuàng)建。子組件實例18A可以接收更新。例如,在子組件18是聊天窗口的情況下,子組件實例18A可以接收以聊天消息形式的狀態(tài)更新。根據(jù)已知的瀏覽器實現(xiàn),使用子組件實例18A的web應用將自身基于該web應用的代碼來更新子組件實例18A (例如,子組件功能的視覺渲染)以反映狀態(tài)更新。根據(jù)本公開的技術,可以將狀態(tài)更新發(fā)送給共享工作器14,并且共享工作器14可以作為響應發(fā)送可以被執(zhí)行來渲染子組件實例18A的更新版本的軟件代碼,而不是web應用15A自身更新子組件實例18A的渲染來反映狀態(tài)更新。在另一個示例中,本公開的技術提供了對子組件18的子組件實例18A、18B的改進的狀態(tài)同步。例如,如圖1A中所示,瀏覽器12被運作來向用戶展現(xiàn)第一 web應用15A和第二 web應用15B。第一和第二 web應用15A、15B可以分別展現(xiàn)子組件18的第一和第二實例18A、18B。子組件18的第一和第二實例18A-18B如上所述可能已由共享工作器12實例化。共享工作器14可以使得能夠進行對計算設備10是本地的對子組件實例18A、18B狀態(tài)的通信。例如,第一子組件實例18A可以接收狀態(tài)更新(例如,在子組件18A是即時消息窗口的情況下,子組件18A可以接收用戶消息)。子組件實例18A (或主機web應用15A)可以將該狀態(tài)更新傳送給共享工作器14。共享工作器14可以在接收了該狀態(tài)更新時,將該狀態(tài)更新傳送給第一子組件實例18A和第二子組件實例18B中的一個或多個。在一些示例中,將狀態(tài)更新傳送給第一和第二子組件實例中的一個或多個包括對該一個或多個子組件實例的視覺描繪進行更新。在一個示例中,將狀態(tài)更新傳送給一個或多個子組件實例18A、18B可以包括將被更新成合并有(來自第一子組件實例18A的)所接收的狀態(tài)更新的至少一個軟件代碼部分傳送給主機web應用15A、15B中的一個或多個。因此,可以(例如,通過執(zhí)行定義該子組件的更新的軟件代碼)對子組件實例18A、18B進行更新來反映子組件實例18A的狀態(tài)更新(例如,可以通過子組件實例18A、18B的視覺描繪向用戶顯示該用戶消息)。在一些示例中,共享工作器14可以進一步將所接收的狀態(tài)更新(和/或被更新成合并有該狀態(tài)更新的軟件代碼)本地存儲在例如計算設備10的暫時性存儲器中,使得可以向子組件18的另一個實例(圖1中未示出)提供該狀態(tài)更新。因此,根據(jù)本公開的技術,通過共享工作器14共享子組件實例18A-18B狀態(tài)更新可以減少訪問網(wǎng)絡2的需求,因為狀態(tài)更新對瀏覽器12正在其上運作的計算設備10是本地通信的。并且,根據(jù)該示例,由于與子組件實例18A、18B相關聯(lián)的信息可以由共享工作器14存儲在單個位置,并且隨著對該信息的需求產(chǎn)生為子組件實例18A-18B提供,因此,可以使存儲在本地存儲器中的重復信息最小化。圖2是圖示與本公開的技術一致的計算設備和在該計算設備上執(zhí)行的包括共享工作器應用34以及第一 38A和第二 38B用戶接口(UI)元件的瀏覽器12的一個示例的概念圖。如在上面參考圖1A和IB所述,可以將子組件18描述為被配置成由多于一個web應用使用的web應用功能的預定義實現(xiàn)??梢詫⒆咏M件實例18A、18B描述為用于特定web應用15A、15B的子組件功能的實現(xiàn)。例如,子組件實例18A、18B可以是用于特定web應用的子組件15功能的視覺渲染。以這種方式,如圖2中所示,子組件實例18A可以被認為是第一用戶接口(UI)元件38A。類似地,子組件實例18B可以被認為是第二 Π元件38B。第一 Π元件38A可以基本上類似于第二 UI元件38B。例如,第一和第二 UI元件38A和38B可以被配置為特定子組件的第一和第二實例,例如,第一和第二 Π元件38A和38B中的每一個在視覺上表示相同或基本上相似的功能。在一些示例中,可以與UI元件38B所表示的功能共享UI元件38A的某個功能。在一些示例中,與Π元件38B相比,Π元件38A可以表示另外功能,然而仍然表示Π元件38B的功能的至少部分(例如,Π元件38A和38B兩者均可以向用戶展現(xiàn)聊天窗口、聯(lián)系人采集器或其他功能)。如圖2中所示,瀏覽器12可以執(zhí)行共享工作器應用34。類似于在上面參考圖1A和IB所述的示例,共享工作器應用34可以為一個或多個web應用(例如,圖2的示例中的35A、35B)創(chuàng)建UI元件38A、38B。例如,根據(jù)來自web應用35A的請求,共享工作器34可以通過網(wǎng)絡2從一個或多個網(wǎng)絡服務器16A-16C獲得定義第一 UI元件38A的軟件代碼。在一個示例中,共享工作器14可以對web應用35A進行分析來為第一 UI元件38A確定適當位置。共享工作器34可以進一步確定第一 Π元件38A的形狀。在一個示例中,共享工作器34可以對定義第一 UI元件38A的軟件代碼(例如,可執(zhí)行來通過計算設備10的顯示器渲染第一 UI元件38A的軟件代碼)進行修改,來提供將子組件實例38A定義成符合用于子組件實例38A的相對于web應用35A的適當位置和/或尺寸/形狀的軟件代碼。共享工作器34可以進一步將定義第一 UI元件38A的軟件代碼存儲在瀏覽器12正在其上運作的計算設備10的本地存儲器中。如此,共享工作器34可以根據(jù)來自第二 web應用35B的創(chuàng)建基本上類似于第一 UI元件38A的第二 UI元件38B的第二請求,基于存儲在本地存儲器中的軟件代碼來創(chuàng)建第二 Π元件38B。因此,根據(jù)本公開的技術,通過共享工作器34創(chuàng)建UI元件38A-38B可以減少訪問網(wǎng)絡2來獲得創(chuàng)建UI元件38A-38B的代碼的需求。在另一個示例中,本公開的技術提供了一個或多個Π元件38A-38B的改進的更新。例如,如圖2中所示,瀏覽器12可操作來向用戶展現(xiàn)第一 Π元件38A。第一 Π元件38A如上所述可能已由共享工作器32創(chuàng)建。第一 Π元件38A可以接收更新。例如,在第
一UI元件38A是聊天窗口的情況下,第一 UI元件38A可以接收以聊天消息形式的狀態(tài)更新。根據(jù)已知瀏覽器實現(xiàn),web應用35A將自身基于web應用35A的代碼來更新第一 UI元件38A以反映狀態(tài)更新。根據(jù)本公開的技術,可以將狀態(tài)更新發(fā)送給共享工作器34,并且共享工作器34可以作為響應提供可以被執(zhí)行來渲染第一 UI元件38A的更新版本的軟件代碼,而不是web應用35A自身更新第一 UI元件38A來反映狀態(tài)更新。在另一個示例中,本公開的技術提供了對多個Π元件38A-38B的改進的狀態(tài)同步。例如,如圖2中所示,瀏覽器12被運作來向用戶展現(xiàn)第一 web應用35A和第二 web應用35B。第一和第二 web應用35A、35B可以分別展現(xiàn)第一和第二 UI元件38A-38B。第一和第二 UI元件38A-38B可以表示基本上類似的功能。例如,第一和第二 UI元件38A-38B每一個可以表示諸如聊天窗口或聯(lián)系人采集器的功能。共享工作器34可以使得能夠進行對計算設備10是本地的對UI元件38A、38B狀態(tài)的通信。例如,第一 Π元件38A可以接收狀態(tài)更新(例如,在第一 Π元件38A是聊天窗口的情況下,子組件38A可以接收用戶消息)。第一 UI元件38A或主機web應用35A可以將該狀態(tài)更新傳送給共享工作器34。共享工作器34可以在接收了該狀態(tài)更新時,傳送被更新成合并有來自第一 Π元件38A的所接收的狀態(tài)更新的至少一個軟件代碼部分。因此,可以(例如,通過執(zhí)行定義UI元件38A、38B的更新的軟件代碼)對第一和第二 UI元件38A、38B進行更新來反映第一 Π元件38A的狀態(tài)更新(例如,可以向用戶顯示該用戶消息)。在一些示例中,共享工作器34可以進一步將所接收的狀態(tài)更新(和/或被更新成合并有該狀態(tài)更新的軟件代碼)本地存儲在例如計算設備10的暫時性存儲器中,使得可以向web應用35A、35B的另一個Π元件或在計算設備10上執(zhí)行的另一個web應用(圖1中未示出)提供該狀態(tài)更新。圖3是圖示可以由在此描述的技術使用的計算系統(tǒng)25的組件的一個示例的概念圖。如在圖3中所描繪,計算系統(tǒng)25可以被包括在各種類型的計算設備中。例如,設備20A是臺式計算機。設備20B是膝上型計算機。設備20C是網(wǎng)絡服務器或大型計算機。盡管圖3中未描繪,合并有計算系統(tǒng)25的設備可以替代地包括被配置成通過網(wǎng)絡進行計算和/或通信的任何數(shù)量的其他設備,包括移動設備,諸如移動電話、個人數(shù)字助理、智能手機、平板計算機或任何其他移動設備。同樣在圖3中未描繪的,合并有計算系統(tǒng)25的設備可以包括專用于其他功能的設備,例如被配置成通過網(wǎng)絡進行通信的電視。設備20A-20C的任何一個可以表示在圖1A和圖2中所描繪的本地計算設備10。設備20A-20C的任何一個還可以表示在圖1A和圖2中所描繪的網(wǎng)絡服務器16A-16E。系統(tǒng)25包括處理器22、存儲器26、存儲設備24和輸入/輸出組件29。組件22、
24、26和29中的每一個可以通過用于組件間通信的系統(tǒng)總線28互連。處理器22可以被配置成處理用于在系統(tǒng)25內(nèi)執(zhí)行的指令。處理器22可以是單線程處理器、或可以替代地是被配置成同時并行處理各種指令的多線程處理器。處理器22可以能夠?qū)Υ鎯υ诖鎯ζ?6中的指令或存儲在存儲設備24上的指令進行處理。在一個示例中,處理器22可以被配置成對指令進行處理以促使瀏覽器12在系統(tǒng)25上與本公開的技術一致運作。系統(tǒng)25進一步可以包括外圍設備27。外圍設備27可以包括例如用于向系統(tǒng)25的用戶展現(xiàn)視覺信息的監(jiān)視器或其他顯示設備。外圍設備27可以進一步包括使用戶能夠向系統(tǒng)25輸入數(shù)據(jù)的一個或多個輸入設備,例如鍵盤、鼠標、觸摸板、軌跡板、觸摸屏等。外圍設備27可以進一步包括打印機、監(jiān)視器、揚聲器或用來輸出信息的其他設備。在一個示例中,處理器22可以被配置成對指令進行處理以促使例如圖1A和圖2的瀏覽器12的瀏覽器的視覺描繪向用戶顯示。如圖3中所示,瀏覽器12可以包括如在此所述的共享工作器應用14。如上所述,共享工作器14可以被配置成為一個或多個web應用實例化子組件和/或使得能夠進行子組件實例的本地同步。瀏覽器12可以在圖3中描繪和/或上述的設備20A-20D的任何一個的處理器上運作。存儲器26可以被配置成在操作期間存儲在系統(tǒng)600內(nèi)的信息??梢詫⒋鎯ζ?6描述為計算機可讀存儲介質(zhì)。在一些示例中,存儲器26是暫時性存儲器,意為存儲器26的主要目的不是長期存儲。還可以將存儲器26描述為易失性存儲器,意為存儲器26在關閉計算機時不維持存儲的內(nèi)容。易失性存儲器的示例包括隨機存取存儲器(RAM)、動態(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM)以及本領域已知的其他形式的存儲器。在一些示例中,可以使用存儲器26來存儲程序指令以供處理器22執(zhí)行。在其他示例中,存儲器26可以由運行于系統(tǒng)25上的軟件或應用使用來在程序執(zhí)行期間暫時存儲信息。也可以將存儲設備24描述為計算機可讀存儲介質(zhì)。與存儲器26相比,存儲設備24可以被配置成存儲比存儲器26更大量的信息。存儲設備24可以被進一步配置為對信息進行長期存儲。在一些示例中,存儲設備24是非易失性存儲器組件。與易失性存儲器組件相比,無論是否向存儲設備24供應電力,非易失性存儲器均可以存儲數(shù)據(jù)。非易失性存儲設備的示例包括磁硬盤、光盤、軟盤、閃存以及其他形式的電可編程存儲器(EPROM)或電可擦可編程(EEPROM)存儲器。在此描述的技術可以根據(jù)如參考圖3描述的計算系統(tǒng)25,以數(shù)字電子電路、計算機硬件、固件、軟件或數(shù)字電子電路、計算機硬件、固件、軟件的任何組合來實現(xiàn)。例如,任何在此描述的技術可以通過存儲在計算機可讀存儲介質(zhì)(例如,存儲設備24、存儲器26)中、處理器22可讀取來促使處理器22執(zhí)行本公開的技術的可執(zhí)行程序指令來實現(xiàn)。如在此所述的計算機可讀介質(zhì)可以被認為是非暫時性計算機可讀介質(zhì)。在其他示例中,本公開的技術中的部分或全部可以替代或另外通過為特定目的配置的專用硬件來實現(xiàn),例如,現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、數(shù)字信號處理器(DSP)或類似設備。圖4是圖示與在此描述的技術一致的合并有被配置成創(chuàng)建一個或多個子組件18的實例和/或使得能夠進行子組件實例18A、18B狀態(tài)的本地同步的共享工作器應用14的瀏覽器12的一個示例的框圖。如圖4中所示,瀏覽器12可以被操作來向用戶顯示第一 web應用15A。第一 web應用15A可能期望使用子組件18的功能。子組件18定義至少一些web應用功能并且被配置成由多于一個web應用使用。在一些示例中,至少一個子組件可以展現(xiàn)web應用功能的視覺描繪。在一個示例中,第一 web應用15A可以將創(chuàng)建子組件18的實例的請求傳送給共享工作器應用14。在其中根據(jù)HTML5規(guī)范定義共享工作器14的一個示例中,請求可以是“instantiateComponent”請求。該請求可以指示為發(fā)出請求的web應用15A或不同web應用(例如,圖4示例中的web應用15B)創(chuàng)建子組件實例18A。響應于該請求(或當共享工作器14可以獨立創(chuàng)建子組件18的實例時,獨立于該請求),共享工作器14可以為第一 web應用18A創(chuàng)建子組件18的第一實例18A。在一個示例中,共享工作器14創(chuàng)建子組件18的實例18A可以包括共享工作器14傳送定義子組件18A的一個或多個軟件代碼部分。在一個示例中,該一個或多個軟件代碼部分可以以通常用于web應用編程的Javascript語言定義。在其他示例中,該一個或多個軟件代碼部分可以根據(jù)字節(jié)碼或指令表來定義。其他編程語言所定義的軟件代碼部分也是預期的并且與本公開的技術一致。該一個或多個軟件代碼部分可以由一個或多個處理器(例如,在上面圖2中描繪的處理器22)執(zhí)行來創(chuàng)建子組件實例18A。共享工作器14還可以將該一個或多個軟件代碼部分存儲在計算設備10的本地存儲器25中以供稍后使用。在一個示例中,響應于創(chuàng)建子組件18實例18A的請求,共享工作器14可以向web應用15A發(fā)送包括以下中的一個或多個的響應消息:1)子組件和/或子組件的特定實例的標識符;2)子組件的目標(例如,在web應用上用于待被渲染的子組件的視覺描繪的幀或空間);3)當子組件實例檢測到任何事件(例如,狀態(tài)改變)時該子組件實例調(diào)用的函數(shù);以及4)存儲器中用來存儲與子組件相關聯(lián)的任何信息的地方。可以將響應消息的上述內(nèi)容包括在傳送給web應用15A的軟件代碼部分中。上述內(nèi)容可以替代地利用軟件代碼部分被傳送、或獨立地被傳送。在其中根據(jù)HTML5規(guī)范定義響應消息的上述內(nèi)容的一個特定示例中,子組件的目標(在上面的2)可以由“ -targetElement”命令識別,當子組件實例檢測到任何事件時調(diào)用的函數(shù)(在上面的3)可以由“eventFunct (event Message) ”命令識別,以及存儲與子組件相關聯(lián)的信息的地方(在上面的4)可以由“-uiContext”命令定義。共享工作器14可以進一步為子組件實例18A控制狀態(tài)更新。子組件實例18A可以接收狀態(tài)更新。根據(jù)其中子組件實例18A表示聊天窗口子組件18的示例,子組件實例18A可以接收用戶消息。根據(jù)已知瀏覽器實現(xiàn),子組件實例18A所接收的狀態(tài)更新可以由web應用15A的代碼進行處理,并且web應用15A可以操作來根據(jù)該更新渲染子組件實例18A的視覺描繪。然而,根據(jù)在此描述的技術,狀態(tài)更新可以由子組件實例18A自身或主機web應用15A傳送給共享工作器14。作為響應,共享工作器14可以對定義子組件18的軟件代碼進行更新來合并有該狀態(tài)更新。因此,可以執(zhí)行定義子組件18的軟件代碼的更新版本來與該狀態(tài)更新一致地渲染子組件實例18A的視覺描繪。
同樣如圖4中所示,瀏覽器12可以運作第二 web應用15B。如同第一 web應用15A,第二 web應用15B可能期望利用與子組件18相關聯(lián)的功能。如此,第二 web應用15B可以向共享工作器14傳送實例化子組件18的請求。響應于該請求(或當共享工作器14自身可以確定是否實例化子組件18時,獨立地),共享工作器14可以為主機web應用15B創(chuàng)建子組件實例18B。在一個示例中,創(chuàng)建子組件實例18B包括共享工作器14將定義子組件18的一個或多個軟件代碼部分傳送給第二 web應用15B。在一個示例中,可以從本地存儲器(例如,如在上面圖3中所示的本地存儲器25)訪問定義子組件18的該一個或多個軟件代碼部分。在一個示例中,定義子組件18的該一個或多個軟件代碼部分可能先前在共享工作器14創(chuàng)建子組件實例18A時已被存儲。該一個或多個軟件代碼部分可以由一個或多個處理器(例如,在上面圖3中所描繪的處理器22)執(zhí)行來創(chuàng)建子組件實例18B。在上面參考圖4所述的示例假設:當web應用15A、15B中的一個或多個期望使用子組件18功能時,共享工作器14已在瀏覽器12上運行。在其他示例中,共享工作器14可能沒在瀏覽器12中運行。根據(jù)這些示例,一個或多個web應用15A、15B可以促使共享工作器14被實例化。在其他示例中,來自web應用15A、15B中的一個或多個的對子組件18實例的請求可以自動導致共享工作器14的實例化,其然后可以如上所述獲得定義子組件18的軟件代碼用于實例化。圖5是圖示與本公開的技術一致的使得能夠本地同步子組件狀態(tài)的共享工作器應用14的概念圖。如圖5中所示,包括子組件18的第一實例18A的第一 web應用15A正在瀏覽器12中運作。同樣如圖5中所示,包括子組件18的第二實例18B的第二 web應用15B正在瀏覽器12中運作。第一 web應用15A可以是與web應用15B相同的web應用的第二實例(例如,指向相同URL的瀏覽器12的獨立窗口或標簽)。第一 web應用15A替代地可以是與第二 web應用15B不同的web應用。在一個示例中,子組件實例18A可以接收狀態(tài)更新。狀態(tài)更新可以由用戶或另外(例如,由web應用15A)發(fā)起。在一個示例中,在子組件18是聊天窗口的情況下,對子組件實例18A的狀態(tài)更新可以指示用戶已將文本輸入到聊天窗口中。在另一個示例中,在子組件18是聯(lián)系人采集器的情況下,對子組件實例18A的狀態(tài)更新可以指示用戶已輸入或選擇了新的聯(lián)系人。如圖5中所示,子組件實例18A (或web應用15A)可以將該狀態(tài)更新傳送給共享工作器14。在一個示例中,共享工作器14然后可以將該狀態(tài)更新傳送給第二子組件實例ISB0第二子組件18B然后可以基于所接收的狀態(tài)更新來更新其狀態(tài)。例如,在子組件18是聊天窗口的情況下,第二子組件實例可以在第二子組件實例18B中反映(例如,通過第一子組件實例18A輸入的)用戶輸入的文本。在另一個示例中,當子組件18是聯(lián)系人采集器的情況下,第二子組件實例18B可以反映通過子組件實例18A用戶對新的聯(lián)系人的輸入或用戶對聯(lián)系人的選擇。在另一個示例中,響應于從子組件18A接收的狀態(tài)更新,共享工作器14可以對定義子組件18的軟件代碼進行更新來合并有該狀態(tài)更新。例如,共享工作器14可以訪問原來用于創(chuàng)建子組件實例18A和18B的軟件代碼來合并有該狀態(tài)更新。原來用于創(chuàng)建子組件實例18A、18B的軟件代碼可能已被存儲在本地存儲器中。在一個示例中,在子組件18是聊天窗口的情況下,共享工作器14可以更新定義聊天窗口的視覺描繪的軟件代碼來反映狀態(tài)更新(例如,輸入的用戶消息)。共享工作器14然后可以向web應用15A和15B中的一個或多個重新發(fā)送更新的軟件代碼。然后,可以執(zhí)行更新的軟件代碼,使得對子組件實例18A、18B進行更新來反映狀態(tài)更新(例如,新的消息)。子組件實例18A可以基于在創(chuàng)建子組件實例18A時所識別的命令來將狀態(tài)更新傳送給共享工作器14。在其中根據(jù)HTML5規(guī)范定義共享工作器14的一個特定示例中,子組件實例18A可以調(diào)用當事件更新(例如,子組件實例狀態(tài)改變)發(fā)生時調(diào)用的函數(shù),notifyOfEvent (componentID, eventMessage)函數(shù),來將狀態(tài)更新傳送給共享工作器14。同樣如圖5中所示,共享工作器14可以訪問本地存儲器(例如,圖3中的本地存儲器25)來存儲數(shù)據(jù)。因此,當共享工作器14接收子組件18A、18B中的一個或多個的狀態(tài)更新時,共享工作器14可以將該狀態(tài)更新存儲在本地存儲器26中。共享工作器14可以利用已存儲的狀態(tài)更新來更新子組件18的其他實例(圖4A中未示出)。在其他示例中,共享工作器14可以對定義子組件18的軟件代碼進行更新來反映狀態(tài)更新。根據(jù)這些示例,可以將更新的代碼存儲在本地存儲器26中以供稍后使用。在一個示例中,如果用戶打開期望使用與子組件18相關聯(lián)的功能的第三web應用,則共享工作器14可以使用已存儲的狀態(tài)更新和/或更新的軟件代碼來創(chuàng)建子組件18的第三實例(圖5中未示出)。如此,子組件18的第三實例可以在被創(chuàng)建時反映與子組件18的先前活動實例18A和18B相同的信息。圖6是圖示與本公開一致的共享工作器應用14的組件的框圖。如圖6中所示,共享工作器14包括web應用通信模塊40 (在下文中,web應用模塊40)、服務器通信模塊42(在下文中,服務器模塊42)以及存儲器訪問模塊44。Web應用模塊40 —般可以被配置成與一個或多個web應用30A-30C通信。例如,web應用模塊40可以從web應用30A-30C中的一個或多個接收對信息的請求(和/或創(chuàng)建一個或多個子組件實例的請求),并且響應于請求,與服務器模塊42通信來通過網(wǎng)絡2從一個或多個網(wǎng)絡服務器16A-16C獲得所請求的信息(例如,定義子組件的軟件代碼)。同樣響應于該請求,存儲器訪問模塊44可以將所獲得的信息存儲在本地存儲器25中以供稍后使用,諸如在第二 web應用請求可以通過存儲在本地存儲器中的信息滿足的相同或相似信息的情況下。在另一個示例中,web應用模塊40可以與存儲器訪問模塊44通信以滿足對信息的請求。響應于請求,存儲器訪問模塊44可以確定存儲在本地存儲器25中的信息是否可以滿足該請求。如果可以滿足該請求,則共享工作器14可以訪問存儲在本地存儲器25中的信息并且將該信息提供給一個或多個發(fā)出請求的web應用30A-30C。同樣如圖5中所示,在另一個示例中,存儲器訪問模塊24可以被進一步配置成訪問計算設備的本地數(shù)據(jù)存儲24。根據(jù)該示例,可以將所獲得的信息存儲在本地數(shù)據(jù)存儲24中,以使當瀏覽器12和/或瀏覽器12正在其上運作的計算設備停止運作時,已存儲的信息仍然可以被訪問,而不用從一個或多個網(wǎng)絡服務器16A-16C獲得。Web應用模塊40可以進一步與一個或多個web應用30A-30C通信來接收創(chuàng)建子組件18的實例的請求。在一個示例中,響應于這樣的請求,web應用模塊40可以與服務器通信模塊42通信來從一個或多個網(wǎng)絡服務器16A-16C獲得定義子組件18的至少一個軟件代碼部分。Web應用模塊40然后可以將該至少一個軟件代碼部分傳送給發(fā)出請求的web應用30A-30C??梢詧?zhí)行該軟件代碼部分,從而創(chuàng)建子組件18的實例ISA0在另一個示例中,web應用模塊40可以替代地與存儲器訪問模塊44通信來獲得該至少一個軟件代碼部分。例如,存儲器訪問模塊44可以確定定義所請求的子組件18的一個或多個代碼段是否被存儲在本地存儲器中,并且如果該一個或多個代碼段被存儲在本地存儲器中,則將該一個或多個代碼段傳送給發(fā)出請求的web應用30A-30C以供執(zhí)行,從而創(chuàng)建子組件18的實例ISA0然而,如果該一個或多個代碼段沒有被存儲在本地存儲器中,則web應用模塊40可以如上所述與服務器模塊42通信來獲得該一個或多個代碼段。同樣在圖6中所示,web應用模塊40可以包括狀態(tài)同步模塊46。狀態(tài)同步模塊46可以操作來使得能夠通過共享工作器14在多個子組件實例18A-18C之間本地同步狀態(tài)。多個子組件實例18A-18C可以在不同web應用中實例化(例如,第一子組件實例用于web應用30A以及第二子組件實例用于web應用30B)、或多個子組件實例可以在單個web應用(例如,web應用30A)中實例化。為了同步子組件18狀態(tài),狀態(tài)同步模塊46可以從web應用30A-30C的一個或多個子組件實例18A-18C接收子組件18狀態(tài)的指示。在一個示例中,狀態(tài)同步模塊46可以對所接收的子組件18狀態(tài)的指示進行分析來確定部分或全部子組件實例18A-18C是否應當由于狀態(tài)更新而被更新。根據(jù)該示例,狀態(tài)同步模塊46可以通過存儲器訪問模塊44或服務器模塊42獲得定義子組件18的軟件代碼。狀態(tài)同步模塊46然后可以與所接收的狀態(tài)更新一致地更新定義子組件18的軟件代碼,并且將更新的軟件代碼傳送給一個或多個web應用30A-30C。然后,可以執(zhí)行更新的軟件代碼來更新子組件實例18A-18C。狀態(tài)同步模塊46可以進一步與存儲器訪問模塊44通信來存儲更新的軟件代碼以供稍后使用。圖7是圖示與本公開的技術一致的方法的一個示例的流程圖。該方法包括從在計算設備上運作的web應用15A接收對子組件18的實例的請求(71)。該方法進一步包括獲得定義子組件18的至少一個軟件代碼部分(72)。在一個示例中,該方法包括從一個或多個網(wǎng)絡服務器16A-16C獲得該至少一個軟件代碼部分。在另一個示例中,該方法包括從計算設備10的本地存儲器25獲得該至少一個軟件代碼部分。在另一個示例中,該方法可以進一步包括確定將滿足該請求的至少一個軟件代碼部分是否被存儲在計算設備的本地存儲器25中,以及如果本地存儲器25不包括將滿足該請求的至少一個軟件代碼部分,則從一個或多個網(wǎng)絡服務器16A-16C獲得該至少一個軟件代碼部分。該方法進一步包括響應于該請求向web應用15A傳送該至少一個軟件代碼部分以創(chuàng)建子組件18的實例18A (73)。在一個示例中,該至少一個軟件代碼部分對計算設備10本地通信來創(chuàng)建子組件18的實例ISA0圖8是圖示與本公開的技術一致的方法的一個示例的流程圖。該方法包括在計算設備上運作的瀏覽器中,實例化被配置成響應于來自在該瀏覽器中運作的一個或多個web應用的至少一個請求而獲得網(wǎng)絡可訪問的信息的共享工作器應用(81)。該方法進一步包括:通過共享工作器14接收對子組件18的狀態(tài)更新的至少一個指示,其中子組件的至少一個實例正在瀏覽器中運作(82)??梢詮淖咏M件的實例18A、從子組件18的另一個實例18B或從主機web應用15A接收對子組件18的狀態(tài)更新的至少一個指示。子組件18的實例18A如上所述可能已由共享工作器14創(chuàng)建。該方法進一步包括對計算設備是本地地并且通過共享工作器響應于狀態(tài)更新的至少一個指示,更新子組件的至少一個實例18A(83)。在一個示例中,更新子組件的至少一個實例18A、18B包括傳送被更新成反映狀態(tài)更新的至少一個指示的至少一個軟件代碼部分。在另一個示例中,可以重復步驟82和83。例如,如果共享工作器14接收對子組件18的狀態(tài)更新的第二指示,則共享工作器可以響應于狀態(tài)更新的第二指示,更新子組件的至少一個實例18A。圖9是圖示根據(jù)本公開的技術的被配置成實例化一個或多個子組件18和/或使得能夠與一個或多個子組件18的實例通信/在一個或多個子組件18的實例之間通信的共享工作器應用的一個示例的框圖。上述共享工作器14的示例針對被配置成在同一 web域上運作的共享工作器14和web應用15A-15B (30A-30C)。如在此所述的域可以被描述為URI在第一斜杠之前的部分(例如,對于URI www.google, com/contacts,域是www.google,com)o出于安全目的,已知web瀏覽器12限制在不同域上運作的web應用之間的通信。如圖9中所描繪,本公開的技術可以適用于跨域以及如上所述的域內(nèi)。如圖9中所示,web應用90正在瀏覽器12中運作。Web應用90與第一域即域A相關聯(lián)。共享工作器94與第二域即域B相關聯(lián)。Web應用90可能期望子組件98為web應用90被實例化。然而,與上述示例不同,子組件98可能與不同于域A的第二域即域B相關聯(lián)。由于瀏覽器12的安全需求,可能阻止web應用90與域B的web應用,包括共享工作器94通信。如此,為了發(fā)起跨域通信,web應用90可以促使子web應用92被創(chuàng)建。在一個示例中,子web應用92與域A相關聯(lián),然后與域B相關聯(lián)地被創(chuàng)建。在另一個示例中,子web應用92與域B相關聯(lián)地被創(chuàng)建。在一個示例中,子web應用92是在相關領域眾所周知的內(nèi)嵌框架web應用(“iframe”)。子web應用92可以運作為用于在web應用90和與域B相關聯(lián)的共享工作器94和/或其他web應用之間的通信的代理。最初,子web應用92可以阻止來自web應用90的任何通信。子web應用92可以在允許與web應用90的跨域通信之前,首先安全驗證與域A相關聯(lián)的web應用90。子web應用92可以通過本領域已知的各種機制,包括安全令牌交換和/或白名單比較,來安全驗證與域A相關聯(lián)的web應用90。一旦經(jīng)過安全驗證,子web應用92可以保持活動以運作為用于跨域通信的代理。在一個示例中,web應用90可能期望使用與域B相關聯(lián)的子組件的功能。如此,web應用90可以如上所述傳送對創(chuàng)建子組件98的實例98A的請求。子組件98可以是被配置成為多于一個web應用提供web功能的組件。子web應用92可以接收該請求,并且確定共享工作器94是否正與域B相關聯(lián)地運作。如果共享工作器94沒有正與域B相關聯(lián)地運作,則子web應用92可以促使共享工作器94被實例化。子web應用92可以將對實例化子組件98的請求轉(zhuǎn)送給共享工作器應用94。如上所述,共享工作器應用94可能試圖確定定義所請求的子組件98的軟件代碼是否被存儲在瀏覽器12正在其上運作的計算設備的本地存儲器中。如果定義所請求的子組件98的軟件代碼被存儲在計算設備的本地存儲器中,則共享工作器94可以通過子web應用92將該軟件代碼傳送給web應用90以創(chuàng)建子組件實例98A。如果定義子組件98的軟件代碼沒有被存儲在本地存儲器中,則共享工作器94可以通過網(wǎng)絡與一個或多個網(wǎng)絡服務器通信來獲得該軟件代碼。一旦被獲得,共享工作器94就可以通過子web應用92將該軟件代碼傳送給web應用90以創(chuàng)建子組件實例98A。共享工作器94可以進一步將所獲得的定義子組件98的軟件代碼存儲在本地存儲器中,以供稍后使用。在圖9中未描繪的另一個示例中,共享工作器94可以使得能夠在與域A相關聯(lián)的子組件98的實例98A和與域B相關聯(lián)的子組件98的另一個實例(圖9中未示出)之間進行狀態(tài)同步。例如,如果與子組件實例98相關聯(lián)的子組件98的第二實例正與域B相關聯(lián)地運作,則共享工作器應用94可以響應于通過子web應用92從子組件實例98A接收的狀態(tài)更新,更新定義子組件的軟件代碼。共享工作器94然后可以將更新的軟件代碼傳送給子組件實例98A和/或與域B相關聯(lián)的第二子組件實例。因此,可以對瀏覽器12正在其上運作的計算設備本地地,同步子組件實例98和與域B相關聯(lián)的第二子組件實例的狀態(tài)。在上面參考圖9描述的示例可以是有利的,因為利用跨域通信來實例化子組件(例如,子組件98)和/或使得能夠在子組件之間進行本地狀態(tài)同步,可以更大減少由web瀏覽器的已知實現(xiàn)關于子組件共享引起的上述缺陷,因為進一步最小化了對網(wǎng)絡通信的需求。圖10是圖示與本公開的技術一致的方法的一個示例的流程圖。該方法包括通過在計算設備10上執(zhí)行的瀏覽器12執(zhí)行被配置成向計算設備所渲染的用戶接口(UI)元件38A、38B提供更新的共享工作器應用34 (1001)。該方法進一步包括通過瀏覽器12執(zhí)行被配置成展現(xiàn)第一 UI元件38A的視覺渲染的第一 web應用35A (1002)。該方法進一步包括通過瀏覽器12執(zhí)行被配置成展現(xiàn)第二 Π元件38B的視覺渲染的第二 web應用35B,其中第
二UI元件38B基本上類似于第一 UI元件38A( 1003)。該方法進一步包括通過共享工作器應用34并且從第一 UI元件38A接收對第一 UI元件38A的狀態(tài)更新,其中該狀態(tài)更新包括對待由第一 Π元件38A提供的視覺內(nèi)容的更新。該方法進一步包括通過共享工作器應用34對第一 UI元件38A和第二 UI元件38B的視覺渲染進行更新以反映所接收的狀態(tài)更新。圖11是圖示與本公開的技術一致的方法的一個示例的流程圖。該方法包括通過在計算設備10上執(zhí)行的瀏覽器12執(zhí)行主機web應用35A(1101)。該方法進一步包括通過瀏覽器12執(zhí)行被配置成向在計算設備上執(zhí)行的至少一個主機web應用提供至少一個用戶接口(UI)元件的共享工作器34 (1102)。該方法進一步包括從主機web應用35A并且通過共享工作器34接收對創(chuàng)建展現(xiàn)與主機web應用35A相關聯(lián)的UI元件38A的功能的視覺描繪的用戶接口(UI)元件38A的視覺渲染的請求(1103)。該方法進一步包括通過共享工作器34獲得可執(zhí)行來展現(xiàn)UI元件35A的視覺渲染的軟件(1104)。該方法進一步包括通過共享工作器34將所獲得的軟件存儲在計算設備10的存儲器中(1105)。該方法進一步包括響應于該請求而執(zhí)行所獲得的軟件來創(chuàng)建與主機web應用25A協(xié)同展現(xiàn)的UI元件38A的視覺渲染(1106)??梢灾辽俨糠忠杂布?、軟件、固件或其任何組合來實現(xiàn)在本公開中所述的技術。例如,可以在一個或多個處理器,包括一個或多個微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或任何其他等價集成或分立邏輯電路以及這樣的組件的任何組合內(nèi)實現(xiàn)所述技術的各個方面。詞語“處理器”或“處理電路” 一般可以指單獨或結(jié)合其他邏輯電路的任何前述邏輯電路、或任何其他等價電路。包括硬件的控制單元也可以執(zhí)行本公開的技術中的一個或多個??梢栽谕辉O備或單獨設備內(nèi)實現(xiàn)這樣的硬件、軟件和固件來支持在本公開中描述的各種技術。另外,任何所述單元、模塊或組件可以在一起實現(xiàn)或分別被實現(xiàn)為分立但是可共同操作的邏輯器件。將不同特征描述為模塊或單元意在強調(diào)不同功能方面,并且并不一定暗指這樣的模塊或單元必須由單獨的硬件、固件或軟件組件實現(xiàn)。相反,與一個或多個模塊或單元相關聯(lián)的功能可以由單獨的硬件、固件或軟件組件執(zhí)行、或被集成在共同或單獨的硬件、固件或軟件組件內(nèi)。還可以將在本公開中所述的技術具體化或編碼在包含指令的計算機可讀介質(zhì)中,諸如計算機可讀存儲介質(zhì)。嵌入或編碼在計算機可讀介質(zhì),包括計算機可讀存儲介質(zhì)中的指令可以促使一個或多個可編程處理器或其他處理器實現(xiàn)在此所述的技術中的一個或多個,諸如當包括或編碼在計算機可讀介質(zhì)中的指令被該一個或多個處理器執(zhí)行時。計算機可讀存儲介質(zhì)可以包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、可編程只讀存儲器(PR0M)、可擦可編程只讀存儲器(EPR0M)、電可擦可編程只讀存儲器(EEPROM),閃存、硬盤、光盤ROM (CD-ROM)、軟盤、帶盒、磁介質(zhì)、光介質(zhì)或其他計算機可讀介質(zhì)。在一些示例中,制品可以包括一個或多個計算機可讀存儲介質(zhì)。已描述了本公開的各種實施例。這些和其他實施例在所附權利要求的范圍內(nèi)。
權利要求
1.一種用于向視覺用戶接口元件提供更新的方法,所述方法包括: 通過在計算設備上執(zhí)行的瀏覽器執(zhí)行被配置成向所述計算設備所渲染的用戶接口(UI)元件提供更新的共享工作器應用; 通過所述瀏覽器執(zhí)行被配置成展現(xiàn)第一 UI元件的視覺渲染的第一 web應用; 通過所述瀏覽器執(zhí)行被配置成展現(xiàn)第二 Π元件的視覺渲染的第二 web應用,其中所述第二 UI元件基本上類似于所述第一 UI元件; 通過所述共享工作器應用并且從所述第一 UI元件接收對所述第一 UI元件的狀態(tài)更新,其中所述狀態(tài)更新包括對待由所述第一 Π元件提供的視覺內(nèi)容的更新;以及 通過所述共享工作器應用對所述第一 UI元件和所述第二 UI元件的所述視覺渲染進行更新以反映所接收的狀態(tài)更新。
2.根據(jù)權利要求1所述的方法,其中對所述第一UI元件和所述第二 UI元件的所述視覺渲染進行更新以反映所接收的狀態(tài)更新包括: 通過所述共享工作器應用獲得可執(zhí)行來定義至少所述第一 Π元件的所述視覺渲染的軟件; 對所述軟件進行修改以反映所接收的狀態(tài)更新; 執(zhí)行所述軟件以更新所述第一 UI元件的所述視覺渲染;以及 執(zhí)行所述軟件以更新所述第二 UI元件的所述視覺渲染。
3.根據(jù)權利要求2所述的方法,其中獲得可執(zhí)行來定義至少所述第一Π元件的所述視覺渲染的所述軟件包括: 從所述計算設備的存儲器獲得所述軟件。
4.根據(jù)權利要求2所述的方法,其中獲得可執(zhí)行來定義至少所述第一Π元件的所述視覺渲染的所述軟件包括: 通過網(wǎng)絡連接從網(wǎng)絡服務器獲得所述軟件。
5.根據(jù)權利要求2所述的方法,進一步包括: 將被修改成反映所接收的狀態(tài)更新的所述軟件存儲在所述計算設備的本地存儲器中。
6.根據(jù)權利要求5所述的方法,進一步包括: 通過所述共享工作器接收創(chuàng)建基本上類似于所述第一和第二 Π元件的第三Π元件的請求;以及 通過所述共享工作器執(zhí)行被修改成反映所接收的狀態(tài)更新的所存儲的軟件來創(chuàng)建所述第三Π元件以反映所接收的狀態(tài)更新。
7.根據(jù)權利要求1所述的方法,其中所述第一UI元件表示所述第一 web應用的功能,以及其中所述第一 web應用的所述功能從由以下組成的組中來選擇: 即時消息窗口; 聯(lián)系人采集器; 日歷事件輸入/更新窗口; 照片上載和/或展現(xiàn)窗口 ;以及 音頻/視頻展現(xiàn)/播放器窗口。
8.—種包括存儲指令的計算機可讀存儲介質(zhì)的制品,所述指令促使計算設備: 通過在計算設備上執(zhí)行的瀏覽器執(zhí)行被配置成向所述計算設備所渲染的用戶接口(UI)元件提供更新的共享工作器應用; 通過所述瀏覽器執(zhí)行被配置成展現(xiàn)第一 UI元件的視覺渲染的第一 web應用; 通過所述瀏覽器執(zhí)行被配置成展現(xiàn)第二 Π元件的視覺渲染的第二 web應用,其中所述第二 UI元件基本上類似于所述第一 UI元件; 通過所述共享工作器應用并且從所述第一 UI元件接收對所述第一 UI元件的狀態(tài)更新,其中所述狀態(tài)更新包括對待由所述第一 Π元件提供的視覺內(nèi)容的更新;以及 通過所述共享工作器應用對所述第一 UI元件和所述第二 UI元件的所述視覺渲染進行更新以反映所接收的狀態(tài)更新。
9.根據(jù)權利要求8所述的制品,其中所述計算機可讀存儲介質(zhì)進一步存儲指令,所述指令促使所述計算設備: 通過所述共享工作器應用獲得可執(zhí)行來定義至少所述第一 Π元件的所述視覺渲染的軟件; 對所述軟件進行修改以反映所接收的狀態(tài)更新; 執(zhí)行所述軟件以更新所述第一 Π元件的所述視覺渲染;以及 執(zhí)行所述軟件以更新所述第二 Π元件的所述視覺渲染。
10.根據(jù)權利要求8所述的制品,其中所述計算機可讀存儲介質(zhì)進一步存儲指令,所述指令促使所述計算設備: 從所述計算設備的存儲器獲得所述軟件。
11.根據(jù)權利要求8所述的制品,其中所述指令進一步促使所述計算設備: 通過網(wǎng)絡連接從網(wǎng)絡服務器獲得所述軟件。
12.根據(jù)權利要求8所述的制品,其中所述計算機可讀存儲介質(zhì)進一步存儲指令,所述指令促使所述計算設備: 將被修改成反映所接收的狀態(tài)更新的所述軟件存儲在所述計算設備的本地存儲器中。
13.根據(jù)權利要求12所述的制品,其中所述計算機可讀存儲介質(zhì)進一步存儲指令,所述指令促使所述計算設備: 通過所述共享工作器接收創(chuàng)建基本上類似于所述第一和第二 Π元件的第三Π元件的請求;以及 通過所述共享工作器執(zhí)行被修改成反映所接收的狀態(tài)更新的所存儲的軟件來創(chuàng)建所述第三UI元件以反映所接收的狀態(tài)更新。
14.根據(jù)權利要求12所述的制品,其中所述第一UI元件表示所述第一 web應用的功能,以及其中所述第一 web應用的所述功能從由以下組成的組中來選擇: 即時消息窗口; 聯(lián)系人采集器; 日歷事件輸入/更新窗口; 照片上載和/或展現(xiàn)窗口 ;以及 音頻/視頻展現(xiàn)/播放器窗口。
15.一種設備,包括: 瀏覽器,其被配置成執(zhí)行被配置成向所述計算設備所渲染的用戶接口(UI)元件提供更新的共享工作器應用,以及其中所述瀏覽器被進一步配置成執(zhí)行被配置成展現(xiàn)第一 UI元件的視覺渲染的第一 web應用和被配置成展現(xiàn)第二 Π元件的視覺渲染的第二 web應用;用于從所述第一 Π元件并且通過所述共享工作器應用接收對所述第一 Π元件的狀態(tài)更新的裝置,其中所述狀態(tài)更新包括對待由所述第一 Π元件提供的視覺內(nèi)容的更新;以及用于通過所述共享工作器應用對所述第一 Π元件和所述第二 Π元件的所述視覺渲染進行更新以反映所接收的狀態(tài)更新的裝置。
16.根據(jù)權利要求15所述的設備,進一步包括: 用于獲得可執(zhí)行來定義至少所述第一 Π元件的所述視覺渲染的軟件的裝置; 用于對所述軟件進行修改以反映所接收的狀態(tài)更新的裝置; 用于執(zhí)行所述軟件以更新所述第一 UI元件的所述視覺渲染的裝置;以及 用于執(zhí)行所述軟件以更新所述第二 UI元件的所述視覺渲染的裝置。
17.根據(jù)權利要求16所述的設備,其中用于獲得可執(zhí)行來定義至少所述第一Π元件的所述視覺渲染的軟件的裝置包括用于從所述計算設備的存儲器獲得所述軟件的裝置。
18.根據(jù)權利要求16所述的設備,其中用于獲得可執(zhí)行來定義至少所述第一Π元件的所述視覺渲染的軟件的裝置包括用于通過網(wǎng)絡連接從網(wǎng)絡服務器獲得所述軟件的裝置。
19.根據(jù)權利要求16所述的設備,進一步包括: 用于將被修改成反映所接收的狀態(tài)更新的所述軟件存儲在所述計算設備的本地存儲器中的裝置。
20.根據(jù)權利要求19所述的設備,進一步包括: 用于接收創(chuàng)建基本上類似于所述第一和第二 Π元件的第三Π元件的請求的裝置;以及 用于執(zhí)行被修改成反映所接收的狀態(tài)更新的所存儲的軟件來創(chuàng)建所述第三UI元件以反映所接收的狀態(tài)更新的裝置。
21.一種用于通過web應用展現(xiàn)視覺用戶接口元件的方法,所述方法包括: 通過在計算設備上執(zhí)行的瀏覽器執(zhí)行主機web應用; 通過所述瀏覽器執(zhí)行被配置成向在所述計算設備上執(zhí)行的至少一個主機web應用提供至少一個用戶接口(UI)元件的共享工作器; 從所述主機web應用并且通過所述共享工作器接收對創(chuàng)建展現(xiàn)與所述主機web應用相關聯(lián)的用戶接口(UI)元件的功能的視覺描繪的所述用戶接口(UI)元件的視覺渲染的請求; 通過所述共享工作器獲得可執(zhí)行來展現(xiàn)所述Π元件的所述視覺渲染的軟件; 通過所述共享工作器將所獲得的軟件存儲在所述計算設備的存儲器中;以及執(zhí)行所獲得的軟件來響應于所述請求而創(chuàng)建與所述主機web應用協(xié)同展現(xiàn)的所述UI元件的所述視覺渲染。
22.根據(jù)權利要求21所述的方法,其中所述Π元件是第一Π元件,以及其中所述方法進一步包括: 通過所述共享工作器接收創(chuàng)建第二 Π元件的視覺渲染的第二請求;以及 執(zhí)行所獲得的軟件來響應于所述第二請求而創(chuàng)建所述第二 UI元件的所述視覺渲染。
23.根據(jù)權利要求21所述的方法,其中獲 得可執(zhí)行來定義至少所述第一Π元件的所述視覺渲染的所述軟件包括:從所述計算設備的存儲器獲得所述軟件。
24.根據(jù)權利要求21所述的方法,其中獲得可執(zhí)行來定義至少所述第一Π元件的所述視覺渲染的所述軟件包括: 通過網(wǎng)絡連接從網(wǎng)絡服務器獲得所述軟件。
25.根據(jù)權利要求21所述的方法,其中與所述主機web應用相關聯(lián)的所述Π元件的功能的所述視覺描繪從由以下組成的組中來選擇: 即時消息窗口; 聯(lián)系人采集器; 日歷事件輸入/更新窗口; 照片上載和/或展現(xiàn)窗口 ;以及 音頻/視頻展現(xiàn)/播放器窗口。
26.根據(jù)權利要求21所述的方法,其中將所獲得的軟件存儲在所述計算設備的存儲器中包括將所獲得的軟件存儲在所述計算設備的易失性存儲器中。
27.一種包括存儲指令的計算機可讀存儲介質(zhì)的制品,所述指令促使計算設備: 通過在計算設備上執(zhí)行的瀏覽器執(zhí)行主機web應用; 通過所述瀏覽器執(zhí)行被配置成向在所述計算設備上執(zhí)行的至少一個主機web應用提供至少一個用戶接口(UI)元件的 共享工作器; 從所述主機web應用并且通過所述共享工作器接收對創(chuàng)建展現(xiàn)與所述主機web應用相關聯(lián)的用戶接口(UI)元件的功能的視覺描繪的所述用戶接口(UI)元件的視覺渲染的請求; 通過所述共享工作器獲得可執(zhí)行來展現(xiàn)所述Π元件的所述視覺渲染的軟件; 通過所述共享工作器將所獲得的軟件存儲在所述計算設備的存儲器中;以及執(zhí)行所獲得的軟件來響應于所述請求而創(chuàng)建與所述主機web應用協(xié)同展現(xiàn)的所述UI元件的所述視覺渲染。
28.根據(jù)權利要求21所述的制品,其中所述Π元件是第一Π元件,以及其中所述指令進一步促使所述計算設備: 通過所述共享工作器接收創(chuàng)建第二 Π元件的視覺渲染的第二請求;以及 執(zhí)行所獲得的軟件來響應于所述第二請求而創(chuàng)建所述第二 UI元件的所述視覺渲染。
29.根據(jù)權利要求21所述的制品,其中所述指令促使所述計算設備: 從所述計算設備的存儲器獲得所述軟件。
30.根據(jù)權利要求21所述的制品,其中所述指令促使所述計算設備: 通過網(wǎng)絡連接從網(wǎng)絡服務器獲得所述軟件。
31.根據(jù)權利要求21所述的制品,其中與所述主機web應用相關聯(lián)的所述Π元件的功能的所述視覺描繪從由以下組成的組中來選擇: 即時消息窗口; 聯(lián)系人采集器; 日歷事件輸入/更新窗口; 照片上載和/或展現(xiàn)窗口 ;以及 音頻/視頻展現(xiàn)/播放器窗口。
32.根據(jù)權利要求21所述的制品,其中所述指令進一步促使所述計算設備將所獲得的軟件存儲在所述計算設備的易失性存儲器中。
33.一種設備,包括: 由瀏覽器執(zhí)行的主機web應用; 由所述瀏覽器執(zhí)行的共享工作器應用,其中所述共享工作器應用包括: 用于從所述主機web應用接收對創(chuàng)建展現(xiàn)與所述主機web應用相關聯(lián)的用戶接口(UI)元件的功能的視覺描繪的所述用戶接口(UI)元件的視覺渲染的請求的裝置; 用于獲得可執(zhí)行來展現(xiàn)所述Π元件的所述視覺渲染的軟件的裝置; 用于將所獲得的軟件存儲在所述計算設備的存儲器中的裝置;以及用于執(zhí)行所獲得的軟件來響應于所述請求而創(chuàng)建與所述主機web應用協(xié)同展現(xiàn)的所述Π元件的所述視覺渲染的裝置。
34.根據(jù)權利要求33所述的設備,其中所述Π元件是第一UI元件,以及其中所述共享工作器進一步包括: 用于接收創(chuàng)建第二 UI元件的視覺渲染的第二請求的裝置;以及用于執(zhí)行所獲得的軟件來響應于所 述第二請求而創(chuàng)建所述第二 UI元件的所述視覺渲染的裝置。
35.根據(jù)權利要求33所述的設備,其中用于獲得可執(zhí)行來展現(xiàn)所述Π元件的所述視覺渲染的軟件的所述裝置從所述計算設備的存儲器獲得所述軟件。
36.根據(jù)權利要求33所述的設備,其中用于獲得可執(zhí)行來展現(xiàn)所述Π元件的所述視覺渲染的軟件的所述裝置通過網(wǎng)絡連接從網(wǎng)絡服務器獲得所述軟件。
37.根據(jù)權利要求33所述的設備,其中與所述主機web應用相關聯(lián)的所述Π元件的功能的所述視覺描繪從由以下組成的組中來選擇: 即時消息窗口; 聯(lián)系人采集器; 日歷事件輸入/更新窗口; 照片上載和/或展現(xiàn)窗口 ;以及 音頻/視頻展現(xiàn)/播放器窗口。
38.根據(jù)權利要求33所述的設備,用于將所獲得的軟件存儲在所述計算設備的存儲器中的所述裝置將所獲得的軟件存儲在所述計算設備的易失性存儲器中。
全文摘要
本公開的技術針對被配置成為一個或多個web應用創(chuàng)建一個或多個實例和/或本地同步一個或多個子組件實例的狀態(tài)的共享工作器應用。在一個示例中,瀏覽器的共享工作器通過從瀏覽器正在其上運作的計算設備的存儲器或通過網(wǎng)絡獲得定義子組件的軟件,并且提供對計算設備是本地的該軟件以供執(zhí)行來創(chuàng)建子組件的實例,來便于創(chuàng)建子組件實例。在另一個示例中,如上所述的瀏覽器的共享工作器便于對瀏覽器正在其上運作的計算設備是本地的對多個子組件實例的狀態(tài)更新。
文檔編號G06F9/44GK103180822SQ201180049050
公開日2013年6月26日 申請日期2011年7月28日 優(yōu)先權日2010年8月12日
發(fā)明者德雷克·菲利普斯, 安德魯·格里夫, 馬修·博洛漢, 羅伯特·克勒格爾 申請人:谷歌公司