專利名稱:一種控制瀏覽器緩存的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是涉及一種控制瀏覽器緩存的方法、裝置和系統(tǒng)。
背景技術(shù):
瀏覽器是一個顯示網(wǎng)頁服務(wù)器或檔案系統(tǒng)文件,并能夠讓用戶與上述文件進(jìn)行互 動的一種軟件,該瀏覽器用來顯示在萬維網(wǎng)內(nèi)或局部局域網(wǎng)內(nèi)的文字、影像及其他資訊等 信息,而上述的文字、影像及其他資訊等信息可以是連接其他網(wǎng)址的超鏈接,從而使得用戶 可以迅速及輕易地瀏覽各種資訊。其中,網(wǎng)頁一般是HTML(Hyper Text Mark-up Language, 超文本標(biāo)記語言)的格式,用戶終端上常見的瀏覽器包括hternet Explorer、Firefox等 瀏覽器,可以看出,瀏覽器是常用的客戶端程序。主流瀏覽器都有本地緩存機(jī)制,當(dāng)通過本地緩存來訪問已經(jīng)訪問過的靜態(tài)文件 時,可以加快瀏覽速度,并提高用戶使用感受。具體的,本地緩存機(jī)制是瀏覽器為了加速瀏覽,在用戶磁盤上對最近請求過的文 檔進(jìn)行存儲,而當(dāng)訪問者再次請求這個頁面時,瀏覽器就可以從本地磁盤中顯示相應(yīng)的文 檔,從而加速頁面的閱覽。此外,靜態(tài)文件是指需要下載到瀏覽器里的文件,例如,HTML文件、 javascript (Java描述語言)文件、ess (Cascading Style Sheets,層疊樣式表)文件和圖 片文件等。但是,不同廠商的瀏覽器的本地緩存機(jī)制并不相同,瀏覽器不能保證當(dāng)服務(wù)器端 的靜態(tài)文件發(fā)生變化時,能夠及時的更新本地緩存中的靜態(tài)文件,從而導(dǎo)致系統(tǒng)功能不能 正常使用。而且瀏覽器的版本經(jīng)常需要更新?lián)Q代,不同版本的瀏覽器的本地緩存機(jī)制也可 能不同。因此,為了保證系統(tǒng)功能正常使用,需要保證用戶不管在哪種瀏覽器下都能訪問 到最新版本的靜態(tài)文件,并使用最新版本的靜態(tài)文件替換瀏覽器緩存中的過期文件。其中, 過期文件是指當(dāng)本地緩存中保存的副本與最新文件不一致時的文件。現(xiàn)有技術(shù)中,保證用戶能夠訪問最新版本的靜態(tài)文件的方式包括1)依賴瀏覽器自身的更新緩存機(jī)制。瀏覽器自身具備更新緩存機(jī)制,當(dāng)服務(wù)器端的靜態(tài)文件發(fā)生變化時,瀏覽器將根 據(jù)一定的機(jī)制更新自身緩存中的靜態(tài)文件。2)在服務(wù)器端對瀏覽器的響應(yīng)中加上不緩存的指令,從而阻止瀏覽器緩存訪問過 的靜態(tài)文件。通過在服務(wù)器端對瀏覽器的響應(yīng)中加上不緩存的指令,使得瀏覽器不緩存與響應(yīng) 有關(guān)的所有靜態(tài)文件,此時,在瀏覽器端,每次請求都需要重新到服務(wù)器端下載最新的靜態(tài) 文件,從而阻止瀏覽器緩存訪問過的靜態(tài)文件。3)當(dāng)靜態(tài)文件有更新時,服務(wù)器端通過對靜態(tài)文件改名或更改靜態(tài)文件的引用地 址的方式,強制瀏覽器訪問最新的靜態(tài)文件。
當(dāng)靜態(tài)文件被改名或引用地址被更改為沒有訪問過的地址后,瀏覽器將認(rèn)為該靜 態(tài)文件是沒有訪問過的新靜態(tài)文件,并會重新下載并緩存該靜態(tài)文件,以此來達(dá)到強制瀏 覽器更新緩存的目的。在實現(xiàn)本申請的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題當(dāng)通過使用依賴瀏覽器自身的更新緩存機(jī)制來保證用戶能夠訪問最新版本的靜 態(tài)文件時,不同瀏覽器的緩存機(jī)制,或者同一瀏覽器不同版本的緩存機(jī)制,都會有所差別,并 不能保證當(dāng)服務(wù)器端的靜態(tài)文件有更新時,瀏覽器會自動下載最新的靜態(tài)文件。而且,瀏覽 器的緩存機(jī)制能通過軟件設(shè)置的方式進(jìn)行更改,從而導(dǎo)致對客戶端的緩存不可控。當(dāng)通過使用在服務(wù)器端對瀏覽器的響應(yīng)中加上不緩存的指令來保證用戶能夠訪 問最新版本的靜態(tài)文件時,雖然能夠阻止瀏覽器緩存訪問過的靜態(tài)文件,但是每次請求都需要下載服務(wù)器端 的最新靜態(tài)文件,從而會導(dǎo)致不必要的靜態(tài)文件下載,增加服務(wù)器端的壓力,使得服務(wù)器端 響應(yīng)效率降低。3)當(dāng)通過使用靜態(tài)文件有更新時服務(wù)器端通過對靜態(tài)文件改名或更改靜態(tài)文件 的引用地址的方式,強制瀏覽器訪問最新的靜態(tài)文件來保證用戶能夠訪問最新版本的靜態(tài) 文件時,對于大型的互聯(lián)網(wǎng)產(chǎn)品,將包含很多靜態(tài)文件,每次更新時都更改靜態(tài)文件名或更 改靜態(tài)文件的引用地址,將會增加維護(hù)成本,并增加無法引用到這些靜態(tài)文件的風(fēng)險。
發(fā)明內(nèi)容
本申請?zhí)峁┮环N控制瀏覽器緩存的方法、裝置和系統(tǒng),以保證瀏覽器客戶端能夠 訪問最新的靜態(tài)文件,防止瀏覽器客戶端訪問瀏覽器緩存中的過期文件,并且高效簡單地 維護(hù)大量的靜態(tài)文件。本申請?zhí)岢鲆环N控制瀏覽器緩存的方法,包括以下步驟服務(wù)器獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化;當(dāng)判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版 本標(biāo)識;所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽器根據(jù)所述版本標(biāo)識更新 本地緩存。所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識之前,還包括所述服務(wù)器為每個靜態(tài)文件配置對應(yīng)的配置文件;所述配置文件中建立了所述靜 態(tài)文件對應(yīng)的版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述靜態(tài)文件對應(yīng)的時間版本標(biāo)識;所述服務(wù) 器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述服務(wù)器獲取當(dāng)前時間,并將所述當(dāng)前時間作為所述靜態(tài)文件對應(yīng)的時間版本 標(biāo)識。所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器包括所述服務(wù)器將所述靜態(tài)文件對應(yīng)的配置文件發(fā)送給所述瀏覽器,所述配置文件中 攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。
所述瀏覽器根據(jù)所述版本標(biāo)識更新本地緩存包括在所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件時,所述瀏覽器判斷所 述版本標(biāo)識是否高于本地緩存中的版本標(biāo)識;當(dāng)判斷結(jié)果為所述版本標(biāo)識高于所述本地緩存中的版本標(biāo)識時,則所述瀏覽器根 據(jù)所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系更新本地緩存。所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件包括所述瀏覽器從所述配置文件中獲取對應(yīng)的版本標(biāo)識;所述瀏覽器根據(jù)所述版本標(biāo)識,并通過所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng) 關(guān)系獲取所述靜態(tài)文件的地址;所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件。本申請?zhí)岢鲆环N服務(wù)器,包括獲取模塊,用于獲取生成網(wǎng)頁的靜態(tài)文件;判斷模塊,用于判斷所述獲取模塊獲取的所述靜態(tài)文件是否發(fā)生變化;生成模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,生成所 述靜態(tài)文件對應(yīng)的版本標(biāo)識;發(fā)送模塊,用于將所述生成模塊生成的所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽 器根據(jù)所述版本標(biāo)識更新本地緩存。還包括配置模塊,用于為每個靜態(tài)文件配置對應(yīng)的配置文件;所述配置文件中建立了所 述靜態(tài)文件對應(yīng)的版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述靜態(tài)文件對應(yīng)的時間版本標(biāo)識;所述生成模塊包括第一獲取子模塊,用于獲取當(dāng)前時間;第二獲取子模塊,用于將所述第一獲取子模塊獲取的所述當(dāng)前時間作為所述靜態(tài) 文件對應(yīng)的時間版本標(biāo)識。所述發(fā)送模塊具體用于,將所述靜態(tài)文件對應(yīng)的配置文件發(fā)送給所述瀏覽器,所 述配置文件中攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。本申請?zhí)岢鲆环N客戶端,包括接收模塊,用于通過自身的瀏覽器接收來自服務(wù)器的版本標(biāo)識,所述版本標(biāo)識為 靜態(tài)文件對應(yīng)的版本標(biāo)識;判斷模塊,用于判斷所述接收模塊接收的版本標(biāo)識所對應(yīng)的靜態(tài)文件是否發(fā)生變 化;處理模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,根據(jù)所 述接收模塊接收的所述版本標(biāo)識更新本地緩存。所述接收模塊具體用于,通過自身的瀏覽器接收來自所述服務(wù)器的所述靜態(tài)文件 對應(yīng)的配置文件,所述配置文件中攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。所述處理模塊包括判斷子模塊,用于在所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件時, 判斷所述版本標(biāo)識是否高于本地緩存中的版本標(biāo)識;
更新子模塊,用于當(dāng)所述判斷子模塊的判斷結(jié)果為所述版本標(biāo)識高于所述本地緩 存中的版本標(biāo)識時,根據(jù)所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系更新本地緩存。還包括訪問模塊,用于根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件;所述訪問模塊包括第一獲取子模塊,用于通過所述瀏覽器從所述配置文件中獲取對應(yīng)的版本標(biāo)識;第二獲取子模塊,用于根據(jù)所述第一獲取子模塊獲取的所述版本標(biāo)識,并通過所 述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系獲取所述靜態(tài)文件的地址;訪問子模塊,用于根據(jù)第二獲取子模塊獲取的所述靜態(tài)文件的地址訪問所述靜態(tài) 文件。本申請?zhí)岢鲆环N控制瀏覽器緩存的系統(tǒng),包括服務(wù)器,用于獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化;當(dāng)判 斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識;并將所述版本標(biāo) 識發(fā)送給瀏覽器;客戶端,用于通過自身的瀏覽器接收所述版本標(biāo)識,并根據(jù)所述版本標(biāo)識更新本 地緩存。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。
為了更清楚地說明本申請或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對本申請或現(xiàn)有技術(shù) 描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本申請的 一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這 些附圖獲得其他的附圖。圖1為本申請實施例一中的一種控制瀏覽器緩存的方法流程圖;圖2為本申請實施例應(yīng)用場景示意圖3為本申請實施例二中的一種控制瀏覽器緩存的方法流程圖;圖4為本申請實施例三中的一種控制瀏覽器緩存的方法流程圖;圖5為本申請實施例架構(gòu)流程示意圖;圖6為本申請實施例四中的一種控制瀏覽器緩存的方法流程圖;圖7為本申請實施例五中的一種控制瀏覽器緩存的方法流程圖;圖8為本申請實施例六中的一種服務(wù)器的結(jié)構(gòu)示意圖;圖9為本申請實施例六中的另一種服務(wù)器的結(jié)構(gòu)示意圖;圖10為本申請實施例六中生成模塊的結(jié)構(gòu)示意圖;圖11為本申請實施例七中的一種客戶端的結(jié)構(gòu)示意圖;圖12為本申請實施例七中處理模塊的結(jié)構(gòu)示意圖;圖13為本申請實施例七中的另一種客戶端的結(jié)構(gòu)示意圖;圖14為本申請實施例七中訪問模塊的結(jié)構(gòu)示意圖。
具體實施例方式本申請的主要思想包括,通過為靜態(tài)文件配置對應(yīng)的配置文件,并在配置文件中 建立靜態(tài)文件的版本標(biāo)識與引入地址的映射關(guān)系,從而使得當(dāng)靜態(tài)文件發(fā)生變化時,可以 通過更改配置文件版本標(biāo)識的方式來標(biāo)識變化后的靜態(tài)文件,并將變化后的靜態(tài)文件所對 應(yīng)的配置文件發(fā)送給客戶端的瀏覽器,而瀏覽器可以根據(jù)該變化后的配置文件更新該靜態(tài) 文件所對應(yīng)的本地緩存,從而防止用戶訪問瀏覽器緩存中的過期文件,并在大型網(wǎng)站中進(jìn) 行高效維護(hù)本申請中,在不禁用瀏覽器緩存的情況下,當(dāng)服務(wù)器端的靜態(tài)文件有更新時,任何 瀏覽器在任何緩存機(jī)制下都能夠訪問到最新的靜態(tài)文件,從而能高效簡單地維護(hù)大量的靜 態(tài)文件,提高用戶的使用感受。下面將結(jié)合本申請中的附圖,對本申請中的技術(shù)方案進(jìn)行清楚、完整的描述,顯 然,所描述的實施例是本申請的一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤?例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬 于本申請保護(hù)的范圍。如圖1所示,為本申請實施例一中的一種控制瀏覽器緩存的方法流程圖,包括以 下步驟步驟101,服務(wù)器獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化。 當(dāng)判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,轉(zhuǎn)到步驟102,當(dāng)判斷結(jié)果為所述靜態(tài)文件沒有發(fā) 生變化時,結(jié)束流程。步驟102,所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識。具體的,所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識之前,即本步驟之前,還包 括所述服務(wù)器為每個靜態(tài)文件配置對應(yīng)的配置文件;所述配置文件中建立了所述靜 態(tài)文件對應(yīng)的版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述靜態(tài)文件對應(yīng)的時間版本標(biāo)識;所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括
所述服務(wù)器獲取當(dāng)前時間,并將所述當(dāng)前時間作為所述靜態(tài)文件對應(yīng)的時間版本 標(biāo)識。步驟103,所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽器根據(jù)所述版本 標(biāo)識更新本地緩存。具體的,所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器包括所述服務(wù)器將所述靜態(tài)文件對應(yīng)的配置文件發(fā)送給所述瀏覽器,所述配置文件中 攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。在本申請中,所述瀏覽器根據(jù)所述版本標(biāo)識更新本地緩存包括在所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件時,所述瀏覽器判斷所 述版本標(biāo)識是否高于本地緩存中的版本標(biāo)識;當(dāng)判斷結(jié)果為所述版本標(biāo)識高于所述本地緩存中的版本標(biāo)識時,則所述瀏覽器根 據(jù)所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系更新本地緩存。此外,所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件包括所述瀏覽器從所述配置文件中獲取對應(yīng)的版本標(biāo)識;所述瀏覽器根據(jù)所述版本標(biāo)識,并通過所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng) 關(guān)系獲取所述靜態(tài)文件的地址;所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。本申請上述實施例提供了一種控制瀏覽器緩存的方法,以下結(jié)合具體應(yīng)用場景對 上述控制瀏覽器緩存的方法進(jìn)行具體、詳細(xì)的描述。如圖2所示的一種應(yīng)用場景示意圖,服 務(wù)器通過hternet與客戶端連接,各個客戶端上都包含有瀏覽器。如圖3所示,為基于上述的應(yīng)用場景,本申請實施例二中的一種控制瀏覽器緩存 的方法流程圖,包括以下步驟步驟301,服務(wù)器為靜態(tài)文件配置對應(yīng)的配置文件。
具體的,在每個靜態(tài)文件中,都有一個唯一的版本標(biāo)識,本申請中,通過為靜態(tài)文 件配置對應(yīng)的配置文件,并通過使用該配置文件來攜帶靜態(tài)文件的版本標(biāo)識。在為靜態(tài)文件配置的配置文件中,將會建立靜態(tài)文件的版本標(biāo)識與引入地址的映 射關(guān)系,其中,該引入地址為靜態(tài)文件對應(yīng)的地址,當(dāng)客戶端需要訪問靜態(tài)文件時,需要根 據(jù)該引入地址進(jìn)行相應(yīng)的訪問過程。需要說明的是,本申請中,并不需要為所有的靜態(tài)文件都配置對應(yīng)的配置文件,在 實際應(yīng)用中,可以根據(jù)靜態(tài)文件的使用情況,選擇為靜態(tài)文件配置對應(yīng)的配置文件,或者, 選擇不為靜態(tài)文件配置對應(yīng)的配置文件。例如,有靜態(tài)文件A和靜態(tài)文件B,在實際應(yīng)用中,靜態(tài)文件的使用情況分別為靜 態(tài)文件A不會發(fā)生變化,靜態(tài)文件B會發(fā)生變化,此時,不需要為靜態(tài)文件A配置對應(yīng)的配 置文件,而需要為靜態(tài)文件B配置對應(yīng)的配置文件。當(dāng)然,也可以選擇為靜態(tài)文件A件配置 對應(yīng)的配置文件,本申請中不再詳加贅述。步驟302,服務(wù)器判斷靜態(tài)文件是否發(fā)生變化。當(dāng)判斷結(jié)果為是時,轉(zhuǎn)到步驟303, 否則,結(jié)束流程。實際應(yīng)用中,服務(wù)器將根據(jù)實際的需要向客戶端發(fā)送靜態(tài)文件的信息,從而使得 客戶端上的瀏覽器能夠訪問對應(yīng)的靜態(tài)文件。服務(wù)器在向客戶端發(fā)送靜態(tài)文件的信息時,該服務(wù)器能夠根據(jù)該靜態(tài)文件獲知是 否變化。例如,對于靜態(tài)文件A,在之前的過程中向客戶端發(fā)送了靜態(tài)文件Al的信息,如果 此時需要向客戶端發(fā)送靜態(tài)文件A2的信息,則靜態(tài)文件發(fā)生了變化;如果此時仍然需要向 客戶端發(fā)送靜態(tài)文件Al的信息,則靜態(tài)文件沒有發(fā)生變化。步驟303,服務(wù)器更新靜態(tài)文件對應(yīng)的配置文件中的版本標(biāo)識。由于版本標(biāo)識與引入地址具有映射關(guān)系,即本步驟中可以更新配置文件中引入地 址中的版本標(biāo)識。優(yōu)選的,該配置文件中的版本標(biāo)識可以使用修改時的日期,例如,當(dāng)修改時的日期 為2009. 9. 28時,服務(wù)器可以將靜態(tài)文件對應(yīng)的配置文件中的版本標(biāo)識更新為20090擬8。當(dāng)然,在實際應(yīng)用中,并不局限于使用時間版本標(biāo)識,任意的版本標(biāo)識方式均在本 申請的保護(hù)范圍之內(nèi)。例如,可以直接使用數(shù)字版本標(biāo)識,靜態(tài)文件初始時的版本標(biāo)識為0, 第一次需要修改靜態(tài)文件時,服務(wù)器可以將靜態(tài)文件對應(yīng)的配置文件中的版本標(biāo)識更新為 1,第二次需要修改靜態(tài)文件時,服務(wù)器可以將靜態(tài)文件對應(yīng)的配置文件中的版本標(biāo)識更新 為2,以此類推。對于其他的版本標(biāo)識方式,本申請中不再贅述。步驟304,服務(wù)器根據(jù)更新后的版本標(biāo)識并通過模板替換方式引入配置文件,生成 程序頁面。其中,該程序頁面用于攜帶新的配置文件并發(fā)送給客戶端的瀏覽器。具體的,對于每個靜態(tài)文件,都有自身對應(yīng)的模板,而在各個模板中,發(fā)生變化的 是配置文件中的版本標(biāo)識,本申請中,通過模板替換的方式將版本標(biāo)識引入到配置文件,即 可以根據(jù)更新了版本標(biāo)識的配置文件引入生成對應(yīng)的程序頁面。步驟305,服務(wù)器將攜帶了新的配置文件的程序頁面發(fā)送給客戶端的瀏覽器。步驟306,客戶端通過自身的瀏覽器訪問程序頁面,并根據(jù)該程序頁面中的配置文 件信息更新本地緩存。即在后續(xù)過程中,該客戶端的瀏覽器將通過使用更新后的本地緩存 訪問該變化后的靜態(tài)文件。
具體的,在訪問程序頁面的過程中,瀏覽器將從程序頁面獲取到配置文件中的版 本標(biāo)識,并根據(jù)版本標(biāo)識與引入地址的映射關(guān)系,將靜態(tài)文件的版本標(biāo)識替換為靜態(tài)文件 實際的引入地址,從而根據(jù)該靜態(tài)文件實際的引入地址訪問到靜態(tài)文件。需要說明的是,在客戶端更新本地緩存的過程中,還需要判斷配置文件所對應(yīng)的 靜態(tài)文件是否發(fā)生變化。即客戶端可以通過使用配置文件中的版本標(biāo)識判斷配置文件所對 應(yīng)的靜態(tài)文件是否發(fā)生變化。例如,本地緩存中的版本標(biāo)識為20091010,而從配置文件中獲 取到的版本標(biāo)識為20091012,可以看出,該配置文件所對應(yīng)的靜態(tài)文件在2009. 10. 12發(fā)生 了變化。綜上所述,當(dāng)一個靜態(tài)文件需要更改版本時,只需要更改配置文件中的版本標(biāo)識 即可,并不需更改所有包含該靜態(tài)文件的程序文件。需要說明的是,本申請方法可以根據(jù)實際需要對各個步驟順序進(jìn)行調(diào)整。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。為了更加清楚的闡述本申請中所提出的控制瀏覽器緩存的方法,以下結(jié)合一個具 體的例子來詳細(xì)說明。其中,該具體的例子以靜態(tài)文件demo, js為例進(jìn)行說明。如圖4所示,為本申請實施例三中的一種控制瀏覽器緩存的方法流程圖,包括以 下步驟步驟401,服務(wù)器為靜態(tài)文件demo, js配置對應(yīng)的配置文件demo = /rootpath/ demo, js ? ν = 20090928ο具體的,靜態(tài)文件demo, js具有唯一的版本標(biāo)識,該靜態(tài)文件demo, js在配置文件 中的映射為 demo = /rootpath/demo. js ? ν = 20090928,其中 demo (即 20090928)為 demo, js的版本標(biāo)識,/rootpath/demo. js ? ν = 20090928為引入地址。即配置文件為靜態(tài)文件 demo, js 建立了版本標(biāo)識(demo)與引入地址(/rootpath/demo. js ? ν = 20090928)的映
射關(guān)系。步驟402,服務(wù)器判斷靜態(tài)文件是否發(fā)生變化。當(dāng)判斷結(jié)果為是時,轉(zhuǎn)到步驟403,否則,結(jié)束流程。步驟403,當(dāng)靜態(tài)文件demo, js更改后,服務(wù)器需要更新配置文件demo = / rootpath/demo. js ? ν = 20090928 中的版本標(biāo)識。當(dāng)靜態(tài)文件demo, js 更改后,需要修改 /rootpath/demo. js ? ν = 20090928 (版 本標(biāo)識demo)中的信息,即需要需要/rootpath/demo. js ? ν = 20090928中的200909 , 以時間版本標(biāo)識為例,服務(wù)器獲取當(dāng)前時間,并根據(jù)當(dāng)前時間獲取靜態(tài)文件對應(yīng)的時間版 本標(biāo)識。例如,當(dāng)前時間為2009. 9. 30時,時間版本標(biāo)識為20090930,對應(yīng)的,需要將配置文 件 demo = /rootpath/demo. js ? ν = 20090928 更新為配置文件 demo = /rootpath/demo. js ? ν = 20090930。上述情況是以時間版本標(biāo)識為例進(jìn)行說明的,實際應(yīng)用中,還可以為其他的版本 標(biāo)識方式,以數(shù)字版本標(biāo)識為例,為靜態(tài)文件demo, js配置的配置文件可以為demo = / rootpath/demo. js ? ν = 0o當(dāng)靜態(tài)文件demo, js更改后,第一次需要將配置文件demo = /rootpath/demo. js ? ν = 0 更新為配置文件 demo = /rootpath/demo. js ? ν = 1 ;第二次 需要將配置文件demo = /rootpath/demo. js ? ν = 1更新為配置文件demo = /rootpath/ demo, js ? ν = 2 ;以此類推。對于其他的版本標(biāo)識方式,處理過程類似,本申請中不再贅述,后續(xù)過程中以將配 置文件更新為demo = /rootpath/demo. js ? ν = 20090930為例進(jìn)行說明。步驟404,服務(wù)器根據(jù)配置文件 demo = /rootpath/demo. js ? ν = 20090930 生成
程序頁面。本申請中,可以通過模板替換的方式引入配置文件對應(yīng)的版本標(biāo)識,并將配置文 件 demo = /rootpath/demo. js ? ν = 20090930 引入,從而生成程序頁面。具體的,每個靜態(tài)文件都有自身對應(yīng)的模板,對于靜態(tài)文件demo, js,版本標(biāo)識為 demo,模板為# jsm [ “ demo ”],該jsm部分用于引入靜態(tài)文件,而“ demo ”部分,用于引入配 置文件 demo = /rootpath/demo. js ? ν = 20090930。步驟405,服務(wù)器將靜態(tài)文件demo, js對應(yīng)的程序頁面發(fā)送給客戶端的瀏覽器。其 中,該程序頁面中攜帶了靜態(tài)文件demo, js對應(yīng)的配置文件。步驟406,客戶端通過自身的瀏覽器訪問程序頁面,并根據(jù)該程序頁面中的配置文 件 demo = /rootpath/demo. js ? ν = 20090930 更新本地緩存中的靜態(tài)文件 demo, js。具體的,在訪問程序頁面的過程中,瀏覽器將從程序頁面獲取到配置文件中的版 本標(biāo)識demo,而通過使用靜態(tài)文件demo, js對應(yīng)的模板為#jsm[“demo”],當(dāng)客戶端訪問包 含 demo, js 的程序頁面時,#jsm[ “demo,,]會被替換為〈script src = "/rootpath/demo. js ? ν = 20090930"type ="text/javascript"X/script),^^,/rootpath/demo. js ? ν = 20090930為配置文件的版本標(biāo)識demo部分。在配置文件的版本標(biāo)識demo部分中,根據(jù)版本標(biāo)識demo與引入地址的映射關(guān)系, 可以得到靜態(tài)文件實際的引入地址,即/rootpath/demo. js ? ν = 20090930為demo, js的 引入地址,而客戶端可以通過自身的瀏覽器訪問/rootpath/demo. js ? ν = 20090930地址 所對應(yīng)的靜態(tài)文件demo, js。需要說明的是,本申請方法可以根據(jù)實際需要對各個步驟順序進(jìn)行調(diào)整。本申請包括以下優(yōu)點,
1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。本申請中,為了能夠在配置文件中更加容易地更改某一靜態(tài)文件的版本標(biāo)識(即 用于表示版本的標(biāo)識),本申請中提供了一個基于eclipse的開發(fā)平臺(該開發(fā)平臺是使用 最為廣泛的軟件開發(fā)平臺)的自動化修改版本標(biāo)識工具,通過使用該自動化修改版本標(biāo)識 工具,能夠?qū)o態(tài)文件的版本標(biāo)識進(jìn)行自動修改,從而使得上述控制瀏覽器緩存的方法的 整個過程無需人員手工干預(yù),工具一鍵即可完成。如圖5所示的架構(gòu)流程示意圖,其中,圖 5中的各個部分均位于服務(wù)器端。需要說明的是,圖5中的自動化修改版本標(biāo)識工具可以是基于eclipse的開發(fā)平 臺的,還可以為基于其他的開發(fā)平臺的,本申請中不再對開發(fā)平臺進(jìn)行相應(yīng)的說明。如圖6所示,為基于上述的架構(gòu)情況,本申請實施例四中的一種控制瀏覽器緩存 的方法流程圖,包括以下步驟步驟601,當(dāng)靜態(tài)文件的版本標(biāo)識發(fā)生改變時,自動化修改版本標(biāo)識工具根據(jù)被修 改的靜態(tài)文件的版本標(biāo)識搜索配置文件,并找到該配置文件對應(yīng)的配置項。步驟602,自動化修改版本標(biāo)識工具根據(jù)當(dāng)前的時間戳為最新版本標(biāo)識自動更新 配置文件對應(yīng)的配置項中的版本標(biāo)識。具體的,在實際應(yīng)用中,該版本標(biāo)識可以作為靜態(tài)文件的版本標(biāo)識,即本步驟中, 自動化修改版本標(biāo)識工具可以根據(jù)當(dāng)前的時間戳為最新版本標(biāo)識自動更新配置文件對應(yīng) 的配置項中的版本標(biāo)識。步驟603,自動化修改版本標(biāo)識工具通過模板替換方式將配置文件引入到靜態(tài)文 件引入模板中。步驟604,自動化修改版本標(biāo)識工具根據(jù)引入后的配置文件引入模板生成程序頁 面。其中,在該程序頁面中,包含了靜態(tài)文件對應(yīng)的最新版本標(biāo)識,該版本標(biāo)識是攜帶于配 置文件中的。步驟605,自動化修改版本標(biāo)識工具將程序頁面發(fā)送給客戶端的瀏覽器。步驟606,客戶端的瀏覽器根據(jù)該程序頁面獲取最新版本標(biāo)識的靜態(tài)文件,即獲取最新版本的靜態(tài)文件。步驟607,客戶端的瀏覽器根據(jù)該最新版本標(biāo)識的靜態(tài)文件更新本地緩存。需要說明的是,本申請方法可以根據(jù)實際需要對各個步驟順序進(jìn)行調(diào)整。綜上所述,本申請中,當(dāng)靜態(tài)文件有更新時,通過更新引用地址中的版本標(biāo)識,來 通知瀏覽器需要重新下載最新版本的靜態(tài)文件并更新緩存。具體的,通過在配置文件中建立靜態(tài)文件和引用地址的映射關(guān)系,所有頁面不直 接包含有版本標(biāo)識的靜態(tài)文件引用地址,而是通過該映射關(guān)系載入每個靜態(tài)文件的引用地 址。在軟件的開發(fā)過程中,當(dāng)靜態(tài)文件更新后,通過自動化修改版本標(biāo)識工具更新配置文件 中該靜態(tài)文件對應(yīng)的引用地址所包含的版本標(biāo)識,從而使得該靜態(tài)文件相關(guān)的所有頁面中 的引用地址都得以更新。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。為了更加清楚的闡述本申請中所提出的控制瀏覽器緩存的方法,以下結(jié)合一個具 體的例子來詳細(xì)說明。其中,該具體的例子以靜態(tài)文件demo, js為例進(jìn)行說明。如圖7所示,為本申請實施例五中的一種控制瀏覽器緩存的方法流程圖,包括以 下步驟步驟701,當(dāng)靜態(tài)文件demo, js的版本標(biāo)識發(fā)生改變時,自動化修改版本標(biāo)識工具 根據(jù)被修改的靜態(tài)文件demo, js的版本標(biāo)識搜索配置文件,并找到該配置文件對應(yīng)的配置 項。其中,該配置文件所對應(yīng)的配置項具體為demo = /rootpath/demo. js ? ν = 20090擬8。步驟702,自動化修改版本標(biāo)識工具根據(jù)當(dāng)前的時間戳2009. 11. 23為最新版本標(biāo) 識自動更新配置文件對應(yīng)的配置項demo = /rootpath/demo. js ? ν = 20090928中的版本 標(biāo)識,即需要將配置文件對應(yīng)的配置項demo = /rootpath/demo. js ? ν = 20090928更改 為 demo = /rootpath/demo. js ? ν = 20091123。具體的,在實際應(yīng)用中,該版本標(biāo)識可以作為靜態(tài)文件的版本標(biāo)識,即本步驟中, 自動化修改版本標(biāo)識工具可以根據(jù)當(dāng)前的時間戳為最新版本標(biāo)識自動更新配置文件對應(yīng)的配置項中的版本標(biāo)識。步驟703,自動化修改版本標(biāo)識工具通過模板替換方式將更新后的配置文件demo =/rootpath/demo. js ? ν = 20091123引入到靜態(tài)文件引入模板中。步驟704,自動化修改版本標(biāo)識工具根據(jù)引入后的配置文件引入模板生成程序頁 面。其中,在該程序頁面中,包含了靜態(tài)文件對應(yīng)的最新版本標(biāo)識,該版本標(biāo)識是攜帶于配 置文件中的。步驟705,自動化修改版本標(biāo)識工具將程序頁面發(fā)送給客戶端的瀏覽器。步驟706,客戶端的瀏覽器根據(jù)該程序頁面獲取最新版本標(biāo)識的靜態(tài)文件,即獲取 最新版本的靜態(tài)文件。具體的,最新版本的靜態(tài)文件為〈script src = ”/rootpath/demo. js ? ν = 20091123" type = “ text/javascript" ></script>, ^ 中,/rootpath/demo. js ? ν = 20091123為配置文件的版本標(biāo)識部分。步驟707,客戶端的瀏覽器根據(jù)該最新版本標(biāo)識/rootpath/demo. js ? ν = 20091123的靜態(tài)文件更新本地緩存。需要說明的是,本申請方法可以根據(jù)實際需要對各個步驟順序進(jìn)行調(diào)整。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。本申請上述實施例提供了控制瀏覽器緩存的方法和應(yīng)用場景,相應(yīng)地,本申請還 通過以下實施例提供了應(yīng)用上述方法的設(shè)備和系統(tǒng)。如圖8所示,為本申請實施例六中的一種服務(wù)器的結(jié)構(gòu)示意圖,包括獲取模塊81,用于獲取生成網(wǎng)頁的靜態(tài)文件。判斷模塊82,用于判斷所述獲取模塊81獲取的所述靜態(tài)文件是否發(fā)生變化。生成模塊83,用于當(dāng)所述判斷模塊82的判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,生 成所述靜態(tài)文件對應(yīng)的版本標(biāo)識。發(fā)送模塊84,用于將所述生成模塊83生成的所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽器根據(jù)所述版本標(biāo)識更新本地緩存。進(jìn)一步的,如圖9所示,所述服務(wù)器還包括配置模塊85,用于為每個靜態(tài)文件配置對應(yīng)的配置文件;所述配置文件中建立了 所述靜態(tài)文件對應(yīng)的版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述靜態(tài)文件對應(yīng)的時間版本標(biāo)識;進(jìn)一步 的,如圖10所示,所述生成模塊83包括第一獲取子模塊831,用于獲取當(dāng)前時間;第二獲取子模塊832,用于將所述第一獲取子模塊831獲取的所述當(dāng)前時間作為 所述靜態(tài)文件對應(yīng)的時間版本標(biāo)識。此外,所述發(fā)送模塊84具體用于,將所述靜態(tài)文件對應(yīng)的配置文件發(fā)送給所述瀏 覽器,所述配置文件中攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合 并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。如圖11所示,為本申請實施例七中的一種客戶端,包括接收模塊91,用于通過自身的瀏覽器接收來自服務(wù)器的版本標(biāo)識,所述版本標(biāo)識 為靜態(tài)文件對應(yīng)的版本標(biāo)識。判斷模塊92,用于判斷所述接收模塊91接收的版本標(biāo)識所對應(yīng)的靜態(tài)文件是否
發(fā)生變化。處理模塊93,用于當(dāng)所述判斷模塊92的判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,根 據(jù)所述接收模塊91接收的所述版本標(biāo)識更新本地緩存。具體的,所述接收模塊91具體用于,通過自身的瀏覽器接收來自所述服務(wù)器的所 述靜態(tài)文件對應(yīng)的配置文件,所述配置文件中攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的 對應(yīng)關(guān)系。
本申請實施例七提供的客戶端中,如圖12所示,所述處理模塊93進(jìn)一步包括判斷子模塊931,用于在所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件 時,判斷所述版本標(biāo)識是否高于本地緩存中的版本標(biāo)識;更新子模塊932,用于當(dāng)所述判斷子模塊931的判斷結(jié)果為所述版本標(biāo)識高于所 述本地緩存中的版本標(biāo)識時,根據(jù)所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系更新本地緩存。進(jìn)一步的,如圖13所示,所述客戶端還包括訪問模塊94,用于根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件。進(jìn)一步的,如圖14所示,所述訪問模塊94包括第一獲取子模塊941,用于通過所述瀏覽器從所述配置文件中獲取對應(yīng)的版本標(biāo) 識;第二獲取子模塊942,用于根據(jù)所述第一獲取子模塊941獲取的所述版本標(biāo)識,并 通過所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系獲取所述靜態(tài)文件的地址;訪問子模塊943,用于根據(jù)第二獲取子模塊942獲取的所述靜態(tài)文件的地址訪問 所述靜態(tài)文件。其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合 并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。本申請包括以下優(yōu)點,1)保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件。通過在服務(wù)器端生成靜態(tài)文件的版本標(biāo)識,從而決定客戶端瀏覽器是從服務(wù)器端 下載最新靜態(tài)文件還是在本地緩存中提取靜態(tài)文件。而且當(dāng)客戶端使用不同的瀏覽器,或 者使用同一瀏覽器不同版本的緩存機(jī)制時,訪問的靜態(tài)文件都會由服務(wù)器端決定,即服務(wù) 器端統(tǒng)一決定客戶端瀏覽器是否訪問最新的靜態(tài)文件,從而可以杜絕因靜態(tài)文件過期導(dǎo)致 的程序問題。2)集中管理所有靜態(tài)文件的版本標(biāo)識。程序頁面通過模板替換的方式從統(tǒng)一的配置文件中提取靜態(tài)文件的引入地址,并 通過對配置文件的維護(hù)從而集中管理所有靜態(tài)文件的版本標(biāo)識。當(dāng)需要更改某一個靜態(tài)文 件的版本標(biāo)識時,只需更改該靜態(tài)文件在配置文件中對應(yīng)的配置項即可,從而確保該靜態(tài) 文件在所有程序頁面中得以正確引用。3)通過工具自動更改靜態(tài)文件的版本標(biāo)識。當(dāng)靜態(tài)文件發(fā)生更改后,工具能夠自動在配置文件中搜索到對應(yīng)的配置項,并更 改配置文件中對應(yīng)的版本標(biāo)識,整個過程無需人工參與,提高了開發(fā)和維護(hù)效率。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達(dá)到以上所述的所有優(yōu)點。本申請實施例八中還提出了一種控制瀏覽器緩存的系統(tǒng),包括服務(wù)器,用于獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化;當(dāng)判 斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識;并將所述版本標(biāo) 識發(fā)送給瀏覽器;客戶端,用于通過自身的瀏覽器接收所述版本標(biāo)識,并根據(jù)所述版本標(biāo)識更新本 地緩存。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助 軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更 佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的 部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若 干指令用以使得一臺終端設(shè)備(可以是手機(jī),個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行 本發(fā)明各個實施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視本發(fā)明的保護(hù)范圍。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進(jìn)行分 布于實施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上 述實施例的模塊可以集成于一體,也可以分離部署;可以合并為一個模塊,也可以進(jìn)一步拆 分成多個子模塊。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng) 域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1. 一種控制瀏覽器緩存的方法,其特征在于,包括以下步驟 服務(wù)器獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化;當(dāng)判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識;所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽器根據(jù)所述版本標(biāo)識更新本地緩存。
2.如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本 標(biāo)識之前,還包括所述服務(wù)器為每個靜態(tài)文件配置對應(yīng)的配置文件;所述配置文件中建立了所述靜態(tài)文 件對應(yīng)的版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。
3.如權(quán)利要求2所述的方法,其特征在于,所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述靜 態(tài)文件對應(yīng)的時間版本標(biāo)識;所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述服務(wù)器獲取當(dāng)前時間,并將所述當(dāng)前時間作為所述靜態(tài)文件對應(yīng)的時間版本標(biāo)識。
4.如權(quán)利要求2所述的方法,其特征在于,所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器 包括所述服務(wù)器將所述靜態(tài)文件對應(yīng)的配置文件發(fā)送給所述瀏覽器,所述配置文件中攜帶 了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。
5.如權(quán)利要求4所述的方法,其特征在于,所述瀏覽器根據(jù)所述版本標(biāo)識更新本地緩 存包括在所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件時,所述瀏覽器判斷所述版 本標(biāo)識是否高于本地緩存中的版本標(biāo)識;當(dāng)判斷結(jié)果為所述版本標(biāo)識高于所述本地緩存中的版本標(biāo)識時,則所述瀏覽器根據(jù)所 述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系更新本地緩存。
6.如權(quán)利要求5所述的方法,其特征在于,所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問 所述靜態(tài)文件包括所述瀏覽器從所述配置文件中獲取對應(yīng)的版本標(biāo)識;所述瀏覽器根據(jù)所述版本標(biāo)識,并通過所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系 獲取所述靜態(tài)文件的地址;所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件。
7. 一種服務(wù)器,其特征在于,包括 獲取模塊,用于獲取生成網(wǎng)頁的靜態(tài)文件;判斷模塊,用于判斷所述獲取模塊獲取的所述靜態(tài)文件是否發(fā)生變化; 生成模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,生成所述靜 態(tài)文件對應(yīng)的版本標(biāo)識;發(fā)送模塊,用于將所述生成模塊生成的所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽器根 據(jù)所述版本標(biāo)識更新本地緩存。
8.如權(quán)利要求7所述的服務(wù)器,其特征在于,還包括配置模塊,用于為每個靜態(tài)文件配置對應(yīng)的配置文件;所述配置文件中建立了所述靜態(tài)文件對應(yīng)的版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。
9.如權(quán)利要求8所述的服務(wù)器,其特征在于,所述靜態(tài)文件對應(yīng)的版本標(biāo)識包括所述 靜態(tài)文件對應(yīng)的時間版本標(biāo)識;所述生成模塊包括 第一獲取子模塊,用于獲取當(dāng)前時間;第二獲取子模塊,用于將所述第一獲取子模塊獲取的所述當(dāng)前時間作為所述靜態(tài)文件 對應(yīng)的時間版本標(biāo)識。
10.如權(quán)利要求8所述的服務(wù)器,其特征在于,所述發(fā)送模塊具體用于,將所述靜態(tài)文件對應(yīng)的配置文件發(fā)送給所述瀏覽器,所述配 置文件中攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。
11.一種客戶端,其特征在于,包括接收模塊,用于通過自身的瀏覽器接收來自服務(wù)器的版本標(biāo)識,所述版本標(biāo)識為靜態(tài) 文件對應(yīng)的版本標(biāo)識;判斷模塊,用于判斷所述接收模塊接收的版本標(biāo)識所對應(yīng)的靜態(tài)文件是否發(fā)生變化; 處理模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,根據(jù)所述接 收模塊接收的所述版本標(biāo)識更新本地緩存。
12.如權(quán)利要求11所述的客戶端,其特征在于,所述接收模塊具體用于,通過自身的瀏覽器接收來自所述服務(wù)器的所述靜態(tài)文件對應(yīng) 的配置文件,所述配置文件中攜帶了所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系。
13.如權(quán)利要求12所述的客戶端,其特征在于,所述處理模塊包括判斷子模塊,用于在所述瀏覽器根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件時,判斷 所述版本標(biāo)識是否高于本地緩存中的版本標(biāo)識;更新子模塊,用于當(dāng)所述判斷子模塊的判斷結(jié)果為所述版本標(biāo)識高于所述本地緩存中 的版本標(biāo)識時,根據(jù)所述版本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系更新本地緩存。
14.如權(quán)利要求13所述的客戶端,其特征在于,還包括訪問模塊,用于根據(jù)所述靜態(tài)文件的地址訪問所述靜態(tài)文件; 所述訪問模塊包括第一獲取子模塊,用于通過所述瀏覽器從所述配置文件中獲取對應(yīng)的版本標(biāo)識; 第二獲取子模塊,用于根據(jù)所述第一獲取子模塊獲取的所述版本標(biāo)識,并通過所述版 本標(biāo)識與所述靜態(tài)文件地址的對應(yīng)關(guān)系獲取所述靜態(tài)文件的地址;訪問子模塊,用于根據(jù)第二獲取子模塊獲取的所述靜態(tài)文件的地址訪問所述靜態(tài)文件。
15.一種控制瀏覽器緩存的系統(tǒng),其特征在于,包括服務(wù)器,用于獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化;當(dāng)判斷結(jié) 果為所述靜態(tài)文件發(fā)生變化時,生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識;并將所述版本標(biāo)識發(fā) 送給瀏覽器;客戶端,用于通過自身的瀏覽器接收所述版本標(biāo)識,并根據(jù)所述版本標(biāo)識更新本地緩存。
全文摘要
本申請公開了一種控制瀏覽器緩存的方法、裝置和系統(tǒng),該方法包括以下步驟服務(wù)器獲取生成網(wǎng)頁的靜態(tài)文件,并判斷所述靜態(tài)文件是否發(fā)生變化;當(dāng)判斷結(jié)果為所述靜態(tài)文件發(fā)生變化時,所述服務(wù)器生成所述靜態(tài)文件對應(yīng)的版本標(biāo)識;所述服務(wù)器將所述版本標(biāo)識發(fā)送給瀏覽器,由所述瀏覽器根據(jù)所述版本標(biāo)識更新本地緩存。本申請中,保證客戶端瀏覽器訪問服務(wù)器端的最新靜態(tài)文件,集中管理所有靜態(tài)文件的版本標(biāo)識,并通過工具自動更改靜態(tài)文件的版本標(biāo)識。
文檔編號G06F9/445GK102109989SQ20091026587
公開日2011年6月29日 申請日期2009年12月29日 優(yōu)先權(quán)日2009年12月29日
發(fā)明者袁志俊 申請人:阿里巴巴集團(tuán)控股有限公司