亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于有條件地刷新工作區(qū)用戶界面的方法與系統(tǒng)的制作方法

文檔序號:6521315閱讀:159來源:國知局
用于有條件地刷新工作區(qū)用戶界面的方法與系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開涉及用于有條件地刷新工作區(qū)用戶界面的方法與系統(tǒng)。在一種實施例中,用于有條件地刷新工作區(qū)用戶界面(UI)的系統(tǒng)包括:適于接收刷新一個或多個工作區(qū)UI的請求的邏輯,其中一個或多個工作區(qū)UI是在文檔對象模型(DOM)中提供的,適于確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI的邏輯,適于在確定要重新加載DOM時重新加載DOM的邏輯,及適于在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI的邏輯。根據(jù)更多的實施例,描述了用于有條件的刷新工作區(qū)UI的其它系統(tǒng)、方法與計算機(jī)程序產(chǎn)品。
【專利說明】用于有條件地刷新工作區(qū)用戶界面的方法與系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用戶界面,并且更具體地,涉及通過有條件地刷新工作區(qū)用戶界面(UI)來平衡web應(yīng)用的性能與穩(wěn)定性。
【背景技術(shù)】
[0002]在web UI中,對于使用面向頁面的匯編(assembly)的興趣在增長。術(shù)語“面向頁面的”暗示每個任務(wù)都封裝在自己的瀏覽器頁面中。每個頁面共享公共的元素,諸如公共的首部。但是發(fā)起任務(wù)涉及至少一個頁面加載,這與更令人期望的、也被稱為AJAX加載的異步JavaScript與可擴(kuò)展標(biāo)記語言(XML)加載相反,其中AJAX加載使用后臺通道或通路,利用該后臺通道或通路,加載頁面和/或與服務(wù)器交換信息。AJAX在頁面中被廣泛使用,但是不用于加載頁面。作為一個例子,有些企業(yè)和/或云管理解決方案,諸如IBM的PureScale,可以是面向頁面的,并且利用重復(fù)的頁面加載來加載任務(wù)。相反,有些系統(tǒng)管理器或者存儲管理器,諸如IBM的Storwise,可以使用在其上加載,諸如經(jīng)AJAX加載,每個任務(wù)的單個長運行頁面。
[0003]面向頁面的設(shè)計最能適應(yīng)現(xiàn)代Π的可擴(kuò)展性。例如,IBM的柔性系統(tǒng)管理器(FSM)控制臺包括來自許多不同開發(fā)者或合作者的插件,這些插件可以由不同的組織、以不同的調(diào)度、利用不同的開發(fā)實踐、并且有可能利用不同水平的專業(yè)知識來創(chuàng)建。
[0004]面向頁面的設(shè)計有助于以幾種方式處理這些不平等。一種方式是通過保持每個任務(wù)在單獨的頁面中,任務(wù)是隔離的并且防止其使架構(gòu)不穩(wěn)。每個頁面刷新在任務(wù)之間完全清理干凈,從而避免內(nèi)存泄漏與性能降級。此外,通過保持每個任務(wù)在單獨的頁面中,加強(qiáng)了組件化,因此,在不使用良好架構(gòu)的應(yīng)用編程接口(API)的情況下任務(wù)不會變成相互依賴的。并且,面向頁面的Π更適合瀏覽器范例,自然而然地支持多個瀏覽器窗口與選項卡、書簽和歷史。所有這些在單頁面的Π中也是可能的,但是不那么容易。
[0005]面向頁面的Π的缺點是性能。每個頁面必須非??焖俚丶虞d,或者用戶將寧愿選擇不重新加載頁面的不同產(chǎn)品,即使這種產(chǎn)品在長時間的會話后變得不穩(wěn)定。通過獲得顯示的初始內(nèi)容,同時仍然加載用于該頁面的其它內(nèi)容,Web應(yīng)用獲得了快速頁面加載。盡管現(xiàn)代Π以這種方式操作,但是頁面的內(nèi)容可能非常豐富,即使在它們是第一次給出時也是如此。初始視圖需要JavaScript庫,即使是在從瀏覽器的高速緩存加載時,這可能也需要三秒鐘來加載和解析。一秒鐘頁面轉(zhuǎn)換的目標(biāo)(作為用于快速Π行為的一個重要閾值而被依賴)理論上是可以利用面向頁面的設(shè)計獲得的,但是具有挑戰(zhàn)性并且很昂貴。
[0006]因此,提供快速頁面轉(zhuǎn)換和穩(wěn)定性的設(shè)計將是非常有利的。

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

[0007]在一種實施例中,一種用于有條件地刷新工作區(qū)用戶界面(UI)的系統(tǒng)包括:適于接收刷新一個或多個工作區(qū)Π的請求的邏輯,其中一個或多個工作區(qū)Π是在文檔對象模型(DOM)中提供的;適于確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)π的邏輯;適于在確定要重新加載DOM時重新加載DOM的邏輯;及適于在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI的邏輯。
[0008]在另一種實施例中,一種用于有條件地刷新工作區(qū)用戶界面(UI)的方法包括:接收刷新一個或多個工作區(qū)UI的請求,其中一個或多個工作區(qū)UI是在文檔對象模型(DOM)中提供的;確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI ;在確定要重新加載DOM時重新加載DOM ;及在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI。
[0009]本發(fā)明的其它方面與實施例將從以下具體描述中變得顯而易見,當(dāng)結(jié)合附圖一起閱讀時,該具體描述通過例子說明了本發(fā)明的原理。
【專利附圖】

【附圖說明】
[0010]圖1圖示了根據(jù)一種實施例的網(wǎng)絡(luò)體系結(jié)構(gòu)。
[0011]圖2示出了根據(jù)一種實施例的可以與圖1的服務(wù)器和/或客戶端關(guān)聯(lián)的代表性硬件環(huán)境。
[0012]圖3示出了根據(jù)一種實施例的用于有條件地刷新工作區(qū)用戶界面(UI)的方法。【具體實施方式】
[0013]以下描述是為了說明本發(fā)明的通用原理而進(jìn)行的,而不是要限定本文所保護(hù)的發(fā)明性概念。另外,本文所述的特定特征可以結(jié)合其它所述特征在各種可能的組合與變更中的每一種中使用。
[0014]除非在本文中另外具體定義,否則所有術(shù)語都要賦予其最廣泛可能的解釋,包括從本說明書暗示的意義及本領(lǐng)域技術(shù)人員所理解的和/或詞典、專著等中所定義的意義。
[0015]還必須指出,如在本說明書和所附權(quán)利要求中所使用的,除非另外規(guī)定,否則單數(shù)形式“一個”和“這個”是要也包括復(fù)數(shù)的所指對象。還應(yīng)當(dāng)進(jìn)一步理解,當(dāng)在本說明書使用時,術(shù)語“包括”和/或“包含”規(guī)定了所述特征、整數(shù)、步驟、操作、元素和/或部件的存在,但是并不排除一個或多個其它特征、整數(shù)、步驟、操作、元素、部件和/或其組的存在或添加。
[0016]以下描述公開了用于在某些條件觸發(fā)頁面重新加載之前根據(jù)導(dǎo)航算法重復(fù)使用相同的瀏覽器頁面來加載個別工作區(qū)用戶界面(UI)—其是新的或者是重新加載的UI一一的系統(tǒng)、方法與計算機(jī)程序產(chǎn)品的幾種優(yōu)選實施例。這種算法的一個目標(biāo)是提供一頁Π方案的性能,同時維持面向頁面的Π的穩(wěn)定性與其它優(yōu)點。因此,一種混合解決方案既利用面向頁面的UI又利用單頁UI工具,盡管在必要的時候可以利用頁面重新加載在頁面之間導(dǎo)航,但是不這樣做就得通過利用JavaScript、異步JavaScript與可擴(kuò)展標(biāo)記語言(XML) (AJAX)和/或其它合適工具重建頁面來在頁面之間導(dǎo)航。
[0017]在一種通用的實施例中,一種用于有條件地刷新工作區(qū)用戶界面(UI)的系統(tǒng)包括:適于接收刷新一個或多個工作區(qū)Π的請求的邏輯,其中一個或多個工作區(qū)Π是在文檔對象模型(DOM)中提供的;適于確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)Π的邏輯;適于在確定要重新加載DOM時重新加載DOM的邏輯;及適于在確定刷新一個或多個工作區(qū)Π時在不重新加載DOM的情況下刷新一個或多個工作區(qū)Π的邏輯。
[0018]在另一種實施例中,一種用于有條件地刷新工作區(qū)用戶界面(UI)的方法包括:接收刷新一個或多個工作區(qū)UI的請求,其中一個或多個工作區(qū)UI是在文檔對象模型(DOM)中提供的;確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI ;在確定要重新加載DOM時重新加載DOM ;及在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI。
[0019]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“邏輯” “電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各個方面還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0020]可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0021]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序,比如具有一個或多個導(dǎo)線的電連接,光纖等。
[0022]計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0023]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0024]下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計算機(jī)程序指令在通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置??梢允褂萌魏晤愋偷奶幚砥鳎缰醒胩幚韱卧?CPU)、集成電路(1C)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、微處理器等等。
[0025]也可以把這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)0
[0026]計算機(jī)程序指令還可以加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上,使得一系列操作步驟在計算機(jī)、其它可編程裝置或者其它設(shè)備上執(zhí)行以產(chǎn)生一種計算機(jī)實現(xiàn)的過程,使得在所述計算機(jī)或者其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在所述流程圖和/或框圖的一個或多個塊中所指定的功能/動作的過程。
[0027]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0028]圖1圖示了根據(jù)一種實施例的網(wǎng)絡(luò)體系結(jié)構(gòu)100。如圖1中所示,提供了多個遠(yuǎn)程網(wǎng)絡(luò)102,包括第一遠(yuǎn)程網(wǎng)絡(luò)104和第二遠(yuǎn)程網(wǎng)絡(luò)106。網(wǎng)關(guān)101可以稱合在遠(yuǎn)程網(wǎng)絡(luò)102與近端網(wǎng)絡(luò)108之間。在所給出的網(wǎng)絡(luò)體系結(jié)構(gòu)100的背景下,網(wǎng)絡(luò)104、106每個都可以采用包括但不限于LAN、像互聯(lián)網(wǎng)之類的WAN、公共交換電話網(wǎng)絡(luò)(PSTN)、內(nèi)部電話網(wǎng)絡(luò)等的任何形式。
[0029]在使用當(dāng)中,網(wǎng)關(guān)101充當(dāng)從遠(yuǎn)程網(wǎng)絡(luò)102到近端網(wǎng)絡(luò)108的入口點。因此,網(wǎng)關(guān)101可以充當(dāng)能夠指引到達(dá)網(wǎng)關(guān)101的給定數(shù)據(jù)分組的路由器,和為給定分組提供出入網(wǎng)關(guān)101的實際路徑的交換機(jī)。
[0030]進(jìn)一步包括耦合到近端網(wǎng)絡(luò)108并且可以經(jīng)網(wǎng)關(guān)101從遠(yuǎn)程網(wǎng)絡(luò)102訪問的至少一個數(shù)據(jù)服務(wù)器114。應(yīng)當(dāng)指出,數(shù)據(jù)服務(wù)器114可以包括任何類型的計算設(shè)備/組件。耦合到每個數(shù)據(jù)服務(wù)器114的是多個用戶設(shè)備116。這種用戶設(shè)備116可以包括臺式計算機(jī)、膝上型計算機(jī)、手持式計算機(jī)、打印機(jī)或者任何其它類型的邏輯。應(yīng)當(dāng)指出,在一種實施例中,用戶設(shè)備111還可以直接耦合到任一網(wǎng)絡(luò)。
[0031 ] 外圍設(shè)備120或者一系列外圍設(shè)備120,例如傳真機(jī)、打印機(jī)、聯(lián)網(wǎng)和/或本地的存儲單元或系統(tǒng)等,可以耦合到網(wǎng)絡(luò)104、106、108中的一個或多個。應(yīng)當(dāng)指出,數(shù)據(jù)庫和/或附加的組成部分可以與耦合到網(wǎng)絡(luò)104、106、108的任何類型的網(wǎng)絡(luò)元件一起使用或者集成到其中。在所給出的描述的背景下,網(wǎng)絡(luò)元件可以指網(wǎng)絡(luò)的任何組成部分。
[0032]根據(jù)有些方法,本文所述的方法與系統(tǒng)可以利用虛擬系統(tǒng)和/或仿真一個或多個其它系統(tǒng)的系統(tǒng)和/或在其上實現(xiàn),所述系統(tǒng)諸如仿真IBM z/OS環(huán)境的UNIX系統(tǒng)、虛擬寄存 MICROSOFT WINDOWS 環(huán)境的 UNIX 系統(tǒng)、仿真 IBM z/OS 環(huán)境的 MICROSOFT WINDOWS 系統(tǒng)等。在有些實施例中,這種虛擬化和/或仿真可以通過使用VMWARE軟件來增強(qiáng)。
[0033]在更多方法中,一個或多個網(wǎng)絡(luò)104、106、108可以代表通常被稱為“云”的系統(tǒng)群集。在云計算中,共享的資源,諸如處理能力、外圍設(shè)備、軟件、數(shù)據(jù)、服務(wù)器等,按需提供給云中的任何系統(tǒng),由此允許跨許多計算系統(tǒng)訪問與分布服務(wù)。云計算一般涉及在云中操作的系統(tǒng)之間的互聯(lián)網(wǎng)連接,但是也可以使用連接系統(tǒng)的其它技術(shù)。
[0034]圖2示出了根據(jù)一種實施例的與圖1的用戶設(shè)備116和/或服務(wù)器114關(guān)聯(lián)的代表性硬件環(huán)境。這個圖說明了具有中央處理單元210,諸如微處理器,及經(jīng)系統(tǒng)總線212互連的多個其它單元的工作站的典型硬件配置。
[0035]圖2中所示的工作站包括隨機(jī)存取存儲器(RAM) 214、只讀存儲器(ROM) 216、用于把諸如磁盤存儲單元220的外圍設(shè)備連接到總線212的1/0適配器218、用于把鍵盤224、鼠標(biāo)226、揚(yáng)聲器228、麥克風(fēng)232和/或諸如觸摸屏和數(shù)碼相機(jī)(未示出)的其它用戶接口設(shè)備連接到總線212的用戶接口適配器222、用于把工作站連接到通信網(wǎng)絡(luò)235(諸如,數(shù)據(jù)處理網(wǎng)絡(luò))的通信適配器234及用于把總線212連接到顯示設(shè)備238的顯示器適配器236。
[0036]工作站可以具有駐留在其上的操作系統(tǒng),諸如Microsoft WilldOWS?.操作系統(tǒng)
(OS)、MAC OS、UNIX OS等。將認(rèn)識到,優(yōu)選實施例還可以在除所提到的那些之外的平臺和操作系統(tǒng)上實現(xiàn)。連同面向?qū)ο蟮木幊谭椒ㄒ黄穑瑑?yōu)選實施例可以利用JAVA、XML、C和/或C++語言或者其它編程語言來編寫。可以使用已經(jīng)越來越多地被用于開發(fā)復(fù)雜應(yīng)用的面向?qū)ο蟮木幊?00P)。
[0037]當(dāng)你從一個工作區(qū)UI導(dǎo)航到另一個時,一個根本的區(qū)別在于新的工作區(qū)UI是將作為新的頁面加載來加載,還是它將在相同的DOM中被刷新。當(dāng)加載新的DOM時,舊DOM中造成問題的任何種類的垃圾或垃圾代碼都被除去了。然而,如果AJAX或某種其它合適的技術(shù)用于簡單地刷新該同一 DOM中的工作區(qū)UI,則所有相同的素材都有可能仍然處于該DOM中。當(dāng)一個工作區(qū)Π在相同的DOM中被刷新時,不是所有的JavaScript庫都需要被重新加載并且這節(jié)省了許多時間。但是,存在DOM隨著時間推移而退化并且一些元素不能正確清理及代碼中存在程序缺陷并且這些程序缺陷開始顯現(xiàn)的風(fēng)險。瀏覽器技術(shù),并且更具體地說是JavaScript,沒有健壯到足以預(yù)防這種情況發(fā)生。當(dāng)前使用的瀏覽器技術(shù)一般不能夠運行企業(yè)系統(tǒng),因此,通過清除DOM并且全都再次加載并且以干凈的行為記錄開始,這些問題可以周期性地解決。
[0038]現(xiàn)在參考圖3,示出了根據(jù)一種實施例的用于有條件地刷新工作區(qū)Π的方法300。根據(jù)本發(fā)明,在各種實施例中,除其它的之外,方法300可以在圖1-2中所繪出的任一環(huán)境中執(zhí)行。當(dāng)然,如本領(lǐng)域技術(shù)人員在閱讀所給出的描述時將理解的,比圖3中具體描述的更多或更少的操作可以包括在方法300中。
[0039]方法300的每一個步驟都可以由操作環(huán)境的任何合適組件執(zhí)行。諸如,在各種非限制性實施例中,方法300可以部分地或者完全地由企業(yè)系統(tǒng)管理器、網(wǎng)絡(luò)控制器、計算系統(tǒng)、服務(wù)器、可以嵌入系統(tǒng)和/或在系統(tǒng)中操作的處理器(諸如CPU、ASIC、FPGA等)等執(zhí)行。[0040]如圖3中所示,方法300可以用操作302啟動,其中接收刷新工作區(qū)Π的請求。工作區(qū)Π是文檔對象模型(DOM)中操作的Π的一部分,DOM在本文可以被稱為頁面或者web頁面。DOM可以包括多個單個的工作區(qū)UI,每個工作區(qū)UI都顯示內(nèi)容和/或能夠從用戶接收輸入,每個工作區(qū)UI由工作區(qū)程序、應(yīng)用程序或例程提供。每個工作區(qū)都能夠操作和顯示任意數(shù)量的窗口小部件、應(yīng)用程序、輸入/輸出I/O模塊等,如本領(lǐng)域技術(shù)人員將知道的那樣,并且能夠在該工作區(qū)UI中向顯示器顯示要與用戶交互的內(nèi)容和/或經(jīng)在DOM中操作的工作區(qū)UI上提供的I/O模塊從顯示器接收內(nèi)容。
[0041]這種請求可以由任何來源生成,諸如從提供內(nèi)容的服務(wù)器或者計算系統(tǒng)、從寄存內(nèi)容的服務(wù)器或計算系統(tǒng)、從由于滿足某種標(biāo)準(zhǔn),諸如定時器到期、用戶動作等,而觸發(fā)該請求的(可以在任何服務(wù)器或計算系統(tǒng)上執(zhí)行的)例程或應(yīng)用程序、或者任何其它合適的請求來源生成。
[0042]在一種實施例中,請求可以由于用戶動作而觸發(fā)。諸如,一般來說,當(dāng)用戶導(dǎo)航到新的工作區(qū)Π時,請求將被生成。響應(yīng)用戶嘗試從當(dāng)前的工作區(qū)Π導(dǎo)航(有可能是通過點擊鏈接、在地址域中輸入地址、輸入可識別的字符串,等等),發(fā)送該請求,其中用戶動作指示要加載哪個新工作區(qū)Π。
[0043]例如,在每次導(dǎo)航到新頁面時,可以觸發(fā)刷新一個或多個工作區(qū)Π中的內(nèi)容的請求。但是,任何觸發(fā)器都可以用于生成這種請求,諸如定時器的到期、在AJAX調(diào)用某個數(shù)量之后、或者本領(lǐng)域中已知的任何其它觸發(fā)事件。
[0044]在操作304,確定是重新加載DOM還是在不重新加載頁面的情況下刷新DOM中的一個或多個工作區(qū)UI。提供這種確定的任何方法都可以使用。在一種實施例中,一種算法可以用于確定是重新加載DOM還是刷新DOM中的一個或多個工作區(qū)UI。
[0045]為了提供這種決定,這種算法可以依賴一個或多個條件。下面描述可以用于觸發(fā)頁面重新加載的一個或多個條件。其它條件也可以附加地或者代替本文所述的任何條件使用。當(dāng)然,在實現(xiàn)之后,在不擴(kuò)展該算法的范圍的情況下,用戶可以規(guī)定任何附加條件或者除去任何已有的條件不予考慮。
[0046]I)總是或者從不:在這種示例性條件下,每個工作區(qū)UI可以包括某種指示器,其指示該工作區(qū)UI是要利用頁面重新加載來刷新,還是要在同一 DOM中重建該工作區(qū)UI (刷新該工作區(qū)Π)。這個指示器可以是能夠轉(zhuǎn)播這種信息的任何合適機(jī)制,諸如標(biāo)志、位、句柄、配置等。在一種實施例中,該指示器可以是標(biāo)志,并且Π可以維護(hù)RELOAD (重新加載)標(biāo)志,其中TRUE (真)指示總是利用新頁面來加載每個新工作區(qū)UI,而FALSE (假)指示在同一 DOM中重建每個新工作區(qū)UI。換句話說,標(biāo)志在面向頁面的(每次都加載新頁面)與單頁面的(工作區(qū)UI在同一 DOM中被刷新)操作之間切換。標(biāo)志可以缺省為FALSE或TRUE,并且可以在任何時候被用戶切換成交替選擇。諸如,如果該標(biāo)志缺省為FALSE,則為了診斷或避免穩(wěn)定性問題,它可以切換成TRUE。這些穩(wěn)定性問題會在開發(fā)周期中或者在現(xiàn)場操作過程中發(fā)生。
[0047]2)當(dāng)檢測到內(nèi)存泄漏時:在這種示例性條件下,當(dāng)DOM的任何窗口小部件被破壞時,該算法都可以檢查內(nèi)存泄漏。在可公開獲得的開放源碼模塊化JavaScript庫Dojo中,可以通過從現(xiàn)有的窗口小部件查找孤立的窗口小部件,即,在DOM中不再有父窗口小部件或者不再有附連到該DOM的父窗口小部件的遺留的窗口小部件,來實現(xiàn)。并且,當(dāng)構(gòu)建新工作區(qū)Π時,如果一個窗口小部件由于被發(fā)現(xiàn)已經(jīng)存在(B卩,其ID已經(jīng)在使用中)而不能被構(gòu)建,則暗示該DOM沒有從上次頁面加載中清理干凈。響應(yīng)這些示例性內(nèi)存泄漏中的任一個,導(dǎo)航算法可以強(qiáng)迫DOM的頁面重新加載,以便在DOM中提供新的工作區(qū)UI。錯誤日志(優(yōu)選地在寄存該DOM的服務(wù)器上)可以跟蹤并指示該問題,用于將來診斷。
[0048]3)當(dāng)工作區(qū)Π在“受罰席”中時:在這種示例性條件下,如果工作區(qū)UI,或者來自給定開發(fā)者或合作者(支持個別工作區(qū)Π的組織)的所有工作區(qū)UI,被發(fā)現(xiàn)是泄漏內(nèi)存或者以別的方式使DOM不穩(wěn)定,則那些工作區(qū)Π可以被標(biāo)記為“受罰席”,指示這個特定的工作區(qū)Π不能正確工作。任何時候當(dāng)用戶導(dǎo)航離開指示為“受罰席”的任何工作區(qū)Π時,導(dǎo)航算法都可以觸發(fā)重新加載DOM的頁面刷新。一個可能的實踐將是以這種方式對所有新工作區(qū)Π (或開發(fā)者)都進(jìn)行檢查,直到由于隨著時間推移沒有內(nèi)存泄漏而證明工作區(qū)Π在DOM中是成熟和穩(wěn)定的。
[0049]4)基于工作區(qū)UI的域:在這種示例性條件下,每個工作區(qū)UI可以基于哪個開發(fā)者提供該工作區(qū)Π來分類,這指示不同的域。域可以是“存儲”、“聯(lián)網(wǎng)”、“虛擬化”等。當(dāng)用戶在特定的域中導(dǎo)航時,DOM從不重新加載,而是在DOM中刷新每個受影響的工作區(qū)UI。但是,當(dāng)用戶從當(dāng)前域跨到另一個域時,發(fā)生DOM的重新加載。這樣做的優(yōu)點是把每個域放到其自己的DOM中,使得(具有其自己域的)每個開發(fā)者擁有其自己的問題。以這種方式,當(dāng)發(fā)生問題時,開發(fā)者不會互相指責(zé)。(在系統(tǒng)管理產(chǎn)品中,這是一個正在發(fā)生并且頻繁遇到的問題。)當(dāng)任何菜單和上下文菜單都通過域來組織時,這種機(jī)制更容易被用戶理解,使得允許用戶學(xué)習(xí)預(yù)測哪些任務(wù)觸發(fā)頁面重新加載而哪些只導(dǎo)致DOM中的工作區(qū)UI刷新。應(yīng)當(dāng)指出,根據(jù)一種實施例,DOM的基本架構(gòu)頁面不被看作任何一個域的一部分,并且無需重新加載就可以來回導(dǎo)航。
[0050]5)基于時間:在這種示例性條件下,在從上次重新加載以來經(jīng)過預(yù)定時間量之后,導(dǎo)航算法可以觸發(fā)DOM重新加載。諸如,這個條件可以在經(jīng)過10分鐘的使用、30分鐘的使用、I小時、I天等時被觸發(fā)。這個條件可以用于加強(qiáng)DOM中良好的保健(hygiene)。
[0051]6)基于使用:在這種示例性條件下,在從上次頁面重新加載以來經(jīng)過一定量的活動之后,導(dǎo)航算法可以觸發(fā)DOM重新加載。任何標(biāo)準(zhǔn)都可以用于確定使用,諸如工作區(qū)Π導(dǎo)航、頁面導(dǎo)航、利用AJAX的刷新等的次數(shù)。在一種實施例中,當(dāng)觀察到預(yù)定數(shù)量的活動監(jiān)聽者(listener)和/或句柄時,可以觸發(fā)DOM重新加載。該預(yù)定數(shù)量應(yīng)當(dāng)大到足以暗示監(jiān)聽者或句柄中的泄漏,并且在正常使用中不能被觸發(fā)。這個條件也可以用于加強(qiáng)DOM中良好的保健。
[0052]7)基于性能:在這種示例性條件下,當(dāng)DOM或者DOM中個別工作區(qū)UI的性能降到低于性能閾值時,導(dǎo)航算法可以觸發(fā)DOM重新加載。任何標(biāo)準(zhǔn)都可以用于確定性能,諸如用于執(zhí)行任務(wù)的資源的數(shù)量、處理器的使用、執(zhí)行任務(wù)所需的時間或者本領(lǐng)域技術(shù)人員已知的任何其它指示性能的標(biāo)準(zhǔn)。性能閾值可以預(yù)先確定或者可以是基于在典型操作中由DOM獲得的度量的動態(tài)值。
[0053]以上所述條件中的任一個,及沒有具體描述的那些條件,都可以利用圖形用戶界面(GUI)來初始化和/或管理,在GUI中用戶可以選擇某些參數(shù)、閾值和/或用于任何條件的值,并且可以對某些工作區(qū)UI指定某些條件,使得這些工作區(qū)UI將只在滿足根據(jù)⑶I中的設(shè)置的條件時利用頁面加載來刷新。[0054]在操作306中,當(dāng)確定重新加載DOM時,該DOM被重新加載,例如,頁面被重新加載并且該頁面中的所有工作區(qū)UI被重新加載,由此提供更新后的工作區(qū)UI并且確保良好的DOM衛(wèi)生和增加的穩(wěn)定性。
[0055]在操作308中,當(dāng)確定刷新一個或多個工作區(qū)Π時,該一個或多個工作區(qū)Π在不重新加載DOM的情況下被刷新,例如,頁面不重新加載,但一個或多個個別工作區(qū)UI在該DOM中被刷新,由此提供比利用DOM重新加載可能發(fā)生的情況更快地被刷新的一個或多個更新的工作區(qū)Π。
[0056]在一種實施例中,AJAX可以用于在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI。
[0057]在執(zhí)行操作306和/或308中任何一個之后,方法300等待,有可能等待,將要接收的另一個請求,在那個時候,方法300返回操作302。否則,方法300由于沒有接收到其它請求而結(jié)束。
[0058]根據(jù)另一種實施例,導(dǎo)航算法的實驗與使用可能導(dǎo)致最有效的觸發(fā)器,及新的觸發(fā)器是否需要設(shè)計成解決在實現(xiàn)之前不能預(yù)見的情況。這些新觸發(fā)器可以結(jié)合以使得頁面重新加載,而不是簡單刷新DOM中的一個或多個工作區(qū)Π。
[0059]根據(jù)一種實施例,可以使用用于有條件地刷新工作區(qū)Π的系統(tǒng)。該系統(tǒng)可以包括:適于接收刷新一個或多個工作區(qū)UI的請求的邏輯,其中一個或多個工作區(qū)UI是在DOM中提供的;適于確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI的邏輯;適于在確定要重新加載DOM時重新加載DOM的邏輯;及適于在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI的邏輯。
[0060]根據(jù)各種實現(xiàn),任何其它實施例和/或關(guān)于方法300描述的方法都可以作為邏輯包括在該系統(tǒng)中。
[0061]在另一種實施例中,方法300可以實現(xiàn)為存儲到計算機(jī)可讀存儲介質(zhì)的計算機(jī)程序產(chǎn)品。方法300的每個操作可以在可以由計算機(jī)執(zhí)行和/或讀取的計算機(jī)可讀程序代碼中實現(xiàn)。
[0062]盡管有些算法可以提供為了提供更快重新加載時間而在DOM中高速緩存一定數(shù)量的頁面的高速緩存功能,但是這通常只在一些頁面重用嚴(yán)重的時候才有效。當(dāng)在任意給定系統(tǒng)中使用的頁面數(shù)量太大時,諸如對于系統(tǒng)管理解決方案,光靠其自己,高速緩存方法并不是適當(dāng)?shù)慕鉀Q方案。此外,隨著時間推移,第三方、合作者和開發(fā)者可能向該生態(tài)系統(tǒng)添加更多的頁面,并且用戶可以在各種常見使用情況中的任一種期間訪問許多新頁面。因此,需要不僅僅是簡單的高速緩存功能來提供給這些使用情況。
[0063]附圖中的流程圖和框圖說明了根據(jù)本發(fā)明各種實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或者代碼的一部分,其包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。還應(yīng)當(dāng)指出,在有些備用的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本上并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依賴所涉及的功能而定。還要指出的是,框圖和/或流程圖中的每個方框以及框圖和/或流程圖中方框的組合可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0064]很清楚,以上系統(tǒng)和/或方法的各種特征可以按任何方式組合,從而產(chǎn)生來自以上所給出的描述的多種組合。
[0065]還將進(jìn)一步認(rèn)識到,本發(fā)明的實施例可以以代表消費者部署的、提供按需服務(wù)的服務(wù)形式提供。
[0066]盡管以上已經(jīng)描述了各種實施例,但是應(yīng)當(dāng)理解,它們僅僅是作為例子給出的,而不是限制。因此,優(yōu)選實施例的廣度與范圍不應(yīng)當(dāng)由上述任何示例性實施例來限定,而是應(yīng)當(dāng)只根據(jù)以下權(quán)利要求及其等同來定義。
【權(quán)利要求】
1.一種用于有條件地刷新工作區(qū)用戶界面(UI)的系統(tǒng),所述系統(tǒng)包括: 適于接收刷新一個或多個工作區(qū)UI的請求的邏輯,其中一個或多個工作區(qū)UI是在文檔對象模型(DOM)中提供的; 適于確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI的邏輯; 適于在確定要重新加載DOM時重新加載DOM的邏輯;及 適于在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)Π的邏輯。
2.如權(quán)利要求1所述的系統(tǒng),其中JavaScript和/或異步JavaScript與可擴(kuò)展標(biāo)記語言(AJAX)被使用來在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI。
3.如權(quán)利要求1所述的系統(tǒng),其中適于確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI的邏輯包括: 確定一個或多個條件是否已被滿足,其中當(dāng)任一條件被滿足時,確定重新加載DOM ;否貝U,刷新一個或多個工作區(qū)Π而不重新加載D0M。
4.如權(quán)利要求1所述的系統(tǒng),其中一個或多個條件包括以下中的至少一個: 指示當(dāng)刷新特定的工作區(qū)UI時總是重新加載DOM ; 檢測到內(nèi)存泄漏; 指示一個或多個工作區(qū)UI已經(jīng)被標(biāo)記為持續(xù)泄漏內(nèi)存; 一個或多個工作區(qū)Π來自與當(dāng)前工作區(qū)UI不同的域; 從上次重新加載DOM以來已經(jīng)經(jīng)過了預(yù)定時間量; 從上次重新加載DOM以來已經(jīng)發(fā)生了預(yù)定使用量 '及 一個或多個工作區(qū)UI的性能降到低于性能閾值。
5.如權(quán)利要求4所述的系統(tǒng),其中一個或多個工作區(qū)UI每個都包括標(biāo)志,所述標(biāo)志指示:在刷新工作區(qū)UI時總是重新加載D0M,或者在刷新工作區(qū)UI時從不重新加載D0M。
6.如權(quán)利要求4所述的系統(tǒng),其中當(dāng)發(fā)生以下中的任一個時,檢測到內(nèi)存泄漏:在DOM的現(xiàn)有窗口小部件中發(fā)現(xiàn)了孤立的窗口小部件、DOM的任何窗口小部件都被破壞、及由于發(fā)現(xiàn)其已經(jīng)存在而不能構(gòu)建窗口小部件。
7.如權(quán)利要求4所述的系統(tǒng),其中當(dāng)發(fā)現(xiàn)來自第一工作區(qū)Π共用的開發(fā)者的任何工作區(qū)Π在DOM中造成了內(nèi)存泄漏,或者發(fā)現(xiàn)第一工作區(qū)UI造成了內(nèi)存泄漏時,第一工作區(qū)Π被標(biāo)記為持續(xù)泄漏內(nèi)存,并且其中,當(dāng)導(dǎo)航離開已標(biāo)記為持續(xù)泄漏內(nèi)存的工作區(qū)Π時,需要頁面重新加載。
8.如權(quán)利要求4所述的系統(tǒng),其中當(dāng)正導(dǎo)航到的一個或多個工作區(qū)Π由與當(dāng)前工作區(qū)Π不同的開發(fā)者提供時,一個或多個工作區(qū)Π來自與當(dāng)前工作區(qū)Π不同的域。
9.如權(quán)利要求4所述的系統(tǒng),其中利用以下中的至少一個測量從上次重新加載DOM以來發(fā)生的使用:工作區(qū)Π導(dǎo)航、DOM導(dǎo)航和在不重新加載的情況下的刷新的次數(shù)。
10.如權(quán)利要求4所述的系統(tǒng),其中性能閾值是預(yù)定值或基于典型DOM性能的動態(tài)值。
11.一種用于有條件地刷新工作區(qū)用戶界面(UI)的方法,所述方法包括: 接收刷新一個或多個工作區(qū)UI的請求,其中一個或多個工作區(qū)UI是在文檔對象模型(DOM)中提供的;確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI ; 在確定要重新加載DOM時重新加載DOM ;及 在確定刷新一個或多個工作區(qū)UI時在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI。
12.如權(quán)利要求11所述的方法,其中JavaScript和/或異步JavaScript與可擴(kuò)展標(biāo)記語言(AJAX)被使用來在不重新加載DOM的情況下刷新一個或多個工作區(qū)UI。
13.如權(quán)利要求11所述的方法,其中確定是重新加載DOM還是在不重新加載DOM的情況下刷新DOM中的一個或多個工作區(qū)UI包括: 確定一個或多個條件是否已被滿足,其中當(dāng)任一條件被滿足時,確定重新加載DOM ;否貝U,刷新一個或多個工作區(qū)UI而不重新加載D0M。
14.如權(quán)利要求11所述的方法,其中一個或多個條件包括以下中的至少一個: 指示當(dāng)刷新特定的工作區(qū)UI時總是重新加載DOM ; 檢測到內(nèi)存泄漏; 指示一個或多個工作區(qū)UI已經(jīng)被標(biāo)記為持續(xù)泄漏內(nèi)存; 一個或多個工作區(qū)Π來自與當(dāng)前工作區(qū)UI不同的域;· 從上次重新加載DOM以來已經(jīng)經(jīng)過了預(yù)定時間量; 從上次重新加載DOM以來已經(jīng)發(fā)生了預(yù)定使用量 '及 一個或多個工作區(qū)UI的性能降到低于性能閾值。
15.如權(quán)利要求14所述的方法,其中一個或多個工作區(qū)UI每個都包括標(biāo)志,所述標(biāo)志指示:在刷新工作區(qū)UI時總是重新加載D0M,或者在刷新工作區(qū)Π時從不重新加載D0M。
16.如權(quán)利要求14所述的方法,其中當(dāng)發(fā)生以下中的任一個時,檢測到內(nèi)存泄漏:在DOM的現(xiàn)有窗口小部件中發(fā)現(xiàn)了孤立的窗口小部件、DOM的任何窗口小部件都被破壞、及由于發(fā)現(xiàn)其已經(jīng)存在而不能構(gòu)建窗口小部件。
17.如權(quán)利要求14所述的方法,其中當(dāng)發(fā)現(xiàn)來自第一工作區(qū)Π共用的開發(fā)者的任何工作區(qū)Π在DOM中造成了內(nèi)存泄漏,或者發(fā)現(xiàn)第一工作區(qū)UI造成了內(nèi)存泄漏時,第一工作區(qū)UI被標(biāo)記為持續(xù)泄漏內(nèi)存,并且其中當(dāng)導(dǎo)航尚開已標(biāo)記為持續(xù)泄漏內(nèi)存的工作區(qū)UI時,需要頁面重新加載。
18.如權(quán)利要求14所述的方法,其中當(dāng)正導(dǎo)航到的一個或多個工作區(qū)Π由與當(dāng)前工作區(qū)UI不同的開發(fā)者提供時,一個或多個工作區(qū)Π來自與當(dāng)前工作區(qū)UI不同的域。
19.如權(quán)利要求14所述的方法,其中利用以下中的至少一個測量從上次重新加載DOM以來發(fā)生的使用:工作區(qū)Π導(dǎo)航、DOM導(dǎo)航和在不重新加載的情況下的刷新的次數(shù)。
20.如權(quán)利要求14所述的方法,其中性能閾值是預(yù)定值或基于典型DOM性能的動態(tài)值。
【文檔編號】G06F9/445GK103853580SQ201310627147
【公開日】2014年6月11日 申請日期:2013年11月29日 優(yōu)先權(quán)日:2012年11月30日
【發(fā)明者】R·L·伯特倫, A·M·奧蒂茲, R·P·蘭道夫 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1