緩存更新方法及系統(tǒng)、提供更新資源的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種緩存更新方法,包括以下步驟:在對網頁的離線資源進行緩存時,保存資源文件的識別參數;從服務器端獲取網頁的當前資源文件的識別參數;將當前資源文件的識別參數與網頁已緩存的資源文件的識別參數進行比較;若當前資源文件的識別參數與網頁已緩存的資源文件的識別參數不同,則將所述當前資源文件作為所述網頁的離線資源進行緩存更新。本發(fā)明還提供了一種實現(xiàn)前述方法的緩存更新系統(tǒng),以及一種提供更新資源的方法及系統(tǒng)。本發(fā)明的緩存更新方法及系統(tǒng)、提供更新資源的方法及系統(tǒng),能夠對客戶端的緩存進行及時更新。
【專利說明】緩存更新方法及系統(tǒng)、提供更新資源的方法及系統(tǒng)
【技術領域】
[0001]本申請涉及計算機數據處理【技術領域】,特別是涉及一種緩存更新方法、提供更新資源的方法及系統(tǒng)。
【背景技術】
[0002]隨著網絡技術的不斷發(fā)展,目前第五代超文本標記語言(html5)規(guī)格的網頁逐漸取代上一代即第四代超文本標記語言(html4)規(guī)格的網頁。第五代超文本標記語言提供一種應用程序的高速緩存功能,讓使用者可以在離線狀態(tài)下仍然能夠瀏覽已經高速緩存的網頁或者操作已經高速緩存的網絡應用程序。
[0003]為了保證離線狀態(tài)下網頁的正常瀏覽,需要在聯(lián)網狀態(tài)下實時更新高速緩存的內容。第五代超文本標記語言規(guī)格的網頁通過manifest文件的更新來實現(xiàn)高速緩存內容的更新。但是,在某些情況,因為網頁瀏覽器本地的緩存機制,在對緩存資源進行存儲時,會存儲緩存資源的特征信息,當緩存資源未超過預先設定的過期期限時或者特征信息未發(fā)生改變時,網頁瀏覽器并不會對本地的緩存進行更新。但是,在某些情況下,某些緩存資源即使發(fā)生了變化,但是其特征信息并不會改變,那么網頁瀏覽器便無法識別是否需要更新。此時,打開的網頁可能顯示的是更新前的內容,也即本地緩存無法實現(xiàn)及時更新。為此,往往需要通過使用者手動點擊刷新來獲取到最新的網頁進行緩存,在某些時候使用者甚至可能需要刷新多次才能獲取到最新的網頁,這無疑需要反復的向服務器提交請求,增加服務器的負載。
【發(fā)明內容】
[0004]本申請?zhí)峁┮环N緩存更新方法及系統(tǒng)、提供更新資源的方法及系統(tǒng),能夠解決客戶端緩存無法及時更新的問題。
[0005]為了解決上述問題,本申請公開了一種緩存更新方法,包括以下步驟:
[0006]在對網頁的離線資源進行緩存時,保存資源文件的識別參數;
[0007]從服務器端獲取網頁的當前資源文件的識別參數;
[0008]將當前資源文件的識別參數與網頁已緩存的資源文件的識別參數進行比較;若當前資源文件的識別參數與網頁已緩存的資源文件的識別參數不同,則將所述當前資源文件作為所述網頁的離線資源進行緩存更新。
[0009]進一步地,所述識別參數存儲于當前資源文件的url和/或資源描述文件中;
[0010]所述從服務器端獲取網頁的當前資源文件的識別參數包括:
[0011]從當前資源文件的url和/或資源描述文件中確定所述識別參數。
[0012]進一步地,所述識別參數為循環(huán)冗余校驗碼(crc)。
[0013]本申請還提供了一種提供更新資源的方法,為客戶端緩存的離線資源提供更新,包括:
[0014]讀取網頁的資源文件,獲取資源文件的識別參數;[0015]檢查所述資源文件的識別參數是否發(fā)生變化;
[0016]當所述資源文件的識別參數發(fā)生變化時,為客戶端緩存的離線資源提供更新。
[0017]進一步地,所述方法還包括:
[0018]將發(fā)生變化的識別參數生成識別文件;
[0019]根據所述識別文件生成資源描述文件。
[0020]進一步地,所述根據識別文件生成資源描述文件包括:
[0021]將所述識別文件中的識別參數附加在資源描述文件描述的資源文件的url中。
[0022]進一步地,所述方法還包括:
[0023]將所述資源文件的識別參數附加到頁面數據中的所述資源文件的url中。
[0024]進一步地,所述識別參數為循環(huán)冗余校驗碼。
[0025]本申請還提供了一種緩存更新系統(tǒng),置于客戶端,包括:
[0026]緩存模塊,用于在對網頁的離線資源進行緩存時,保存資源文件的識別參數;
[0027]信息獲取模塊,用于從服務器端中獲取網頁的當前資源文件的識別參數;
[0028]比較模塊,用于將當前資源文件的識別參數與網頁已緩存的資源文件的識別參數進行比較;
[0029]更新模塊,若當前資源文件的識別參數與網頁已緩存的資源文件的識別參數不同,則將所述當前資源文件作為所述網頁的離線資源進行緩存更新。
[0030]本申請還提供了一種提供更新資源的系統(tǒng),為客戶端緩存的離線資源提供更新,包括前臺服務器和后臺服務器:
[0031]所述前臺服務器,用于與客戶端交互,提供客戶端訪問的網頁的資源文件的信息,所述資源文件的信息包括資源文件的識別參數;
[0032]所述后臺服務器,用于讀取網頁當前的資源文件,獲取當前的資源文件最新的識別參數,并檢查當前的資源文件的識別參數是否發(fā)生變化,若是,則存儲所述識別參數并發(fā)送給前臺服務器,若否,則繼續(xù)讀取網頁的資源文件。
[0033]進一步地,所述前臺服務器包括:
[0034]頁面渲染模塊,用于對網頁進行渲染得到頁面數據,在對網頁的渲染過程中將該網頁引用的資源文件的識別參數寫入頁面數據中;
[0035]描述文件生成模塊,用于生成網頁引用的資源文件的資源描述文件;
[0036]識別參數配置模塊,用于從后臺服務器獲取資源文件最新的識別參數,并將識別參數配置到頁面渲染模塊和/或描述文件生成模塊中;
[0037]進一步地,所述后臺服務器包括:
[0038]文件推送模塊,用于將發(fā)生變化的資源文件的識別參數生成識別文件,并推送給前臺服務器的識別參數配置模塊。
[0039]與現(xiàn)有技術相比,本申請包括以下優(yōu)點:
[0040]本申請的緩存更新方法、提供更新資源的方法及系統(tǒng)通過前臺服務器對資源文件的url進行處理,增加識別參數,并附加在資源文件的url中,每個資源文件對應一個識別參數,如果資源文件發(fā)生改變,則識別參數相應改變,因此該資源文件的url也隨之改變。客戶端則可以根據前臺服務器傳輸的資源文件的url和識別參數,在緩存的離線資源中將識別參數附加在資源文件的url中?;谀壳暗木彺娓聶C制,當資源文件的url發(fā)生改變,客戶端便會進行緩存更新,因此客戶端可以通過檢查資源文件的url中的識別參數是否發(fā)生改變來實現(xiàn)本地離線資源的緩存更新,從而保證客戶端的緩存能夠實時更新。同時,可以避免使用者手動刷新而給服務器帶來的額外負載。
[0041]另外,前臺服務器在生成離線資源描述文件時,也將識別參數作為附加特征附加在url中,使客戶端可以從前臺服務器中獲取最新的離線資源描述文件,并比較該最新的離線資源描述文件中的url與本地已緩存的url來實現(xiàn)本地的離線資源的緩存更新。
[0042]當然,實施本申請的任一商品不一定需要同時達到以上所述的所有優(yōu)點。
【專利附圖】
【附圖說明】
[0043]圖1是本申請的緩存更新實現(xiàn)的系統(tǒng)架構圖;
[0044]圖2是本申請的緩存更新方法實施例的流程圖;
[0045]圖3是本申請的提供更新資源的方法實施例的流程圖;
[0046]圖4是本申請的緩存更新方法的具體實例的流程圖;
[0047]圖5是本申請的緩存更新系統(tǒng)實施例的結構示意圖;
[0048]圖6是本申請的提供更新資源的緩存更新系統(tǒng)實施例的結構示意圖。
【具體實施方式】
[0049]為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本申請作進一步詳細的說明。
[0050]參照圖1,示出實現(xiàn)本申請的緩存更新以及提供更新資源的系統(tǒng)的應用架構圖。提供更新資源的系統(tǒng)包括后臺服務器和前臺服務器。前臺服務器根據后臺服務器傳輸的實時信息在發(fā)生變更的資源文件的url和/或資源描述文件(manifest文件)中附加識別參數,然后將附加有識別參數的url和/或資源描述文件傳輸給客戶端,使客戶端能夠通過與已緩存的離線資源中的url比較,來判斷是否需要進行緩存更新,從而實現(xiàn)客戶端緩存的離線資源的實時更新。本申請的緩存中所存儲的離線資源包括在客戶端處于離線狀態(tài)時也能用于網頁正常加載的資源文件,例如,網頁中引用的jS、CSS、img等資源文件。下面對本申請的緩存更新方法及系統(tǒng)\、提供更新資源的方法及系統(tǒng)進行詳細的說明。
[0051]參照圖2,示出本申請的一種緩存更新方法實施例,由客戶端通過與前臺服務器的數據交互實現(xiàn),包括以下步驟:
[0052]步驟101,在對網頁的離線資源進行緩存時,保存資源文件的識別參數。
[0053]其中,網頁的離線資源是指在離線狀態(tài)下能夠用于客戶端(瀏覽器或其他應用程序)進行頁面加載的資源文件。當客戶端處于聯(lián)網狀態(tài)時,通過與前臺服務器的數據交互對離線資源進行緩存,當用戶離線訪問時,這些已緩存的離線資源則可以自動加載,實現(xiàn)網頁在客戶端的正常顯示。
[0054]資源文件的識別參數(即離線存儲的資源文件的識別參數)包括能夠識別該資源文件的標識符,例如離線存儲的資源文件的crc (cyclic redundancy check,循環(huán)冗余校驗碼)值。每一個資源文件對應一個識別參數,如果資源文件發(fā)生改變,那么該資源文件對應的識別參數也隨之改變。前臺服務器在數據庫中預先對各網頁的資源文件、資源文件的url、以及資源文件的識別參數進行存儲。當客戶端(瀏覽器或其他應用程序)進行離線資源的緩存時,需要將從前臺服務器中獲取的資源文件的識別參數附加在url中,從而可以直接比較url中的識別參數便可以判斷資源文件是否發(fā)生改變。
[0055]例如,某個資源文件的urI為http://a.b.cn/xxx/xxx.j s,該資源文件的識別參數為232342346,那么附加了識別參數后的url為http://a.b.cn/xxx/xxx.js ? v =232342346。
[0056]步驟102,獲取網頁的當前資源文件的識別參數。
[0057]客戶端向前臺服務器發(fā)出業(yè)務請求后,根據前臺服務器的返回信息可以獲取網頁的當前資源文件的url和/或資源描述文件。所述識別參數存儲于當前資源文件的url和/或資源描述文件中,從當前資源文件的url和/或資源描述文件可以確定所述當前資源文件的識別參數。
[0058]第一種情況:可以直接從前臺服務器中獲取網頁的當前資源文件的url和對應的識別參數。
[0059]當客戶端向前臺服務器請求打開網頁時,前臺服務器會反饋網頁的當前資源文件的url,同時會反饋當前資源文件的識別參數??蛻舳烁鶕邮盏降漠斍百Y源文件的識別參數來判斷是否需要更新緩存。
[0060]第二種情況:從資源描述文件(manifest文件)中獲取網頁的當前資源文件的url和實時識別參數。具體包括:向前臺服務器請求獲取資源描述文件,從接收的資源描述文件中獲取網頁的當前資源文件的url和識別參數。
[0061]客戶端在打開某 個網頁時,如果該網頁的資源文件已經緩存在客戶端,那么客戶端可以通過緩存的離線資源打開該網頁,與此同時,客戶端會向前臺服務器發(fā)送獲取資源描述文件的請求,此時,前臺服務器會將最新的資源描述文件發(fā)送給客戶端。客戶端在接收到資源描述文件后會存儲在本地,并根據離線資源描述文件中的資源文件的url和/或識別參數來判斷是否需要更新緩存。
[0062]資源描述文件是用于描述打開網頁所需要的資源的文件。在進行離線資源的資源文件緩存時,需要按照資源描述文件中的描述將資源文件緩存到本地。本申請中,資源描述文件是由前臺服務器根據對資源文件的識別參數的監(jiān)控來生成的,如果識別參數發(fā)生變化,則生成新的資源描述文件。具體的,前臺服務器在生成資源描述文件的過程中將資源文件的識別參數附加在資源文件的url中,如果資源文件發(fā)生改變,即識別參數發(fā)生改變,則前臺服務器會重新生成新的資源描述文件。
[0063]步驟103,將網頁當前資源文件的識別參數與所述網頁已緩存的資源文件的識別參數進行比較,若二者不同,則將所述當前資源文件作為所述網頁的離線資源進行緩存更新。
[0064]客戶端可以直接比較url中的識別參數,如果實時識別參數與已緩存的資源文件的url中包含的原始識別參數不同,則說明資源文件發(fā)生改變,反之,則說明未發(fā)生改變。當資源文件發(fā)生改變,則需要進行緩存更新,即用新的資源文件作為網頁的離線資源進行緩存,以保證所打開的網頁顯示的是更新后的信息。
[0065]參照圖3,示出本申請實施例的提供更新資源的方法,其為客戶端的離線緩存提供資源文件的更新信息,包括步驟301-303。可以理解,下述步驟可以由同一服務器完成,為了保證各步驟的順利進行,優(yōu)選采用前臺服務器和后臺服務器共同完成。[0066]步驟301,讀取網頁的資源文件,獲取資源文件的識別參數。
[0067]其中,由后臺服務器讀取網頁的資源文件,并計算所述資源文件的crc值,以所述資源文件的crc值作為所述資源文件的識別參數。讀取網頁的資源文件時,可以預先設定讀取時間,每間隔預定時間讀取一次,從而保證能夠對資源文件的識別參數進行實時監(jiān)控。
[0068]步驟302,檢查所述資源文件的識別參數是否發(fā)生變化。
[0069]系統(tǒng)中會存儲資源文件最新的識別參數,通過實時或定期計算獲取到資源文件的識別參數,將實時或定期計算得到的資源文件的識別參數與已存儲的識別參數進行比較,若二者相同,則說明資源文件未改變;若不相同,則說明資源文件改變,此時需要更新該資源文件對應的識別參數。
[0070]對資源文件的識別參數的計算和對資源文件的識別參數是否發(fā)生變化的檢測可以由后臺服務器來執(zhí)行。
[0071]步驟303,當所述資源文件的識別參數發(fā)生變化,為客戶端緩存的離線資源提供更新。
[0072]若所述資源文件的識別參數發(fā)生變化,還可以存儲新的識別參數,若所述資源文件的識別參數未發(fā)生變化,則返回上一步。
[0073]可以理解,后臺服務器在檢測到資源文件對應的識別參數發(fā)生改變后,可以直接將新的識別參數發(fā)送給前臺服務器,也可以根據新的識別參數生成識別文件后,由獨立的文件推送系統(tǒng)將該識別文件傳輸給前臺服務器。其中,識別文件中可以同時包含資源文件的url和識別參數等屬性信息。具體的,識別文件可以直接采用url與識別參數組合的方式來表示。例如,某個資源文件的url為http://a.b.cn/xxx/xxx.js,識別參數為232342346,那么識別文件中的內容為 http://a.b.cn/xxx/xxx.js = 232342346。
[0074]步驟301和302可以是獨立進行的,即,可以在任何時候將發(fā)生變化的識別參數發(fā)送給前臺服務器,例如只要檢測到資源文件的識別參數發(fā)生變化,便可以發(fā)送該資源文件的識別參數信息給前臺服務器。為此,步驟301和302可以是根據客戶端的服務請求而開始執(zhí)行;也可以是服務器獨立執(zhí)行,無論客戶端是否發(fā)送服務請求,本申請對此并不限制。為了保證更新的時效性,步驟301和302可以是持續(xù)的過程,以對資源文件的識別參數進行實時監(jiān)控。
[0075]前臺服務器可以存儲該識別參數或者識別文件,當客戶端需要時,發(fā)送給客戶端。
[0076]另外,前臺服務器還可以根據該識別參數或識別文件對資源描述文件進行更新。即,如果資源文件的識別參數發(fā)生變化,則生成新的資源描述文件,在新的資源描述文件所描述的資源文件的url中附加該資源文件當前的識別參數,以便前臺服務器在將資源描述文件發(fā)送給客戶端后,客戶端能根據資源描述文件進行緩存更新。
[0077]例如,新生成的資源描述文件可以采用如下形式:
[0078]“CACHE MANIFEST
[0079]##v20120504
[0080]http://a.b.cn/fav/css/fav.css ? v = 343776456
[0081]http://a-b.cn/fav/online/index.js? v = 25525123
[0082]http://a.b.cn/cache/cache, js ? v = 1204661385
[0083]NETWORK:[0084]*
[0085]FALLBACK: ”。下面結合具體實例對前述實施例進行詳細說明。
[0086]參照圖4,假設資源文件的識別參數為crc值,由獨立的系統(tǒng)(后臺服務器)來檢測。后臺服務器通過啟動定時檢測程序來讀取資源文件,并獲取其實時的crc值,然后比較實時的crc值(即當前獲取的crc值)與系統(tǒng)中存儲的crc值是否發(fā)生變化,若否,則繼續(xù)讀取(定時檢測程序可以預先設定定期循環(huán)檢測);若是,則生成新的crc文件,然后調用文件推送系統(tǒng)將該新的crc文件推送到前臺服務器。crc文件中包含有資源文件的url、crc值等屬性信息。可以理解,此處的后臺服務器和前臺服務器可以是同一臺服務器,也可以是獨立的兩臺服務器,本申請對此并不限制。
[0087]crc文件被推送到前臺服務器后,前臺服務器可以直接存儲該crc文件,也可以將crc值提取出來與對應的資源文件進行關聯(lián)。本實例中,假設前臺服務器直接存儲的是crc文件。
[0088]可以理解地,客戶端在進行網頁訪問時,若判斷資源文件的識別參數發(fā)生變化,月艮務器為客戶端緩存的離線資源提供更新。
[0089]也可以是客戶端通過獲取資源文件的識別參數來判斷客戶端本地緩存的離線資源是否需要更新,當客戶端本地緩存的離線資源需要更新,客戶端向服務器請求離線資源的更新。
[0090]假設客戶端(瀏覽器或其他應用程序)直接向前臺服務器請求打開網頁,前臺服務器可以從數據庫中獲取到該網頁中包含的資源文件的url,以及讀取后臺服務器推送來的crc文件,提取其中的crc值,然后附加在該資源文件的url中,返回給客戶端。此時,客戶端除了可以打開該網頁,還可以比較剛接收的url中的crc值和已緩存到本地的url中的crc值,如果不相同,則進行離線資源的更新。根據前述描述,如果服務器端的資源文件發(fā)生改變,其原始的url可能不會發(fā)生變化,但是識別參數會發(fā)生改變,那么服務器端當前的資源文件的識別參數則與已緩存在客戶端本地的資源文件的識別參數會不相同,通過此種方式,便可以判斷是否需要進行緩存更新,從而使客戶端的緩存能夠及時更新。
[0091]在crc文件被推送到前臺服務器后,前臺服務器還可以通過讀取crc文件生成新的資源描述文件,使新生成的資源描述文件中網頁引用的資源文件的url包含該資源文件的crc值。假設客戶端是通過已緩存的離線資源打開網頁,那么,在客戶端打開網頁的同時,可以向前臺服務器請求獲取最新的資源描述文件。并將實時接收到的資源描述文件中的資源文件的url包含的crc值與本地已緩存的資源文件的url包含的crc值進行比較,如果不相同,則進行離線資源的更新。同樣的,如前所述,如果資源文件發(fā)生改變,其原始的url可能不會發(fā)生變化,但是識別參數會發(fā)生改變,那么url中附加的識別參數則與已緩存的url中附加的識別參數會不相同,通過此種方式,也可以實現(xiàn)緩存更新。
[0092]參照圖5,示出本申請的緩存更新系統(tǒng)的實施例,緩存更新系統(tǒng)10設置于客戶端,包括緩存模塊11、信息獲取模塊13和比較模塊15。
[0093]緩存模塊11,用于在對網頁的離線資源進行緩存時,將資源文件的識別參數進行存儲。具體地,所述資源文件的識別參數通過附加在該資源文件的url中進行存儲。所述識別參數可以是該資源文件的crc值。
[0094]信息獲取模塊13,用于獲取網頁的當前資源文件的識別參數。信息獲取模塊13在客戶端訪問網頁時,通過與服務器的交互獲得網頁的當前資源文件的識別參數。當前資源文件的識別參數可以附加于當前資源文件的url中,也可以設置于當前網頁的資源描述文件中;因此,信息獲取模塊13通過獲取當前資源文件的url或當前網頁的資源描述文件即可以獲得網頁的當前資源文件的識別參數。
[0095]比較模塊15,用于將網頁的當前資源文件的識別參數與已緩存的資源文件的識別參數進行比較。
[0096]更新模塊17,用于當網頁的當前資源文件的識別參數與已緩存的資源文件的識別參數不同時,從服務器下載網頁的當前資源文件對所述網頁的離線資源進行更新。
[0097]當所述當前資源文件的識別參數與網頁已緩存的資源文件的識別參數不同,則觸發(fā)更新模塊17將所述當前資源文件作為所述網頁的離線資源進行緩存更新。
[0098]參照圖6,示出本申請的提供更新資源的系統(tǒng)的實施例。該提供更新資源的系統(tǒng)20包括前臺服務器30和后臺服務器50
[0099]前臺服務器30用于與客戶端交互,提供客戶端訪問的網頁的資源文件的信息。所述資源文件的信息包括資源文件的識別參數。
[0100]前臺服務器30包括頁面渲染模塊31、描述文件生成模塊32及識別參數配置模塊33。
[0101]頁面渲染模塊31用于對網頁進行渲染得到頁面數據,在對網頁的渲染過程中將該網頁引用的資源文件的識別參數寫入頁面數據中。具體地,頁面渲染模塊31將識別參數寫入頁面數據中網頁引用的資源文件的url中。
[0102]描述文件生成模塊32,用于生成網頁引用的資源文件的資源描述文件。資源描述文件用于描述網頁所引用的資源文件,包含資源文件的識別參數。
[0103]識別參數配置模塊33用于從后臺服務器50獲取資源文件最新的識別參數,并將識別參數配置到頁面渲染模塊31和/或描述文件生成模塊32中。
[0104]后臺服務器50用于讀取網頁當前的資源文件,獲取當前的資源文件最新的識別參數,并檢查當前的資源文件的識別參數是否發(fā)生變化,若是,則存儲所述識別參數并發(fā)送給前臺服務器30,若否,則繼續(xù)讀取網頁的資源文件。
[0105]優(yōu)選地,后臺服務器50包括文件推送模塊51、識別參數校驗模塊52及數據存儲模塊53。
[0106]文件推送模塊51用于將發(fā)生變化的資源文件的識別參數生成識別文件,并推送給前臺服務器30的識別參數配置模塊33。
[0107]識別參數校驗模塊52用于計算網頁引用的資源文件的識別參數,并將當前計算得到識別參數與數據存儲模塊53中存儲的識別參數是否一致。
[0108]數據存儲模塊53用于記錄網頁引用的資源文件的識別參數。當識別參數校驗模塊52計算得到的網頁引用的資源文件的識別參數與數據存儲模塊53中存儲的識別參數不一致時,表示該資源文件存在更新,同時,數據存儲模塊53記錄該資源文件最新的識別參數,用于后續(xù)識別參數的校驗。
[0109]后臺服務器50還可以包括文件管理模塊54,文件管理模塊54維護管理資源文件及識別文件。
[0110]可以理解,在前述描述的方法和系統(tǒng)實施例中,可以將識別文件和資源文件的文件信息列表存儲在后臺服務器的數據庫中,在資源文件發(fā)生改變時,后臺服務器生成新的識別文件經由文件推送系統(tǒng)傳輸給前臺服務器,前臺服務器根據該識別文件生成新的資源描述文件。當客戶端向前臺服務器發(fā)起請求時,前臺服務器資源文件的識別參數發(fā)送給客戶端,使客戶端根據該識別參數進行離線資源的更新。
[0111]本申請的緩存更新方法及系統(tǒng)通過前臺服務器對資源文件的url進行處理,增加識別參數,并附加在資源文件的url中,每個資源文件對應一個識別參數,如果資源文件發(fā)生改變,則識別參數相應改變??蛻舳丝梢栽诰彺娴碾x線資源中將識別參數存儲在客戶端本地,例如將識別參數附加在離線資源的url中?;谀壳暗木彺娓聶C制,當資源文件的url發(fā)生改變,客戶端便會進行緩存更新,因此客戶端可以通過檢查資源文件的url中的識別參數是否發(fā)生改變來實現(xiàn)本地離線資源的緩存更新,從而保證客戶端的緩存能夠實時更新。同時,可以避免使用者手動刷新而給服務器帶來的額外負載。
[0112]另外,前臺服務器在生成資源描述文件時,也將識別參數作為附加特征附加在資源描述文件中,客戶端可以從前臺服務器中獲取最新的資源描述文件,并比較該最新的資源描述文件中的識別參數與本地已緩存的資源文件的識別參數來實現(xiàn)本地的離線資源的緩存更新。
[0113]本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
[0114]本申請是參照根據本申請實施例的方法、設備(裝置)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0115]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0116]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0117]以上對本申請所提供的緩存更新方法及系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
【權利要求】
1.一種緩存更新方法,其特征在于,包括以下步驟: 在對網頁的離線資源進行緩存時,保存資源文件的識別參數; 從服務器端獲取網頁的當前資源文件的識別參數; 將當前資源文件的識別參數與網頁已緩存的資源文件的識別參數進行比較;若當前資源文件的識別參數與網頁已緩存的資源文件的識別參數不同,則將所述當前資源文件作為所述網頁的離線資源進行緩存更新。
2.如權利要求1所述的緩存更新方法,其特征在于,所述識別參數存儲于當前資源文件的url和/或資源描述文件中; 所述從服務器端獲取網頁的當前資源文件的識別參數包括: 從當前資源文件的url和/或資源描述文件中確定所述識別參數。
3.如權利要求1所述的緩存更新方法,其特征在于,所述識別參數為循環(huán)冗余校驗碼(crc)。
4.一種提供更新資源的方法,為客戶端緩存的離線資源提供更新,其特征在于,包括: 讀取網頁的資源文件,獲取資源文件的識別參數; 檢查所述資源文件的識別參數是否發(fā)生變化; 當所述資源文件的識別參數發(fā)生變化時,為客戶端緩存的離線資源提供更新。
5.如權利要求4所述的 提供更新資源的方法,其特征在于,所述方法還包括: 將發(fā)生變化的識別參數生成識別文件; 根據所述識別文件生成資源描述文件。
6.如權利要求5所述的提供更新資源的方法,其特征在于,所述根據識別文件生成資源描述文件包括: 將所述識別文件中的識別參數附加在資源描述文件描述的資源文件的url中。
7.如權利要求4所述的提供更新資源的方法,其特征在于,所述方法還包括: 將所述資源文件的識別參數附加到頁面數據中的所述資源文件的url中。
8.如權利要求4所述的提供更新資源的方法,其特征在于,所述識別參數為循環(huán)冗余校驗碼。
9.一種緩存更新系統(tǒng),置于客戶端,其特征在于,包括: 緩存模塊,用于在對網頁的離線資源進行緩存時,保存資源文件的識別參數; 信息獲取模塊,用于從服務器端中獲取網頁的當前資源文件的識別參數; 比較模塊,用于將當前資源文件的識別參數與網頁已緩存的資源文件的識別參數進行比較; 更新模塊,若當前資源文件的識別參數與網頁已緩存的資源文件的識別參數不同,則將所述當前資源文件作為所述網頁的離線資源進行緩存更新。
10.一種提供更新資源的系統(tǒng),為客戶端緩存的離線資源提供更新,其特征在于,包括前臺服務器和后臺服務器: 所述前臺服務器,用于與客戶端交互,提供客戶端訪問的網頁的資源文件的信息,所述資源文件的信息包括資源文件的識別參數; 所述后臺服務器,用于讀取網頁當前的資源文件,獲取當前的資源文件最新的識別參數,并檢查當前的資源文件的識別參數是否發(fā)生變化,若是,則存儲所述識別參數并發(fā)送給前臺服務器,若否,則繼續(xù)讀取網頁的資源文件。
11.如權利要求10所述的提供更新資源的系統(tǒng),其特征在于,所述前臺服務器包括: 頁面渲染模塊,用于對網頁進行渲染得到頁面數據,在對網頁的渲染過程中將該網頁引用的資源文件的識別參數寫入頁面數據中; 描述文件生成模塊,用于生成網頁引用的資源文件的資源描述文件; 識別參數配置模塊,用于從后臺服務器獲取資源文件最新的識別參數,并將識別參數配置到頁面渲染模塊和/或描述文件生成模塊中;
12.如權利要求10所述的提供更新資源的系統(tǒng),其特征在于,所述后臺服務器包括: 文件推送模塊,用于將發(fā)生變化的資源文件的識別參數生成識別文件,并推送給前臺服務器的識別參數 配置模塊。
【文檔編號】H04L29/08GK103873502SQ201210533775
【公開日】2014年6月18日 申請日期:2012年12月11日 優(yōu)先權日:2012年12月11日
【發(fā)明者】舒宏旺 申請人:阿里巴巴集團控股有限公司