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

用于檢測不活動的瀏覽器窗口的方法及系統(tǒng)與流程

文檔序號:12009598閱讀:422來源:國知局
用于檢測不活動的瀏覽器窗口的方法及系統(tǒng)與流程
用于檢測不活動的瀏覽器窗口的方法及系統(tǒng)對相關(guān)申請的交叉引用本申請要求于2011年1月6日提交的申請?zhí)枮?2/985,805、題為“TECHNIQUESFORDETECTINGINACTIVEBROWSERWINDOWS”的美國專利申請的優(yōu)先權(quán),其全部內(nèi)容通過引用而被合并于此以用于所有目的。本公開與下列共同轉(zhuǎn)讓的、共同未決的、2011年1月6日提交的申請?zhí)?2/985,799的、題為“TECHNIQUESFORDETECTINGNEWBROWSERWINDOWS”的美國專利申請有關(guān),其全部內(nèi)容通過引用而被合并于此以用于所有目的。技術(shù)領(lǐng)域本公開一般涉及網(wǎng)絡(luò)應(yīng)用,并且具體涉及用于跟蹤在這樣的應(yīng)用中的客戶端瀏覽器窗口的生命周期的技術(shù)。

背景技術(shù):
一般而言,網(wǎng)絡(luò)應(yīng)用是在服務(wù)器上托管并且由用戶經(jīng)由客戶端網(wǎng)絡(luò)瀏覽器可訪問的軟件應(yīng)用。在一般使用的情況中,用戶打開客戶端瀏覽器窗口并且導(dǎo)航到應(yīng)用的初始網(wǎng)頁。從那里,用戶可以輸入信息(例如,經(jīng)由嵌入在頁標(biāo)記中的表單元素)和/或?qū)Ш降綉?yīng)用的附加頁以完成某些任務(wù)或處理。在有些情況下,用戶可以在訪問應(yīng)用的同時從現(xiàn)有瀏覽器窗口的背景打開新瀏覽器窗口。這使得瀏覽器將新請求發(fā)送到用于顯示在現(xiàn)有窗口中的應(yīng)用頁的服務(wù)器。在當(dāng)前實(shí)現(xiàn)中,服務(wù)器通常無法區(qū)分此新窗口事件與用戶已經(jīng)重載/更新現(xiàn)有窗口的情況–在任意一種情況下,由服務(wù)器接收到的請求似乎源自現(xiàn)有窗口。這可能是成問題的,因?yàn)榉?wù)器通常保持用于每個瀏覽器窗口的單獨(dú)的應(yīng)用狀態(tài)信息,并且因此需要在渲染頁面之前知道它在服務(wù)哪個窗口。例如,如果服務(wù)器錯誤地確定客戶端請求對應(yīng)于現(xiàn)有窗口的重載(當(dāng)它事實(shí)上對應(yīng)于新窗口的打開),則服務(wù)器可能在處理請求時無意地修改現(xiàn)有窗口的應(yīng)用狀態(tài)。在其他的實(shí)例中,用戶可以關(guān)閉他/她用于訪問應(yīng)用的瀏覽器窗口,或?qū)Ш诫x開窗口內(nèi)的應(yīng)用(例如,到第三方網(wǎng)站)。在當(dāng)前實(shí)現(xiàn)中,服務(wù)器通常無法區(qū)分這些情況與用戶已經(jīng)導(dǎo)航(在窗口內(nèi))到相同應(yīng)用中的另一個網(wǎng)頁的情況–在任意一種情況下,服務(wù)器僅僅接收源自瀏覽器的窗口中的應(yīng)用頁已被重載/破壞的通知。這可能使服務(wù)器難以確定何時釋放用于每個瀏覽器窗口的由服務(wù)器維護(hù)的存儲器資源(例如,應(yīng)用狀態(tài)信息)。例如,如果服務(wù)器錯誤地確定瀏覽器窗口仍然被用來訪問應(yīng)用(當(dāng)用戶事實(shí)上已經(jīng)關(guān)閉窗口或?qū)Ш诫x開應(yīng)用時),則服務(wù)器可以將用于窗口的資源保持在存儲器中的時間比所需的時間長,這從效率和安全角度都是不希望的。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例提供用于在網(wǎng)絡(luò)應(yīng)用的背景內(nèi)跟蹤客戶端瀏覽器窗口的生命周期的技術(shù)。在一組實(shí)施例中,網(wǎng)絡(luò)應(yīng)用的服務(wù)器組件可以接收源自客戶端瀏覽器窗口的請求,其中請求包括資源定位符(例如URL)和窗口標(biāo)識符。作為響應(yīng),服務(wù)器組件可以將腳本發(fā)送到窗口以用于檢索窗口的實(shí)際標(biāo)識符/名稱?;谟赡_本返回的實(shí)際標(biāo)識符和包括在初始請求內(nèi)的窗口標(biāo)識符,服務(wù)器組件可以確定窗口是新窗口還是現(xiàn)有窗口并且可以視情況處理請求。在另一組實(shí)施例中,服務(wù)器組件可以接收第一客戶端瀏覽器窗口中的應(yīng)用頁已被卸載/破壞的通知。作為響應(yīng),服務(wù)器組件可以使第一窗口與期滿時間相關(guān)聯(lián)并且可以將第一窗口增加到潛在地不活動的窗口的“期滿”列表(即,關(guān)閉或不再用來訪問應(yīng)用)。如果在第一窗口處于期滿列表中時新的請求由服務(wù)器組件從第一窗口接收到,則服務(wù)器組件可以將第一窗口識別為活動的(即,仍然用來訪問應(yīng)用)并且從列表中去除它。如果在第一窗口處于期滿列表中時新的請求由服務(wù)器組件從第二窗口接收到,則服務(wù)器組件可以將來自第二窗口的請求被接收的時間和與第一窗口相關(guān)聯(lián)的期滿時間作比較。如果請求的時間比期滿時間晚,則服務(wù)器組件可以識別第一窗口為不活動的并且釋放與第一窗口相關(guān)聯(lián)的全部資源。在另一組實(shí)施例中,服務(wù)器組件可以接收在用于客戶端瀏覽器的最后剩余窗口中的應(yīng)用頁已被卸載/破壞的通知。作為響應(yīng),服務(wù)器組件可以將用于與瀏覽器相關(guān)聯(lián)的用戶會話的會話超時變量從第一持續(xù)時間(例如一小時)修改為比第一持續(xù)時間短的第二持續(xù)時間(例如,十分鐘)。服務(wù)器組件然后可以開始會話超時變量的倒計(jì)時。如果在第二持續(xù)時間期滿前由服務(wù)器組件從最后剩余窗口接收到請求,則服務(wù)器組件可以將窗口識別為活動的并且將會話超時變量復(fù)位到第一持續(xù)時間。如果在第二持續(xù)時間期滿前沒有接收到來自最后剩余窗口的請求,則服務(wù)器組件可以將窗口識別為不活動的,釋放與窗口相關(guān)聯(lián)的全部資源,并且釋放與用戶會話相關(guān)聯(lián)的全部資源。根據(jù)本發(fā)明的一個實(shí)施例,提供一種方法,包括:由服務(wù)器計(jì)算機(jī)系統(tǒng)維護(hù)在運(yùn)行在客戶端計(jì)算機(jī)系統(tǒng)上的網(wǎng)絡(luò)瀏覽器中打開的窗口的第一列表;由服務(wù)器計(jì)算機(jī)系統(tǒng)接收來自網(wǎng)絡(luò)瀏覽器的、顯示在第一列表中的第一窗口中的應(yīng)用頁已被卸載的通知;由服務(wù)器計(jì)算機(jī)系統(tǒng)將第一窗口與期滿時間相關(guān)聯(lián);以及由服務(wù)器計(jì)算機(jī)系統(tǒng)將第一窗口添加到窗口的第二列表,第二列表包括第一列表中的潛在地不活動的窗口的子集。在一個實(shí)施例中,方法還包括:由服務(wù)器計(jì)算機(jī)系統(tǒng)從網(wǎng)絡(luò)瀏覽器接收源自第一窗口的請求;以及由服務(wù)器計(jì)算機(jī)系統(tǒng)將第一窗口識別為仍然是活動的。在一個實(shí)施例中,將第一窗口識別為仍然是活動的包括從第二列表中去除第一窗口。在一個實(shí)施例中,該方法還包括:由服務(wù)器計(jì)算機(jī)系統(tǒng)從網(wǎng)絡(luò)瀏覽器接收源自第二列表中的第二窗口的請求;以及由服務(wù)器計(jì)算機(jī)系統(tǒng)將第二窗口識別為仍然是活動的。在一個實(shí)施例中,該方法還包括:由服務(wù)器計(jì)算機(jī)系統(tǒng)將請求被接收的時間和與第二列表中的窗口相關(guān)聯(lián)的期滿時間進(jìn)行比較;以及如果請求被接收的時間比窗口的期滿時間晚,則由服務(wù)器計(jì)算機(jī)系統(tǒng)將窗口識別為不活動的。在一個實(shí)施例中,將窗口識別為不活動的包括從第一列表和第二列表中去除窗口;以及釋放與窗口相關(guān)聯(lián)的資源。在一個實(shí)施例中,該方法還包括:由服務(wù)器計(jì)算機(jī)系統(tǒng)維護(hù)用于與在網(wǎng)絡(luò)瀏覽器中打開的窗口相關(guān)聯(lián)的用戶會話的會話超時變量,會話超時變量被初始化到第一時間段;由服務(wù)器計(jì)算機(jī)系統(tǒng)確定第一列表中的最后剩余窗口已被卸載;以及由服務(wù)器計(jì)算機(jī)系統(tǒng)將會話超時變量從第一時間段修改為比第一時間段短的第二時間段。在一個實(shí)施例中,該方法還包括:如果在第二時間段期滿之前接收到源自第二列表中的任何窗口的請求,則由服務(wù)器計(jì)算機(jī)系統(tǒng)將會話超時變量重置到第一時間段,否則由服務(wù)器計(jì)算機(jī)系統(tǒng)釋放與用戶會話和最后剩余窗口相關(guān)聯(lián)的資源。在一個實(shí)施例中,該方法還包括:對于第一列表中每個窗口,由服務(wù)器計(jì)算機(jī)系統(tǒng)存儲加載在窗口中的當(dāng)前頁的標(biāo)識符。根據(jù)本發(fā)明的另一個實(shí)施例,提供一種非瞬時計(jì)算機(jī)可讀存儲介質(zhì),在其上存儲可由處理器執(zhí)行的指令。所述指令包括:使得處理器維護(hù)在運(yùn)行在客戶端計(jì)算機(jī)系統(tǒng)上的網(wǎng)絡(luò)瀏覽器中打開的窗口的第一列表的指令;使得處理器從網(wǎng)絡(luò)瀏覽器接收顯示在第一列表中的第一窗口中的應(yīng)用頁已被卸載的通知的指令;使得處理器將第一窗口與期滿時間相關(guān)聯(lián)的指令;以及使得處理器將第一窗口增加到窗口的第二列表的指令,所述第二列表包括第一列表中的潛在地不活動的窗口的子集。根據(jù)本發(fā)明的另一個實(shí)施例,提供一種系統(tǒng),包括處理器,被配置為:維護(hù)在運(yùn)行在客戶端計(jì)算機(jī)系統(tǒng)上的網(wǎng)絡(luò)瀏覽器中打開的窗口的第一列表;從網(wǎng)絡(luò)瀏覽器接收顯示在第一列表中的第一窗口中的應(yīng)用頁已被卸載的通知;將第一窗口與期滿時間相關(guān)聯(lián);以及將第一窗口增加到窗口的第二列表,所述第二列表包括第一列表中的潛在地不活動的窗口的子集。通過參考說明書的剩余部分和附圖可以了解到此處公開的實(shí)施例的性質(zhì)和優(yōu)點(diǎn)的更進(jìn)一步理解。附圖說明圖1是示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的簡化方框圖。圖2是根據(jù)本發(fā)明的實(shí)施例的用于確定客戶端瀏覽器窗口是新窗口還是現(xiàn)有窗口的處理的流程圖。圖3是示出了根據(jù)本發(fā)明的實(shí)施例的由客戶端腳本執(zhí)行的處理的流程圖。圖4是根據(jù)本發(fā)明的實(shí)施例的用于確定客戶端瀏覽器窗口是新窗口還是現(xiàn)有窗口的進(jìn)一步處理的流程圖。圖5是示出了根據(jù)本發(fā)明的實(shí)施例的用于確定客戶端瀏覽器窗口是否是不活動的處理的流程圖。圖6是示出了根據(jù)本發(fā)明的實(shí)施例的用于確定客戶端瀏覽器窗口是否是不活動的進(jìn)一步處理的流程圖。圖7是示出了根據(jù)本發(fā)明的實(shí)施例的用于確定客戶端瀏覽器的最后剩余窗口是否是不活動的處理的流程圖。圖8是示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)環(huán)境的簡化方框圖。圖9是示出了根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)的簡化方框圖。具體實(shí)施方式在下面的描述中,為了說明,闡述許多細(xì)節(jié)以便提供對本發(fā)明的實(shí)施例的理解。然而,對本領(lǐng)域的普通技術(shù)人員將很明顯,某些實(shí)施例在沒有某些細(xì)節(jié)的情況下也可以實(shí)踐。本發(fā)明的實(shí)施例提供用于在網(wǎng)絡(luò)應(yīng)用的背景內(nèi)跟蹤客戶端瀏覽器窗口的生命周期的技術(shù)。在一組實(shí)施例中,網(wǎng)絡(luò)應(yīng)用的服務(wù)器組件可以接收源自客戶端瀏覽器窗口的請求,其中請求包括資源定位符(例如URL)和窗口標(biāo)識符。作為響應(yīng),服務(wù)器組件可以將腳本發(fā)送到窗口以用于檢索窗口的實(shí)際標(biāo)識符/名稱?;谟赡_本返回的實(shí)際標(biāo)識符和包括在初始請求內(nèi)的窗口標(biāo)識符,服務(wù)器組件可以確定窗口是新窗口還是現(xiàn)有窗口并且可以視情況處理請求。在另一組實(shí)施例中,服務(wù)器組件可以接收第一客戶端瀏覽器窗口中的應(yīng)用頁已被卸載/破壞的通知。作為響應(yīng),服務(wù)器組件可以使第一窗口與期滿時間相關(guān)聯(lián)并且可以將第一窗口增加到潛在地不活動的窗口的“期滿”列表(即,關(guān)閉或不再用來訪問應(yīng)用)。如果在第一窗口處于期滿列表中時新的請求由服務(wù)器組件從第一窗口接收到,則服務(wù)器組件可以識別第一窗口為活動的(即,仍然用來訪問應(yīng)用)并且從列表中去除它。如果在第一窗口處于期滿列表中時新的請求由服務(wù)器組件從第二窗口接收到,則服務(wù)器組件可以將來自第二窗口的請求被接收的時間和與第一窗口相關(guān)聯(lián)的期滿時間作比較。如果請求的時間比期滿時間晚,則服務(wù)器組件可以識別第一窗口為不活動的并且釋放與第一窗口相關(guān)聯(lián)的全部資源。在另一組實(shí)施例中,服務(wù)器組件可以接收用于客戶端瀏覽器的最后剩余窗口中的應(yīng)用頁已被卸載/破壞的通知。作為響應(yīng),服務(wù)器組件可以將用于與瀏覽器相關(guān)聯(lián)的用戶會話的會話超時變量從第一持續(xù)時間(例如一小時)修改為比第一持續(xù)時間短的第二持續(xù)時間(例如,十分鐘)。服務(wù)器組件然后可以開始會話超時變量的倒計(jì)時。如果在第二持續(xù)時間期滿前由服務(wù)器組件從最后剩余窗口接收到請求,則服務(wù)器組件可以識別窗口為活動的并且將會話超時變量復(fù)位到第一持續(xù)時間。如果在第二持續(xù)時間期滿前沒有接收到來自最后剩余窗口的請求,則服務(wù)器組件可以識別窗口為不活動的,釋放與窗口相關(guān)聯(lián)的全部資源,并且釋放與用戶會話相關(guān)聯(lián)的全部資源。圖1是示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)100的簡化方框圖。如圖所示,系統(tǒng)100可以包括與服務(wù)器104通信的客戶端102??蛻舳?02可以是能運(yùn)行瀏覽器106的任何類型的電子設(shè)備或系統(tǒng)(例如,臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能機(jī)、個人數(shù)字助理(PDA)、機(jī)頂盒、視頻游戲系統(tǒng)等等)。可用網(wǎng)絡(luò)瀏覽器的示例包括MozillaFirefox、MicrosoftInternetExplorer、GoogleChrome、AppleSafari,諸如此類。在各種實(shí)施例中,可以由客戶端102的一個或多個用戶操作瀏覽器106以訪問網(wǎng)資源,諸如由服務(wù)器104主機(jī)的網(wǎng)絡(luò)應(yīng)用。在某些實(shí)施例中,網(wǎng)絡(luò)瀏覽器106可以使用戶經(jīng)由多個瀏覽器窗口108同時訪問多個網(wǎng)絡(luò)資源。例如,用戶可以打開瀏覽器106中的第一瀏覽器窗口并且導(dǎo)航到第一網(wǎng)頁“A”。從第一瀏覽器窗口的背景,用戶可以打開一個或多個附加(新的)瀏覽器窗口,從而使網(wǎng)頁A的附加實(shí)例被檢索并且在新窗口中呈現(xiàn)。從那里,用戶可以利用任何打開的窗口導(dǎo)航到其他網(wǎng)頁。只要用戶已經(jīng)結(jié)束他的/她的瀏覽會話后,用戶也可以關(guān)閉一個或多個打開的窗口。如同這里使用的,術(shù)語“瀏覽器窗口”和“窗口”可以指代任何能顯示由資源標(biāo)識符(例如,URL)識別的網(wǎng)絡(luò)內(nèi)容的瀏覽器106的視口。在特定的實(shí)施例中,術(shù)語“瀏覽器窗口”和“窗口”可以指代瀏覽器“標(biāo)簽(tab)”,盡管這樣的標(biāo)簽一般不認(rèn)為是獨(dú)立的窗口。服務(wù)器104可以是能托管諸如應(yīng)用114之類的網(wǎng)絡(luò)應(yīng)用的任何類型的電子設(shè)備或系統(tǒng)。在一組實(shí)施例中,服務(wù)器104可以包括被配置為處理網(wǎng)絡(luò)瀏覽器106與網(wǎng)絡(luò)應(yīng)用114之間的交互并且提供諸如動態(tài)網(wǎng)絡(luò)創(chuàng)建、加載均衡、安全等等之類的各種服務(wù)的應(yīng)用服務(wù)器組件110。在特定的實(shí)施例中,應(yīng)用服務(wù)器110可以包括被配置為從客戶端102的瀏覽器106接收超文本傳送協(xié)議(HTTP)請求并且將那些請求傳遞到應(yīng)用服務(wù)器110和/或應(yīng)用114以用于處理的網(wǎng)絡(luò)服務(wù)器組件112。網(wǎng)絡(luò)服務(wù)器112還可以將HTTP響應(yīng)(例如,呈現(xiàn)的HTML)返回到瀏覽器106。在一組實(shí)施例中,應(yīng)用服務(wù)器110可以被配置為跟蹤客戶端瀏覽器窗口(諸如網(wǎng)絡(luò)瀏覽器106的窗口108)的生命周期。例如,在一個實(shí)施例中,應(yīng)用服務(wù)器110可以檢測何時瀏覽器106的用戶在訪問應(yīng)用114時已經(jīng)打開新瀏覽器窗口,并且可以區(qū)分新窗口事件與現(xiàn)有瀏覽器窗口上的重新載入/更新事件。在另一個實(shí)施例中,應(yīng)用服務(wù)器110可以檢測瀏覽器106的用戶何時已經(jīng)通過關(guān)閉窗口或?qū)Ш诫x開應(yīng)用114而使瀏覽器窗口不活動,并且可以區(qū)分那些情況與用戶已經(jīng)僅僅導(dǎo)航到應(yīng)用114的另一個網(wǎng)頁的情況。根據(jù)以下圖2-7詳細(xì)描述在這些情況中由應(yīng)用服務(wù)器110執(zhí)行的特定處理。除客戶端102和服務(wù)器104之外,系統(tǒng)100還可以包括數(shù)據(jù)存儲器116。數(shù)據(jù)存儲器116可以是可通信地與服務(wù)器104耦合并且可以為服務(wù)器104的各種組件(諸如網(wǎng)絡(luò)應(yīng)用114)提供數(shù)據(jù)存儲服務(wù)。盡管在系統(tǒng)100中服務(wù)器104和數(shù)據(jù)存儲器116被顯示為單獨(dú)的實(shí)體,但是本領(lǐng)域普通技術(shù)人員應(yīng)該理解,服務(wù)器104和數(shù)據(jù)存儲器116可以對應(yīng)于單一物理機(jī)器或單獨(dú)的物理機(jī)器。應(yīng)該理解,圖1是說明性的并且不預(yù)期限制本發(fā)明的實(shí)施例。例如,系統(tǒng)100的各種實(shí)體可以每個都具有附加能力或包括沒有具體描述的附加組件。另外,盡管描述了僅僅一個客戶端、一個服務(wù)器和一個數(shù)據(jù)存儲,但是可以支持任何數(shù)目的這樣的實(shí)體。本領(lǐng)域普通技術(shù)人員將承認(rèn)許多變化、修改和替換。新客戶端瀏覽器窗口的檢測如上所指出,在某些實(shí)施例中,應(yīng)用服務(wù)器110可以確定瀏覽器106的用戶在訪問應(yīng)用114時何時已經(jīng)打開新瀏覽器窗口,并且可以區(qū)分新窗口事件與現(xiàn)有瀏覽器窗口上的重新載入/更新事件。圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于實(shí)現(xiàn)此新窗口檢測的由應(yīng)用服務(wù)器110執(zhí)行的處理200。在各種實(shí)施例中,可以在硬件、軟件、或它的組合中實(shí)現(xiàn)處理200。作為軟件,處理200可以被編碼為存儲在機(jī)器可讀的存儲介質(zhì)上的程序代碼。在塊202處,應(yīng)用服務(wù)器110可以接收源自客戶端網(wǎng)絡(luò)瀏覽器106的窗口的HTTP請求,其中請求用于由網(wǎng)絡(luò)應(yīng)用114提供的資源(例如,網(wǎng)絡(luò))。在各種實(shí)施例中,請求可以包括資源的標(biāo)識符(例如,URL),以及特定瀏覽器窗口的標(biāo)識符。例如,請求可以包括URL“X”和窗口標(biāo)識符“Window1”。在大多數(shù)情況中,包括在請求中的窗口標(biāo)識符將對應(yīng)于發(fā)起請求的瀏覽器窗口的標(biāo)識符。然而,如果請求來自從現(xiàn)有窗口的背景創(chuàng)建的新窗口,則包括在請求中的窗口標(biāo)識符將對應(yīng)于現(xiàn)有窗口的標(biāo)識符/名稱而不是新窗口的標(biāo)識符/名稱。因此,在這些情況下,應(yīng)用服務(wù)器110不能僅僅基于窗口標(biāo)識符容易地區(qū)分進(jìn)行發(fā)起的窗口是新窗口還是現(xiàn)有窗口。在塊204處,應(yīng)用服務(wù)器110可以確定請求是否是對來自支持Java腳本的用戶代理的內(nèi)容頁的HTTPGET或HEAD請求。如果請求不屬于此特定類別,則應(yīng)用服務(wù)器110可以確定源瀏覽器窗口不是新窗口。因此,應(yīng)用服務(wù)器110可以執(zhí)行它的正常的呈現(xiàn)/檢索用于請求的URL的內(nèi)容并且將響應(yīng)發(fā)送到具有呈現(xiàn)/檢索的內(nèi)容的瀏覽器窗口的處理流程(塊206、208)。如果請求是對于來自于支持Java腳本的用戶代理的內(nèi)容的HTTPGET或HEAD請求,則應(yīng)用服務(wù)器110可以更進(jìn)一步地確定請求是否是重定向(塊210)。如果請求是重定向,則應(yīng)用服務(wù)器110可以執(zhí)行如上所述的塊206、208的處理流程。如果請求不是重定向,則應(yīng)用服務(wù)器110可以確定請求可以源自新的瀏覽器窗口。作為響應(yīng),應(yīng)用服務(wù)器110可以生成建議的窗口標(biāo)識符和回送標(biāo)識符,并且將回送標(biāo)識符存儲在與請求相關(guān)聯(lián)的用戶會話中(塊212)。在一組實(shí)施例中,回送標(biāo)識符可以是隨機(jī)地生成的數(shù)字。應(yīng)用服務(wù)器110可以進(jìn)一步地生成包括回送標(biāo)識符、建議的窗口標(biāo)識符、和來自接收的請求中的URL和窗口標(biāo)識符(例如,腳本“X”和“Window1”)的客戶端腳本,并且可以將腳本發(fā)送到源瀏覽器窗口(塊214、216)。在一組實(shí)施例中,客戶端腳本可以被配置為不可由客戶端瀏覽器106緩存??蛻舳四_本因此能由瀏覽器106執(zhí)行以檢索發(fā)起的瀏覽器窗口的實(shí)際標(biāo)識符,從而便于確定進(jìn)行發(fā)起的窗口是新窗口還是現(xiàn)有窗口。圖3示出了由網(wǎng)絡(luò)瀏覽器106在接收并且執(zhí)行在塊214處發(fā)送的客戶端腳本時可以執(zhí)行的處理。在塊302處,瀏覽器106可以確定包括在腳本內(nèi)的窗口標(biāo)識符(即,從在塊202處接收的請求中提取的窗口標(biāo)識符)是否與當(dāng)前瀏覽器窗口(即,發(fā)起請求的窗口)的標(biāo)識符/名稱匹配。如果標(biāo)識符匹配,則指示當(dāng)前窗口是現(xiàn)有窗口。在這種情況下,瀏覽器106可以開始客戶端重定向以將第二HTTP請求發(fā)送到鏡像原始HTTP請求(例如,包括URL“U1”和窗口標(biāo)識符“Window1”)的服務(wù)器104,外加回送標(biāo)識符(塊304)。如果標(biāo)識符不匹配,則指示當(dāng)前窗口是新窗口。在這種情況下,瀏覽器106可以確定是否已經(jīng)存在用于當(dāng)前窗口的窗口標(biāo)識符(塊306)。例如,瀏覽器106可以已經(jīng)在打開窗口時自動地將新的名稱/標(biāo)識符分配到窗口。如果發(fā)現(xiàn)這樣的現(xiàn)有標(biāo)識符,則瀏覽器106可以開始客戶端重定向以將第二HTTP請求發(fā)送到服務(wù)器104,其中第二請求包括回送標(biāo)識符、URL和現(xiàn)有標(biāo)識符(塊308)。如果沒有發(fā)現(xiàn)現(xiàn)有窗口標(biāo)識符,則瀏覽器106可以開始客戶端重定向以發(fā)送包括回送標(biāo)識符、URL和在圖2的塊212處生成的建議的窗口標(biāo)識符的第二HTTP請求(塊310)。在接收到在圖3的塊304、308、或310處由瀏覽器106發(fā)送的第二HTTP請求時,應(yīng)用服務(wù)器110可以執(zhí)行圖4的處理400。在塊402和404,應(yīng)用服務(wù)器110可以接收第二HTTP請求并且將包括在第二請求內(nèi)的回送標(biāo)識符與存儲在用戶會話中的回送標(biāo)識符匹配。如果回送標(biāo)識符匹配,則應(yīng)用服務(wù)器知道此第二請求是響應(yīng)于在塊214發(fā)送的客戶端腳本生成(而不是響應(yīng)于用戶操作)的。因此,應(yīng)用服務(wù)器110可以從會話中去除回送標(biāo)識符(塊406)并且繼續(xù)進(jìn)行處理400的其余部分。在塊408處,應(yīng)用服務(wù)器110可以確定包括在第二請求內(nèi)的窗口標(biāo)識符是否與包括在塊202處接收的原始請求內(nèi)的窗口標(biāo)識符匹配。如果標(biāo)識符匹配,則應(yīng)用服務(wù)器110可以推斷發(fā)起塊202的原始請求的窗口是現(xiàn)有窗口??商鎿Q地,如果標(biāo)識符不匹配,則服務(wù)器104可以推斷發(fā)起塊202的原始請求的窗口是新窗口。應(yīng)用服務(wù)器110因此能通過呈現(xiàn)/檢索用于URL的內(nèi)容并且將響應(yīng)發(fā)送到包括呈現(xiàn)/檢索的內(nèi)容的進(jìn)行發(fā)起的瀏覽器窗口來處理原始請求(塊414、416)。在特定實(shí)施例中,原始請求的處理可以基于確定進(jìn)行發(fā)起的窗口是新窗口還是現(xiàn)有窗口而不同。例如,如果每個塊410確定進(jìn)行發(fā)起的窗口是現(xiàn)有窗口,則應(yīng)用服務(wù)器110可以自由地更新/修改與窗口相關(guān)聯(lián)的應(yīng)用狀態(tài)信息。然而,如果每個塊412確定進(jìn)行發(fā)起的窗口是新窗口,則應(yīng)用服務(wù)器110可以采取適當(dāng)?shù)牟襟E來保證任何現(xiàn)有窗口的狀態(tài)保持不變。以這樣的方式,應(yīng)用服務(wù)器110可以避免當(dāng)處理來自新窗口的請求時無意地破壞/禁用那些現(xiàn)有窗口的狀態(tài)。應(yīng)該理解,處理200、300和400是說明性的并且變化和修改是可能的。例如,可以并行執(zhí)行按順序描述的步驟,可以改變步驟的次序,并且可以修改、組合、添加或省略步驟。本領(lǐng)域普通技術(shù)人員將認(rèn)識到許多變化、修改、和替換。不活動的客戶端瀏覽器窗口的檢測在特定實(shí)施例中,應(yīng)用服務(wù)器110可以檢測瀏覽器106的用戶何時已經(jīng)通過關(guān)閉窗口或?qū)Ш诫x開應(yīng)用114來使瀏覽器窗口不活動,并且可以區(qū)分那些情況與用戶僅僅導(dǎo)航到應(yīng)用114的另一個網(wǎng)頁的情況。圖5示出了根據(jù)本發(fā)明的實(shí)施例的用于實(shí)現(xiàn)此不活動的窗口檢測的可以由應(yīng)用服務(wù)器110執(zhí)行的處理500。在各種實(shí)施例中,可以在硬件、軟件、或它的組合中實(shí)現(xiàn)處理500。作為軟件,處理500可以被編碼為存儲在機(jī)器可讀的存儲介質(zhì)上的程序代碼。在塊502處,應(yīng)用服務(wù)器110可以保持在網(wǎng)絡(luò)瀏覽器106中打開的瀏覽器窗口的“活動”列表。從應(yīng)用服務(wù)器110的角度,如果瀏覽器窗口被用于訪問網(wǎng)絡(luò)應(yīng)用114,則認(rèn)為瀏覽器窗口是“活動的”?;顒恿斜砜梢员淮鎯榕c瀏覽器相關(guān)聯(lián)的用戶會話的一部分。在一組實(shí)施例中,在活動列表中用于每個窗口的條目可以包括窗口的標(biāo)識符和被顯示在窗口中的當(dāng)前頁的指示。在塊504處,應(yīng)用服務(wù)器110可以接收來自瀏覽器106的活動瀏覽器窗口中的應(yīng)用頁已被卸載/破壞的通知。例如,如果窗口已經(jīng)由用戶關(guān)閉、或如果用戶已經(jīng)導(dǎo)航到窗口內(nèi)的不同網(wǎng)頁,則可以接收到這樣的通知。作為響應(yīng),應(yīng)用服務(wù)器110可以將期滿時間與活動窗口相關(guān),并且可以將窗口增加到潛在地不活動的窗口的“期滿”列表(即,不再被用于訪問應(yīng)用)(塊506,508)。此外,應(yīng)用服務(wù)器110可以確定在活動列表中的所有窗口現(xiàn)在是否在期滿列表中(塊510)。如果不在,則在由應(yīng)用服務(wù)器110接收到更多卸載/破壞通知時,可以重復(fù)塊504-510的步驟,由此使得附加的活動窗口被增加期滿滿列表。如果所有活動窗口現(xiàn)在是在期滿列表中,則應(yīng)用服務(wù)器110可以執(zhí)行特殊處理以確定是否釋放用戶會話級資源;在下面的圖7中討論此處理。在圖6的處理600中繼續(xù)圖5的處理。在塊602處,應(yīng)用服務(wù)器110可以接收源自被預(yù)先在塊508處放在期滿列表中的特定瀏覽器窗口的HTTP請求。由于此請求的接收指示窗口仍然被用于訪問應(yīng)用114,因此應(yīng)用服務(wù)器110可以推斷窗口仍然是活動的并且可以將它從期滿列表中去除(塊604)。應(yīng)用服務(wù)器110也可以利用包括在接收的請求中的最新URL更新活動列表中的窗口的條目。在塊606處,應(yīng)用服務(wù)器110可以檢查期滿列表中的剩余窗口并且,對于每個窗口,將在塊602處接收請求的時間和與窗口相關(guān)聯(lián)的期滿時間進(jìn)行比較。如果請求的時間比窗口的期滿時間晚,則應(yīng)用服務(wù)器110可以識別窗口為不活動的(即,不再被用于訪問應(yīng)用114)并且可以從活動的以及期滿列表二者中去除窗口。應(yīng)用服務(wù)器110也可以釋放與窗口相關(guān)聯(lián)的存儲器資源(例如,應(yīng)用狀態(tài)信息,等等)。如果請求的時間比窗口的期滿時間早,則應(yīng)用服務(wù)器110可以在期滿列表中保留窗口。窗口可以保持在期滿列表中,直到從窗口接收到新的請求(指示窗口仍然是活動的),或直到在比與窗口相關(guān)聯(lián)的期滿時間晚的時間從不同的窗口接收到新的請求(指示窗口很可能是不活動的)。在某些情況下,當(dāng)用戶在瀏覽器窗口中從第一應(yīng)用頁導(dǎo)航到第二應(yīng)用頁時,應(yīng)用服務(wù)器110可以在它接收到第一頁已被破壞/卸載的通知之前接收對第二頁的請求。這是因?yàn)?,HTTP不保證以與發(fā)送消息的順序相同的順序接收消息??紤]到這一點(diǎn),在某些特定的實(shí)施例中,應(yīng)用服務(wù)器110可以跟蹤顯示在每個窗口中的當(dāng)前頁并且可以忽略屬于過時頁的卸載通知。例如,假定瀏覽器窗口A是當(dāng)前顯示的應(yīng)用頁1。此外,假定窗口A的用戶從應(yīng)用頁1導(dǎo)航到應(yīng)用頁2,但是應(yīng)用服務(wù)器110在對(窗口A,頁1)的通知之前接收對(窗口A,頁2)的請求。一旦接收到對(窗口A,頁2)的請求,則應(yīng)用服務(wù)器110可以更新活動窗口列表,以使得窗口的當(dāng)前頁是頁2。當(dāng)隨后接收到對(窗口A,頁1)的卸載通知時,應(yīng)用服務(wù)器110可以忽略卸載通知,因?yàn)榇翱贏的當(dāng)前頁不是頁1(相反,它是頁2)。因此,這防止應(yīng)用服務(wù)器110在接收到卸載通知時錯誤地將窗口A增加期滿滿列表。應(yīng)當(dāng)理解,處理500和600是說明性的并且可能有變化和修改。例如,可以并行執(zhí)行描述的順序的步驟,可以變化步驟的順序,并且可以修改、組合、增加、或省略步驟。本領(lǐng)域普通技術(shù)人員將認(rèn)識到許多變化、修改、和替換。如上所述,在某些特定的實(shí)施例中,應(yīng)用服務(wù)器110可以采用特殊處理以檢測用于用戶會話的最后剩余的瀏覽器窗口何時已被不活動/關(guān)閉。在圖7的處理700中示出了此處理。在各種實(shí)施例中,處理700可以在硬件、軟件、或它們的組合中實(shí)現(xiàn)。作為軟件,處理700可以被編碼為存儲在機(jī)器可讀的存儲介質(zhì)上的程序代碼。在塊702處,應(yīng)用服務(wù)器110可以確定在用于用戶會話(即,在活動列表中的最后窗口)的最后剩余瀏覽器窗口中的應(yīng)用頁已被卸載/破壞。在一組實(shí)施例中,這可以通過比較在活動列表中的窗口集合來實(shí)現(xiàn)并且期滿列表是相同的。在確定最后剩余瀏覽器窗口已被卸載/破壞時,應(yīng)用服務(wù)器110可以將與用戶會話相關(guān)聯(lián)的會話超時變量從第一時間段(例如,一小時)修改為比第一時間段短的第二時間段(例如,10分鐘),并且可以開始變量的倒計(jì)時(塊704)。如果在會話超時變量期滿之前從任何窗口中接收到HTTP請求,則應(yīng)用服務(wù)器110可以推斷會話仍然是活動的并且可以將會話超時變量重置到第一時間段(塊706、708)。此外,處理可以返回到圖6的塊602。然而,如果在會話超時變量期滿之前沒有從任何窗口接收到請求,則應(yīng)用服務(wù)器110可以推斷最后剩余窗口是不活動的(因此,關(guān)閉整個用戶會話)。因此,應(yīng)用服務(wù)器110可以釋放所有與窗口和用戶會話相關(guān)聯(lián)的資源(塊710)。應(yīng)當(dāng)理解,處理700是說明性的并且可能變化和修改。例如,可以并行執(zhí)行描述的連續(xù)的步驟,可以變化步驟的順序,并且可以修改、組合、增加、或省略步驟。本領(lǐng)域普通技術(shù)人員將認(rèn)識到許多變化、修改、和替換。圖8是示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)環(huán)境800的簡化方框圖。如圖所示,系統(tǒng)環(huán)境800可以包括一個或多個客戶端計(jì)算機(jī)系統(tǒng)802、804、806、808、服務(wù)器計(jì)算機(jī)系統(tǒng)810、網(wǎng)絡(luò)812、和數(shù)據(jù)庫814。在各種實(shí)施例中,客戶端計(jì)算機(jī)系統(tǒng)802、804、806、808、服務(wù)器計(jì)算機(jī)系統(tǒng)810、和數(shù)據(jù)庫814可以用于分別實(shí)現(xiàn)圖1的客戶端102、服務(wù)器104、和數(shù)據(jù)存儲器116??蛻舳擞?jì)算機(jī)系統(tǒng)802、804、806、808可以是通用的個人計(jì)算機(jī)(例如,臺式計(jì)算機(jī)和/或膝上型計(jì)算機(jī))、平板計(jì)算機(jī)、智能電話機(jī)、PDA、和/或工作站計(jì)算機(jī)。可替換地,客戶端計(jì)算機(jī)系統(tǒng)802、804、806、808可以是能夠運(yùn)行諸如圖1的瀏覽器106之類的網(wǎng)絡(luò)瀏覽器的任何其它類型的電子設(shè)備。雖然系統(tǒng)環(huán)境800顯示具有四個客戶端計(jì)算機(jī)系統(tǒng),但是應(yīng)當(dāng)理解可以支持任何數(shù)目的客戶端計(jì)算機(jī)系統(tǒng)。網(wǎng)絡(luò)812可以是本領(lǐng)域技術(shù)人員所熟知的可以利用網(wǎng)絡(luò)協(xié)議支持?jǐn)?shù)據(jù)通信的任何類型的網(wǎng)絡(luò),網(wǎng)絡(luò)協(xié)議諸如TCP/IP、SNA、IPX、AppleTalk、等等。僅僅舉例來說,網(wǎng)絡(luò)812可以是諸如以太網(wǎng)之類的局域網(wǎng)(LAN);廣域網(wǎng);包括而無限制地虛擬專用網(wǎng)絡(luò)(VPN)的虛擬網(wǎng)絡(luò);互聯(lián)網(wǎng);無線網(wǎng)絡(luò)(例如,在IEEE802.11協(xié)議套件、本領(lǐng)域已知的藍(lán)牙協(xié)議、和/或任何其它無線協(xié)議中的任何一個下操作的網(wǎng)絡(luò));和/或這些和/或其它網(wǎng)絡(luò)的任何組合。服務(wù)器計(jì)算機(jī)系統(tǒng)810可以是通用計(jì)算機(jī)、專門服務(wù)器計(jì)算機(jī)(例如,PC服務(wù)器、UNIX服務(wù)器、大型機(jī)服務(wù)器、安裝在機(jī)架上的服務(wù)器,等等)、服務(wù)器群、或計(jì)算機(jī)的任何其它合適的布置和/或組合。服務(wù)器計(jì)算機(jī)系統(tǒng)810可以運(yùn)行諸如MicrosoftWindows、AppleOSX、Linux、Solaris等等之類的任何用戶或服務(wù)器操作系統(tǒng)。服務(wù)器計(jì)算機(jī)系統(tǒng)810也可以運(yùn)行各種服務(wù)器應(yīng)用和/或中層應(yīng)用中的任何一個,包括圖1的應(yīng)用服務(wù)器110和網(wǎng)絡(luò)應(yīng)用114。數(shù)據(jù)庫814可以駐留在一個或多個計(jì)算機(jī)系統(tǒng)802、804、806、808、和810的本地(和/或駐留在其上的)存儲介質(zhì)上。可替換地,數(shù)據(jù)庫814可以遠(yuǎn)離任何或所有計(jì)算機(jī)系統(tǒng)802、804、806、808、810,和/或與這些中的一個或多個通信。在一組實(shí)施例中,數(shù)據(jù)庫814駐留在為本領(lǐng)域技術(shù)人員所熟知的存儲區(qū)域網(wǎng)(SAN)中。類似地,用于執(zhí)行歸因于計(jì)算機(jī)系統(tǒng)802、804、806、808、810的功能的任何必要文件可以適當(dāng)?shù)乇槐镜卮鎯υ谙鄳?yīng)的計(jì)算機(jī)上和/或遠(yuǎn)程存儲在數(shù)據(jù)庫814上。在一組實(shí)施例中,數(shù)據(jù)庫814可以是諸如從Oracle公司獲得的Oracle11g之類的關(guān)系數(shù)據(jù)庫,其被適配為響應(yīng)于SQL格式化的命令存儲、更新、和檢索數(shù)據(jù)。圖9是示出了根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)900的簡化方框圖。在各種實(shí)施例中,計(jì)算機(jī)系統(tǒng)900可以用于實(shí)現(xiàn)參考以上系統(tǒng)環(huán)境800描述的計(jì)算機(jī)系統(tǒng)802、804、806、808、和810中的任何一個。如圖所示,計(jì)算機(jī)系統(tǒng)900可以包括經(jīng)由總線924電耦合的硬件元件。硬件元件可以包括一個或多個中央處理單元(CPU)902、一個或多個輸入設(shè)備904(例如,鼠標(biāo)、鍵盤,等等)、和一個或多個輸出設(shè)備906(例如,顯示設(shè)備、打印機(jī),等等)。計(jì)算機(jī)系統(tǒng)900也可以包括一個或多個存儲設(shè)備908。舉例來說,存儲設(shè)備908可以包括諸如磁盤驅(qū)動器、光存儲器設(shè)備之類的設(shè)備、和諸如隨機(jī)存取存儲器(RAM)和/或只讀存儲器(ROM)之類的固態(tài)存儲設(shè)備,其可以是可編程的、可flash更新的和/或類似的。計(jì)算機(jī)系統(tǒng)900可以另外包括計(jì)算機(jī)可讀存儲介質(zhì)讀取器912、通信子系統(tǒng)914(例如,調(diào)制解調(diào)器、網(wǎng)卡(無線的或有線的)、紅外線通信設(shè)備、等等)、以及可以包括如上描述的RAM和ROM設(shè)備的工作存儲器918。在一些實(shí)施例中,計(jì)算機(jī)系統(tǒng)900也可以包括處理加速單元916,其可以包括數(shù)字信號處理器(DSP)、專用處理器和/或類似的。計(jì)算機(jī)可讀的存儲介質(zhì)讀取器912可以被連接到計(jì)算機(jī)可讀的存儲媒介910,與(并且,可選地與存儲設(shè)備908結(jié)合)一起全面表示遠(yuǎn)程、本地、固定、和/或可移除存儲器設(shè)備加上用于臨時和/或更永久地包含計(jì)算機(jī)可讀信息的存儲介質(zhì)。通信系統(tǒng)914可以允許與網(wǎng)絡(luò)812和/或如上參考環(huán)境800所述的任何其它計(jì)算機(jī)交換數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)900也可以包括被顯示為當(dāng)前位于工作存儲器918內(nèi)的軟件元件,其包括操作系統(tǒng)920和/或其它代碼922,諸如應(yīng)用程序(其可以是客戶端網(wǎng)絡(luò)瀏覽器、中間層/服務(wù)器應(yīng)用,等等)。應(yīng)當(dāng)理解計(jì)算機(jī)系統(tǒng)900的可替換實(shí)施例可以有不同于以上描述的許多變化。例如,可以使用定制的硬件并且可以在硬件、軟件、或兩者中實(shí)現(xiàn)特定元件。此外,可以采用到諸如網(wǎng)絡(luò)輸入/輸出設(shè)備之類的其它計(jì)算設(shè)備的連接。用于包含代碼、或部分代碼的可由計(jì)算機(jī)系統(tǒng)900執(zhí)行的的計(jì)算機(jī)可讀存儲介質(zhì)可以包括任何在本領(lǐng)域已知或使用的適當(dāng)介質(zhì),諸如但是不限于易失性的/不易失性的和可移除/不可移除的介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)的示例包括RAM、ROM、EEPROM、閃速存儲器、CD-ROM、數(shù)字通用光盤(DVD)或其它光存儲器、磁帶盒、磁帶、磁盤存儲器或其它磁存儲設(shè)備、任何其它可以用于存儲數(shù)據(jù)和/或程序代碼并且可以由計(jì)算機(jī)訪問的介質(zhì)。雖然上面已經(jīng)描述本發(fā)明的具體實(shí)施例,但是各種修改、變化、替換結(jié)構(gòu)、和相等物在本發(fā)明的范圍內(nèi)。例如,雖然已經(jīng)描述了本發(fā)明的實(shí)施例的某些流程圖和步驟,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚,本發(fā)明的范圍不局限于描述的圖和步驟。此外,雖然已經(jīng)利用硬件和軟件的特定組合描述了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)承認(rèn)硬件和軟件的其它組合也在本發(fā)明的范圍內(nèi)。因此,說明書和附圖應(yīng)當(dāng)被認(rèn)為是說明性的,而不是限制的意義上的。在不脫離如下闡述的權(quán)利要求書的本發(fā)明的廣泛精神和范圍的情況下,顯然可以對其進(jìn)行添加、減少、和其它修改。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1