TWI512620B - Method and device for fragmented nested caching of web pages - Google Patents
Method and device for fragmented nested caching of web pages Download PDFInfo
- Publication number
- TWI512620B TWI512620B TW099139792A TW99139792A TWI512620B TW I512620 B TWI512620 B TW I512620B TW 099139792 A TW099139792 A TW 099139792A TW 99139792 A TW99139792 A TW 99139792A TW I512620 B TWI512620 B TW I512620B
- Authority
- TW
- Taiwan
- Prior art keywords
- layer
- fragment
- information
- page
- cache
- Prior art date
Links
Landscapes
- Information Transfer Between Computers (AREA)
Description
本發明關於網路資料處理領域,特別關於網頁(WEB)頁面的分片嵌套緩存的處理方法和裝置。
在用戶向網頁伺服器第一次請求網頁頁面時,為了提高訪問網頁的速度,通常網路資源流覽器(例如IE流覽器)會採用累積式加速的方法,將用戶曾經訪問的網頁內容(包括圖片以及cookie檔等)存放在電腦裏,電腦裏的這個存放空間,被稱為IE緩存空間。以後每次訪問網頁時,IE流覽器會首先搜索這個緩存空間,如果其中已經緩存當前訪問的內容,那IE流覽器就不必從網上下載這部分內容,而是直接從緩存讀取,以提高訪問網頁的速度。
對於網頁的緩存目前習知技術中有兩種方式,一種是全頁緩存,指針對訪問的網頁整個頁面進行緩存;另一種是分片緩存,指將訪問的網頁頁面劃分成若干部分的分片,例如,某個分片為圖片資訊,某個分片為文字資訊等,然後針對某一分片的內容進行緩存。
但是,有一些網頁的分片之間因為其內容相關,所以有時候需要在某些分片之間實現嵌套緩存,例如,嵌套形式分片A包括分片B,而分片B又包括分片C的形式,對於分片A需要緩存,B不需要緩存,C又需要緩存的形式,習知技術無法實現。
目前,需要本領域技術人員迫切解決的一個技術問題就是:如何能夠創新地提出一種網頁頁面的分片嵌套緩存的處理方法,以解決習知技術中無法實現分片嵌套緩存及其後續遞迴處理的技術問題。
本發明所要解決的技術問題是提供一種頁面緩存的處理方法,用以解決習知技術中無法實現分片嵌套緩存及其後續遞迴處理的技術問題。
本發明還提供了一種頁面緩存的處理裝置,用以保證上述方法在實際中的實現及應用。
為了解決上述問題,本發明公開了一種頁面緩存的處理方法,包括:當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述分片解析過程的結果組合成所述網頁的完整的第一層分片內容。
本發明還公開了一種網頁頁面的緩存處理方法,包括:接收到針對網頁頁面的請求;判斷請求的所述網頁頁面是否需要進行全頁緩存,如果需要,則對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;如果不需要,則獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述分片解析過程的結果組合成所述網頁的完整的第一層分片內容。
本發明公開了一種網頁頁面的分片嵌套緩存的處理裝置,包括:獲取模組,用於當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊;分片解析模組,用於依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;組合拼裝模組,用於將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
本發明還提供了一種網頁頁面的緩存處理裝置,該裝置包括:接收網頁頁面請求模組,用於接收針對網頁頁面的請求;判斷模組,用於判斷所述請求的網頁頁面是否需要進行全頁緩存;直接渲染模組,用於當所述判斷模組的結果為是時,對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;嵌套緩存處理裝置,用於當所述判斷模組的結果為否時,獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行解析過程,所述解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
與習知技術相比,本發明包括以下優點:在本發明實施例中,可以在對網頁頁面的分片嵌套緩存,同時在網頁頁面的分片進行嵌套緩存時還能夠遞迴地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網頁內容,彌補了習知技術的一項空白。在本實施例中,緩存系統可以採用分散式群集伺服器來實現,所述分散式群集伺服器可以採用水準擴充的方式,增加充當緩存系統的伺服器台數,這樣就可以實現某一台伺服器儲存了分片的HTML代碼之後,其他的分散式群集伺服器就不再進行儲存。同時採用本發明實施例的技術方案,可以實現分片之間不限層數的遞迴嵌套,同時也可以將每個分片的緩存時間設置為不相同的。當然,實施本發明的任一產品並不一定需要同時達到以上所述的所有優點。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明可用於眾多通用或專用的計算裝置環境或配置中。例如:個人電腦、伺服器電腦、手持設備或可擕式設備、平板型設備、多處理器裝置、包括以上任何裝置或設備的分散式計算環境等等。
本發明可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式計算環境中實踐本發明,在這些分散式計算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
本發明的主要思想之一可以包括,預先設置網頁頁面的各個分片的嵌套資訊和緩存資訊,所述嵌套資訊為分片是否包括其他分片的資訊;所述各個分片與對應的嵌套資訊可保存在WEB伺服器的網頁範本中,在對當前分片解析時一併從網頁範本中讀取得到該嵌套資訊。在所述網頁範本中的資訊還可包括分片名稱和分片參數,所述分片名稱可以標識出每一個分片,而分片參數是根據業務確定的。所述業務是指用戶的某種需求,而實現用戶某種需求的功能就是具體的業務。所述緩存資訊為所述分片是否需要緩存的資訊,以及需要緩存的分片的緩存時間長度資訊。所述緩存資訊可以保存在配置伺服器中,在網頁頁面進行緩存或者網頁頁面的分片進行嵌套緩存時,可以從所述配置伺服器中動態獲得所述緩存資訊。本發明中在接收到針對某個網頁頁面的請求時,首先可以判斷所述網頁頁面是否需要進行全頁緩存,如果需要,則對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;如果不需要,則獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述分片解析過程的結果組合成所述網頁的完整的第一層分片內容。
需要說明的是,在本發明實施例中,所提及的網頁頁面包括的分片,可以允許至少具有兩層的分片,並且各層分片可以有一個或多個,其中,所述第一層分片與第二層分片是父子關係,但是並不一定是所有的第一層分片都會包括第二層分片,也可以是其中的一個或者多個第一層分片包括第二層分片。其中所述第二層分片還可以包括第三層分片,依此類推,本發明實施例中將這種嵌套關係稱為遞迴嵌套。並且本發明實施例中的各個層次的分片之間的緩存資訊是相互獨立的,例如,可以預先將當前層分片設置為需要緩存,而其下一層的子分片設置為不需要緩存,並且該下一層的子分片的子分片又可以設置為需要緩存等。緩存資訊都可以預先設置好並儲存在配置伺服器中,當然,配置伺服器中的這些設置好的緩存資訊在後續使用過程中也可以即時更新。
參考圖1所示,為本發明實施例中所涉及到的系統方塊圖,用戶向網頁伺服器請求網頁,所述緩存處理裝置可以集成在WEB伺服器上。所述緩存處理裝置可以是WEB伺服器新增的一個功能實體,也可以是單獨作為一個功能實體來實現,該緩存處理裝置可以執行本發明實施例中對網頁的分片嵌套緩存時的遞迴處理方法。緩存系統用於儲存各個分片或頁面的HTML代碼,緩存處理裝置可以向所述緩存系統請求分片或者頁面的HTML代碼,如果緩存系統中未包括分片或頁面的HTML代碼,則WEB伺服器中的業務系統負責提供該分片或者頁面的HTML代碼,所述業務系統可以理解為WEB伺服器中完成某個用戶請求業務的若干個模組組成的當前系統。
需要說明的是,本發明在實際應用中,也可以不採用緩存系統來緩存HTML代碼,而是直接在用戶端進行本地保存,例如,直接緩存至用戶端的電腦記憶體中,此時用戶端和WEB伺服器之間直接進行HTML代碼的交換,如果用戶端在本地查找不到對應分片或者頁面的HTML代碼,則觸發WEB伺服器的業務系統進行查找,如果用戶端在本地查找到相應的HTML代碼,則直接在用戶請求的網頁頁面上進行顯示。不過因為此種方式對本地記憶體或者電腦的性能要求較高,並且網頁頁面的種類非常繁多,因此,一般採用單獨的分散式群集伺服器來作為本發明實施例中的緩存系統。
本發明實施例中的系統框架還可以包括配置伺服器,所述配置伺服器可以向所述緩存處理裝置提供各個分片的緩存資訊,但是在本發明實現過程中也可以不需要該配置伺服器,此時所述緩存資訊可以在WEB伺服器中預先給每個分片都一次性設置完畢,類似於分片的固定參數不可改變,而此時緩存系統的各個分片的緩存資訊就無法動態修改。
在本發明的實施例中,所述緩存資訊可以採用文本方式實現,也可以將緩存資訊封裝成程式中的物件。當把緩存資訊封裝成程式中的物件時,這樣可以使得當前分片是否包括了其他分片的嵌套方式或者某個嵌套中是否有閉環,都可以從THREAD_LOCAL中獲取相應的緩存資訊進行判斷即可。所述THREAD_LOCAL為WEB伺服器的一個線程級別的變數,可以在某一個請求過程中從配置伺服器中向緩存處理裝置提供緩存資訊。
採用本發明實施例中的網頁頁面緩存的處理方法,即可以實現習知技術中可以實現的全頁緩存,也可以實現習知技術中無法實現的網頁頁面的分片嵌套緩存,彌補了習知技術的缺陷。
實施例一
圖2示出了本發明一種頁面緩存的處理方法實施例一的流程圖,可以包括以下步驟:步驟201:當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊。
在本實施例中,網頁頁面如果確定了,該網頁頁面包括的第一層分片資訊也可以確定,因為同一個網頁頁面的分片格式是相同的,即該網頁頁面需要劃分為哪幾個分片,這些分片的位置和名稱等資訊。其中,每一個分片在網頁頁面上實質上都是一個占位符,這個占位符可以在任何其他網頁頁面上使用,只有當最後渲染出該分片結果的時候才會將占位符替換成分片的具體內容。一般情況下,所述分片的具體內容指的是該分片的具體內容對應的超文本標記語言(HyperText Mark-up Language,HTML)代碼。
在本實施例中,所述網頁頁面包括的分片可以嵌套緩存,所述嵌套緩存的含義可以理解為,如果第一層分片A包括第二層分片B,且該第二層分片B也包括第三層分片C,則依據對分片A、B和C預置的緩存資訊,來實現對分片A和C緩存,而分片B不緩存的功能。但是不管第一層分片有沒有包括其他分片,在本步驟獲取到的都是第一層分片資訊,而後續在對該第一層分片進行解析時,才能依次獲取到分片的嵌套資訊。
步驟202:依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊。
獲得所述網頁頁面的第一層分片資訊之後,執行對第一層分片的解析過程。因為在解析分片的過程中,可以從配置伺服器中動態獲取到所述各個第一層分片的嵌套資訊,即是當前第一層分片是否包括了第二層分片的資訊,以及所包括的第二層分片資訊。在本步驟中,需要對所有的第一層分片都進行解析,其中,各個第一層分片的解析過程可以同時執行,也可以先後執行,其執行順序不影響本發明實施例的實現。
其中,本步驟提及的渲染過程為,依據第一層分片的分片名稱和分片參數查找所述第一層分片的具體內容對應的HTML代碼的。其中,該渲染過程和習知技術中的渲染過程類似,在此就不再多做介紹。
步驟203:將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
在本步驟中,當第一層分片不包括其他分片時,則渲染結果即是該第一層分片的HTML代碼;當第一層分片包括第二層分片時,或者第二層分片又包括了第三層分片時,甚至按照遞迴的方式直至第N-1層分片包括第N層分片,則第一層分片的渲染結果則是包括了第二層至第N層分片的HTML代碼,因此,可以將所述第一層分片的渲染內容組合生成該網頁的第一層分片內容。
實施例二
圖3示出了本發明一種頁面緩存的處理方法實施例二的流程圖,可以包括以下步驟:步驟301:當接收到針對網頁頁面的請求時,獲取所述網頁的統一資源定位符(URL)。
在本步驟中,在接收到某個網頁頁面的請求時,首先獲取到該網頁對應的統一資源定位符(Uniform/Universal Resource Locator,URL)。以某網路交易平臺中“寶貝詳情”頁面為例,假設該“寶貝詳情”頁面的URL位址為:xxx.xxx.com/detail.html?id=123。
步驟302:依據所述網頁的URL查詢得到該網頁的範本。
因為每一個網頁都有唯一的URL,同時每一個網頁也都有一個範本,所以依據所述網頁的URL即可知道該網頁頁面所採用的範本。假設“寶貝詳情”頁面的範本資訊為“detail.vm”,在本步驟中根據“寶貝詳情”的頁面位址得到範本資訊為“detail.vm”。
需要說明的是,每個頁面所採用的範本即可以是獨立的,也可以是多個頁面共用的。頁面在採用範本時需要將範本中規定的分片部分進行填充。
步驟303:獲得該網頁的範本中第一層分片對應的分片名稱和分片參數。
當網頁的範本確定之後,相應地確定了該範本對應的頁面的分片格式。本發明與習知技術不同的是,本發明中網頁頁面不僅包括第一層分片,而且其包括的第一層分片還可以遞迴的包括至少一層分片。但是在本步驟通過網頁頁面所獲得的分片僅僅為第一層分片對應的分片名稱和分片參數。其中,所述分片參數是根據業務確定的,所述業務是指用戶的某種需求,而實現用戶某種需求的功能就是具體的業務。以“掌櫃資訊”為例,其分片參數就是賣家的用戶ID;以“寶貝詳情”頁面為例時,其分片參數就是寶貝的資訊和賣家的用戶ID。
在一個範本中引入某個分片,可通過如下方式實現:例如,分片名稱為“掌櫃資訊”,而範本名稱為“寶貝詳情”,則如果在‘‘寶貝詳情”中引用“掌櫃資訊”分片,則代碼如下:
control.set(“userInfo”).addPrams(“userId”,1234)
其中,“addPrams”中的內容即是對應的分片“掌櫃資訊”的分片參數,其中的userId即是用戶ID,為“1234”;而“control.set(“userInfo”)”則表示在寶貝詳情範本中引用了這個分片。當然,該代碼的實現僅僅是一個具體例子,其所公開的內容不應理解為對本發明的限定。
步驟304:依據第一層分片的分片名稱和分片參數獲得所述第一層分片的嵌套資訊,並依據所述第一層分片的嵌套資訊獲得所述第一層分片的HTML代碼;所述嵌套資訊為當前分片是否包括其他分片的資訊。
在步驟304中,當獲得所述第一層分片的分片名稱和分片參數時,可以獲得該第一層分片嵌套資訊和HTML代碼。具體地,所述嵌套資訊可以從配置伺服器中獲得,而配置伺服器也可以向WEB伺服器中的緩存處理裝置發送。分片對應的HTML代碼可以是網頁頁面將要顯示的圖片、文字等資訊,而該分片及其對應的HTML代碼都可以被其他網頁頁面的範本所共用。例如,對於網路交易平臺中的賣方用戶的“寶貝詳情”頁面的“掌櫃資訊”分片,其與“店鋪頁面”的“掌櫃資訊”分片就屬於同一個分片。
同時,在獲取所有的第一層分片的HTML代碼的時候,參考圖4所示,該獲取第一層分片的HTML代碼的步驟可以包括:步驟401:從配置伺服器中查詢所述第一層分片的緩存資訊,所述緩存資訊包括分片是否需要緩存的資訊,以及需要緩存的分片的緩存時間長度資訊。
在所述配置伺服器中保存著網頁頁面的各個層的分片的緩存資訊,所述緩存資訊包括分片是否需要緩存的資訊,以及需要緩存的分片的緩存時間長度資訊。所述緩存時間長度資訊用於表示當前分片的在緩存系統中的有效時間,當分片在緩存系統中的緩存時間超過所述時間長度時,該分片就會失效,所述緩存系統中就不會再有該分片的具體內容。所述緩存資訊可以是預先設置好的。當然,後續如果需要對某個分片的緩存資訊進行更改時,也可以直接對配置伺服器中保存的資訊進行更改即可,這樣從配置伺服器中查詢得到的就是最新的緩存資訊。對於緩存資訊的實現,可以採用“1”來表示當前分片需要保存,並採用“0”來表示當前分片不需要保存;對於緩存時間長度資訊的實現,可以採用直接將時間長度資訊與所述分片名稱或者分片參數資訊等進行關聯即可。當然,緩存資訊的實現可以在實際應用中有多種方式,本發明實施例無需對此做出特別的限定。
需要說明的是,因為緩存失效的時間是由緩存系統控制,單獨對於緩存處理裝置來講,在執行本發明實施例的過程中並不知道當前處理的頁面或者分片還有多久才會失效,所以在查詢緩存系統時,如果查詢不到的話就證明當前分片的內容已經失效了。
步驟402:依據所述第一層分片的緩存資訊判斷第一層分片是否需要緩存;如果是,則進入步驟403;如果否,則進入步驟404。
針對步驟401中所舉的例子來講,如果獲取到的表示分片是否需要緩存的資訊為“1”,則認為該分片的判斷結果是需要緩存。
步驟403:將所述第一層分片的分片名稱和分片參數進行哈希運算以得到第一層分片的分片標識(ID);並依據所述分片ID從緩存系統中查找與該分片ID對應的第一層分片的HTML代碼,進入步驟405。
其中,所述第一層分片的分片名稱可以參考圖5所示,所述網頁頁面的第一層分片包括分片A“寶貝描述”、分片B“導航”、分片C“掌櫃資訊”以及分片D“店鋪類目”。其中,第一層分片C“掌櫃資訊”還包括第二層分片C1“掌櫃信用度”。
在本步驟中,可以將第一層分片的分片名稱和分片參數進行哈希(HASH)運算,運算的結果即是所述第一層分片的分片ID,該ID一般情況下為32位元。依據該32位的分片ID,可以從緩存系統中查找獲取到該分片ID對應的HTML代碼,而緩存系統中則保存著各個分片ID與HTML代碼之間的對應關係和該HTML代碼。
需要說明的是,在對第一層分片進行渲染時,其具體方式為:先將該第一層分片在網頁上的位置生成一個占位符,並獲取對應的HTML代碼,獲得之後將該HTML代碼替換所述第一層分片的占位符。在對分片進行渲染時,不管其處於網頁的哪一層,都可以按照上述方式進行渲染。其中,所述占位符可以理解為該分片的一個位置,後續可以在該位置中添加內容。
步驟404:由WEB伺服器中的業務系統查找該第一層分片的分片ID對應的HTML代碼,進入步驟405。
當某個分片標識為不需要緩存時,需要由WEB伺服器中的業務系統來進行當前分片的渲染,渲染結果就是當前分片的HTML代碼。具體地,是由所述業務系統的渲染模組從資料庫或者搜索引擎或者檔系統中查找該分片ID對應的HTML代碼。
步驟405:依據第一層分片預置的嵌套資訊判斷所述第一層分片是否包括第二層分片;如果是,則進入步驟406;如果否,則結束對第一層分片的渲染過程。
在本步驟可依據嵌套資訊來判斷當前解析的第一層分片是否包括第二層分片。
步驟406:對所述第二層分片進行遞迴渲染處理,所述遞迴渲染處理的方式為:在待處理分片的上一層分片上生成所述待處理分片的占位符;依據所述待處理分片的分片名稱和分片參數,獲取所述待處理分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符,進入步驟407。
本步驟是在第一層分片包括第二層分片時,實現對第二層分片的遞迴渲染處理,即是在第一層分片上首先生成第二層分片的占位符,然後依據第二層分片的分片名稱和分片參數,採用相同的方式獲取所述第二層分片的HTML代碼,其中,所述採用相同的方式的含義為:對所述第二層分片的分片名稱和分片參數進行哈希運算以得到32位的第二層分片ID,當所述第二層分片需要緩存時,則依據該ID到緩存系統中查詢獲取對應的HTML代碼,如果該緩存系統中沒有對應的HTML代碼,或者所述第二層分片是不需要緩存的,則依據業務性能從資料庫中或者從互聯網上獲取到對應的HTML代碼,查找之後再將所述第二層分片的占位符部分替換為所述第二層分片的HTML代碼。
步驟407:繼續判斷所述第二層分片是否包括第三層分片,如果是,則進入步驟408;如果否,則結束第二層分片的渲染流程。
在對所述第二層分片的HTML代碼查找結束之後,則繼續判斷所述第二層分片是否包括第三層分片,如果第二層分片不再包括第三層分片,則結束第二層分片的渲染過程。
更具體地來講,如果第二層分片繼續包含第三層分片的話,先將第二層分片的內容進行渲染,同時將第三層分片的部分在第二層分片上生成占位符,然後再渲染第三層分片,並將第三層分片的渲染內容填充進該第二層分片的占位符中,所得到的結果即是第二層分片的HTML代碼。以上面掌櫃資訊的例子來講,“掌櫃資訊”分片中包含“信用度”分片,那麼在遞迴渲染處理的時候,先將“掌櫃資訊”分片的資訊渲染,“信用度”分片在“掌櫃資訊”分片上的位置先設置為占位符,然後再渲染該“信用度”分片,並將“信用度”分片的渲染內容填充進“掌櫃資訊”分片的占位符中,最後返回“掌櫃資訊”分片的渲染結果。
步驟408:對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數。
在本步驟,按照對第一層分片和第二層分片所做的遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他層級的分片位置,所述N為大於3的整數。
步驟305:將獲取到的所有的第一層分片的HTML代碼組合成所述網頁的完整的第一層分片內容。
在本步驟中,需要將對第一層分片進行渲染的渲染結果進行組合,所述渲染結果即是第一層分片的HTML,如果第一層分片還遞迴的包括了至少一層分片,則所述第一層分片的渲染結果還包括所述至少一層分片的HTML代碼,此步驟中需要將所述各個分片的HTML代碼組合形成所述網頁的完整的第一層分片內容。
步驟306:將所述完整的第一層分片內容在用戶端的網頁上向用戶進行展示。
將組合成的完整的第一層分片的內容在用戶端的網頁上向用戶進行展示,展示結果即是用戶看到的網頁內容。
本實施例中,可以在對網頁頁面的分片嵌套緩存,同時在網頁頁面的分片進行嵌套緩存時還能夠遞迴地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網頁內容,彌補了習知技術的一項空白。
實施例三
參考圖6,示出了本發明一種頁面緩存的處理方法實施例三的流程圖,本實施例可以理解為將本發明的頁面緩存的處理方法應用於實際中的一個具體例子,可以包括以下步驟:步驟601:當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊。
步驟602:從配置伺服器中查詢所述第一層分片的緩存資訊,所述緩存資訊包括分片是否需要緩存的資訊,以及需要緩存的分片的緩存時間長度資訊。
步驟603:依據所述第一層分片的緩存資訊判斷第一層分片是否需要緩存,如果是,則進入步驟604;如果否,則進入步驟605。
步驟604:將所述第一層分片的分片名稱和分片參數進行哈希運算以得到第一層分片的分片標識ID;依據所述分片ID從緩存系統中查找與該分片ID對應的第一層分片的HTML代碼,如果查找到該HTML代碼,則進入步驟606;如果沒有查找到對應的HTML代碼,則進入步驟605。
在本步驟中,雖然所述第一層分片是需要緩存的,但是所述緩存系統中卻可能查詢不到所述第一層分片對應的HTML代碼。例如,當所述第一層分片的緩存時間已到,所述緩存的第一層分片的內容失效,這種情況下就可能查詢不到。其中,所述各個層的分片的緩存時間是預先設置好的,也可以儲存在配置伺服器中。
步驟605:由WEB伺服器的業務系統負責查找該分片ID對應的HTML代碼。
步驟606:當第一層分片需要緩存而緩存系統中卻不存在該分片的HTML代碼時,將所述查找得到的HTML代碼及其與所述分片ID的對應關係緩存至緩存系統中。
在本步驟中,第一層分片需要緩存的HTML代碼卻沒有被儲存進緩存系統中,因此在執行步驟605之後,可以將查找到的HTML代碼儲存到緩存系統中。而如果第一層分片不需要緩存,那麼查找到該第一層分片的HTML代碼時,就無需儲存到緩存系統中。
需要說明的是,步驟606雖然在步驟605之後,但是步驟606只有在第一層分片需要緩存的HTML代碼沒有被儲存進緩存系統時才執行,因此步驟606並不是本實施例所必須的步驟。
步驟607:依據預置的嵌套資訊判斷所述第一層分片是否包括第二層分片;如果是,則對所述第二層分片進行遞迴渲染處理,所述遞迴渲染處理的方式為:在待處理分片的上一層分片上生成所述待處理分片的占位符;依據所述待處理分片的分片名稱和分片參數,獲取所述待處理分片的上一層分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符。
步驟608:繼續判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數,如果否,則結束渲染過程。
本實施例中的步驟607和步驟608在上一個實施例中都進行了詳細的描述,因為本實施例的實現方式與上一個實施例相同,因此此處不再贅述。
步驟609:當某個分片的內容發生變化時,按照所述分片的分片名稱和分片參數進行哈希運算以得到該分片的分片ID。
在本實施例中,所述步驟609和步驟610可以實現對緩存系統中所儲存的分片的HTML代碼實現主動失效的功能。主動失效的含義為,即便某個分片的緩存時間還未過期,也可通過執行步驟609和610將緩存系統中該分片對應的HTML代碼刪除。
步驟610:按照所述分片ID,在緩存系統中查找並刪除與該ID對應的HTML代碼。
在實際應用中,有一些應用場景需要在分片的HTML代碼未到達預定的緩存時間就失效掉。以“掌櫃資訊”分片為例,假設“掌櫃資訊”分片的緩存時間是1天,但是如果還未到1天的時候,“掌櫃資訊”發生了變化,這時可更新緩存系統中保存的該分片的HTML代碼,將之前的緩存內容進行刪除。
需要說明的是,可以從步驟609和步驟610中看出,對分片的HTML代碼進行失效的時候,通過對分片名稱和分片參數進行哈希運算,並將計算得到的32位結果作為分片ID,以刪除該分片ID在緩存系統中對應的HTML代碼。
步驟611:將所述分片除了HTML代碼以外的其他回應頭的值緩存至所述緩存系統中。
在本發明實施例中,如果開啟了頭(HEDER)緩存,在向緩存系統新增某個分片的HTML代碼時,有些業務需要將除了所述HTML代碼以外的其他回應頭(RESPONE HEDER)中的資訊也一起緩存,而如果只緩存了HTML代碼不緩存回應頭的值的話,可能會導致這些業務無法正常工作。例如,訪問“寶貝詳情”頁面的分片時,有相應的語言版本資訊,這些語言版本資訊在回應頭中保存的方式是“_lang=gbk”的方式,當“寶貝詳情”頁面向用戶端返回結果的時候,對應的“_lang=gbk”也將返回,這樣就可以在保證對於某個分片的HTML代碼能夠在不同的網頁中都相同。
在本步驟實現的時候,預先配置好當前使用的業務系統中回應頭的哪些值需要緩存,該配置資訊和分片的相關資訊一起存放在緩存系統中。緩存之後,如果用戶請求的網頁頁面中的分片在緩存系統中對應的也有回應頭的值,則在返回HTML代碼的同時也返回對應的回應頭的值。
在本實施例中,緩存系統可以採用分散式群集伺服器來實現,所述分散式群集伺服器可以採用水準擴充的方式,增加充當緩存系統的伺服器台數,這樣就可以實現某一台伺服器儲存了分片的HTML代碼之後,其他的分散式群集伺服器就不再進行儲存。同時採用本發明實施例的技術方案,可以實現分片之間不限層數的遞迴嵌套,同時也可以將每個分片的緩存時間設置為不相同的。同時本實施例中,如果存在頭緩存,在分片的HTML代碼進行緩存的同時也緩存某個分片的回應頭中需要的值。
實施例四
參考圖7,示出了本發明一種頁面緩存的處理方法實施例四的流程圖,本實施例可以理解為將本發明的頁面緩存的處理方法應用於實際中的一個具體例子,可以包括以下步驟:步驟701:接收到針對網頁頁面的請求。
步驟702:判斷所述請求的網頁頁面是否需要進行全頁緩存;如果需要,則進入步驟703;如果不需要,則進入步驟704。
在本發明實施例中,所描述的是對網頁頁面的緩存處理過程。前述三個實施例所描述的技術方案是網頁頁面不需要緩存而網頁頁面的某些分片需要緩存的情況。本實施例中對所述網頁頁面是否需要緩存進行判斷,在當前用戶請求的網頁頁面需要緩存時,在後續進行處理時,可直接對該網頁頁面進行渲染;而在當前用戶請求的網頁頁面不需要緩存時,執行對網頁頁面包括的各個分片的渲染過程。
步驟703:對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容。
在本步驟中,通過對整個網頁頁面直接進行渲染,以獲得所述網頁頁面的HTML代碼。在實際應用中,可以直接利用網頁頁面的頁面名稱和頁面參數進行哈希運算以得到32位元頁面ID,以該頁面ID到緩存系統中查找對應的頁面的HTML代碼,如果查詢不到,則從資料庫中或者互聯網上查詢相應的HTML代碼,並根據返回的查詢結果獲得所述網頁頁面的具體內容。所述頁面參數是指WEB伺服器依據用戶所請求的網頁傳遞給緩存處理裝置的參數,例如,用戶查詢頁面,頁面的URL都是相同的,唯獨不同的就是參數不同,例如:
www.xxx.com/aaa.htm?user=[x]&userName=[x]。
步驟704:對該網頁頁面執行頁面解析過程,所述頁面解析過程具體包括:獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行分片解析過程。所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
本步驟針對的是網頁頁面不需要緩存而其中的某些分片需要緩存的應用場景,該應用場景下的實現過程在前述三個實施例中已經介紹得很詳細,在此不再贅述。
在本實施例中,可以實現對網頁頁面緩存時的緩存處理,能夠實現網頁頁面需要緩存而分片不緩存,或者網頁頁面不需要緩存而其中的某些分片需要嵌套緩存時相應的渲染過程。
實施例五
參考圖8,其示出了本發明一種頁面緩存的處理方法實施例五的流程圖,本實施例可以理解為將本發明的頁面緩存的處理方法應用於實際中的一個具體例子,可以包括以下步驟:步驟801:接收到針對網頁頁面的請求。
步驟802:獲取所述網頁頁面的URL,並依據所述URL查找預置的緩存資訊,所述緩存資訊包括所述網頁頁面是否需要進行全頁緩存的資訊。如果需要進行全頁緩存,則進入步驟803,如果不需要進行全頁緩存,則進入步驟805。
在本實施例中也可以由配置伺服器對所述網頁頁面的緩存資訊進行儲存,而配置伺服器可以更新儲存的緩存資訊,並向緩存處理裝置發送更新後的緩存資訊;緩存處理裝置也可以從配置伺服器中主動獲取相應的緩存資訊。所述緩存資訊中包括所述網頁頁面是否需要進行全頁緩存的資訊。
步驟803:將所述網頁頁面的URL與頁面參數生成32位元的頁面ID,進入步驟804。
本步驟中需要將所述網頁頁面的URL與頁面參數採用哈希運算生成32位元的頁面ID。
步驟804:依據所述頁面ID從緩存系統中查找對應的頁面HTML代碼,進入步驟806。
以步驟803中得到的32位元的頁面ID為關鍵字從緩存系統中查詢對應的頁面HTML代碼。
步驟805:由WEB伺服器的業務系統負責查找該頁面ID對應的HTML代碼。
步驟806:將所述查找得到的HTML代碼及其與所述頁面ID的對應關係緩存至緩存系統中。
在本步驟中,如果網頁頁面需要緩存,但是卻在緩存系統中查詢不到,則在步驟805之後繼續將查詢得到的HTML代碼及頁面ID的對應關係,同時還有HTML代碼都儲存至緩存系統中。
需要說明的是,在進行網頁頁面的緩存處理時,如果網頁頁面需要緩存,也可以在該網頁頁面的緩存時間還未到來,但是網頁頁面的HTML代碼又進行了更新的情況下,對所述網頁頁面進行主動失效。主動失效的含義及其實現方式在前述實施例中已經介紹,在此不再贅述。
對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明並不受所描述的動作順序的限制,因為依據本發明,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於較佳實施例,所涉及的動作和模組並不一定是本發明所必須的。
實施例六
與上述本發明一種頁面緩存的處理方法實施例一所提供的方法相對應,參見圖9,本發明還提供了一種頁面緩存的處理裝置實施例六,在本實施例中,該裝置具體可以包括:獲取模組901,用於當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊。
分片解析模組902,用於依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊。
組合拼裝模組903,用於將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
本實施例中,可以實現當網頁頁面的分片採用了嵌套緩存的方式時,能夠遞迴地獲取到所述網頁頁面各個分片的HTML代碼,最後組合拼裝成該網頁頁面的第一層分片,解決了習知技術中無法對網頁頁面的分片進行嵌套緩存的問題,以及分片進行嵌套緩存之後的遞迴渲染問題。
實施例七與上述本發明一種頁面緩存的處理方法實施例二所提供的方法相對應,參見圖10,本發明還提供了一種頁面緩存的處理裝置的較佳實施例七,在本實施例中,該裝置具體可以包括:獲取URL子模組1001,用於獲取所述網頁的統一資源定位符(URL);查詢範本子模組1002,用於依據所述網頁的URL查詢得到該網頁的範本;獲得分片資訊子模組1003,用於獲得該網頁的範本中第一層分片對應的分片名稱和分片參數;獲取嵌套資訊子模組1004,用於依次依據第一層分片的分片名稱和分片參數獲取所述第一層分片的HTML代碼和嵌套資訊。
參考圖11所示,所述獲取嵌套資訊子模組1004具體可以包括:查詢緩存資訊子模組1101,用於從配置伺服器中查詢所述第一層分片的緩存資訊,所述緩存資訊包括分片是否需要緩存的資訊,以及需要緩存的分片的緩存時間長度資訊;判斷子模組1102,用於在當前時間還未到達所述緩存時間長度時,依據所述第一層分片的緩存資訊判斷第一層分片是否需要緩存;第一查找HTML代碼子模組1103,用於當所述判斷子模組1102的結果為是時,則將所述第一層分片的分片名稱和分片參數進行哈希運算以得到第一層分片的分片標識ID;並依據所述分片ID從緩存系統中查找與該分片ID對應的第一層分片的HTML代碼;第二查找HTML代碼子模組1104,用於當所述判斷子模組1102的結果為否時,則觸發WEB伺服器的業務系統查找該分片ID對應的HTML代碼。
遞迴渲染處理子模組1005,用於依據所述嵌套資訊判斷所述第一層分片是否包括第二層分片;如果是,則對所述第二層分片進行遞迴渲染處理,所述遞迴渲染處理的方式為:在待處理分片的上一層分片上生成所述待處理分片的占位符;依據所述待處理分片的分片名稱和分片參數,獲取所述待處理分片的上一層分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符;並繼續判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數;如果第一層分片不包括第二層分片,則結束渲染過程。
用戶端展示模組1006,用於將所述完整的第一層分片內容在用戶端的網頁上展示。
本實施例中,可以在對網頁頁面的分片嵌套緩存,同時在網頁頁面的分片進行嵌套緩存時還能夠遞迴地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網頁內容,彌補了習知技術的一項空白。
實施例八
與上述本發明一種頁面緩存的處理方法實施例三所提供的方法中的內容相對應,參見圖12,本發明還提供了一種頁面緩存的處理裝置的較佳實施例八,在本實施例中,該裝置具體還可以包括:緩存模組1201,用於將所述查找得到的HTML代碼及其與所述分片ID的對應關係緩存至緩存系統中;哈希運算模組1202,用於當某個分片的內容發生變化時,按照所述分片的分片名稱和分片參數進行哈希運算以得到該分片的分片ID;刪除模組1203,用於按照所述分片ID在緩存系統中查找並刪除與該ID對應的HTML代碼;所述緩存模組1204,具體用於將所述分片的HTML代碼對應的頭HEADER的值緩存至所述緩存系統中。
實施例九
與上述本發明一種頁面緩存的處理方法實施例四所提供的方法相對應,參見圖13,本發明還提供了一種頁面緩存的處理裝置的較佳實施例九,在本實施例中,該裝置具體可以包括:接收網頁頁面請求模組1301,用於接收針對網頁頁面的請求;判斷模組1302,用於判斷所述請求的網頁頁面是否需要進行全頁緩存;直接渲染模組1303,用於當所述判斷模組1302的結果為是時,對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;嵌套緩存處理裝置1304,用於當所述判斷模組1302的結果為否時,獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行解析過程,所述解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
實施例十
與上述本發明一種頁面緩存的處理方法實施例五所提供的方法相對應,參見圖14,本發明還提供了一種頁面緩存的處理裝置的較佳實施例十,在本實施例中,該裝置具體可以包括:接收網頁頁面請求模組1301,用於接收針對網頁頁面的請求;所述判斷模組1302具體可以包括:獲取緩存資訊子模組1401,用於獲取所述網頁頁面的URL;查找子模組1402,用於依據所述URL查找預置的緩存資訊,所述緩存資訊包括所述網頁頁面是否需要進行全頁緩存的資訊,以及所述網頁頁面的緩存時間長度資訊。
所述直接渲染模組1303具體可以包括:生成頁面ID模組1403,用於在所述緩存時間長度還未到達時,將所述網頁頁面的URL與頁面參數生成32位元的頁面ID;第一查找HTML代碼模組1404,用於依據所述頁面ID從緩存系統中查找對應的頁面HTML代碼。
所述裝置具體還可以包括:第二查找HTML代碼模組1405,用於觸發WEB伺服器的業務系統查找該頁面ID對應的HTML代碼;緩存模組1406,用於將所述查找得到的HTML代碼及其與所述頁面ID的對應關係緩存至緩存系統中。
實施例十一
與前述本發明提供的一種網頁頁面的分片嵌套緩存的處理方法和裝置相對應,本發明還提供了一種網頁頁面的分片嵌套緩存的處理系統實施例十,所述系統具體可以包括用戶端和WEB伺服器:所述用戶端,用於向WEB伺服器請求網頁頁面;所述WEB伺服器包括所述緩存處理裝置,所述緩存處理裝置包括:獲取模組,用於當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊;分片解析模組,用於依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;組合拼裝模組,用於將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
同時本發明還提供了一種網頁頁面的緩存處理系統實施例,所述系統具體可以包括用戶端和WEB伺服器:所述用戶端,用於向WEB伺服器請求網頁頁面;所述WEB伺服器包括所述緩存處理裝置,所述緩存處理裝置包括:接收網頁頁面請求模組,用於接收針對網頁頁面的請求;判斷模組,用於判斷所述請求的網頁頁面是否需要進行全頁緩存;直接渲染模組,用於當所述判斷模組的結果為是時,對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;嵌套緩存處理裝置,用於當所述判斷模組的結果為否時,獲取所述網頁頁面包括的第一層分片資訊;依據所述第一層分片資訊依次對第一層分片執行解析過程,所述解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
需要說明的是,本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同或相似的部分互相參見即可。對於裝置類實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本發明所提供的一種頁面緩存的處理方法、裝置及系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
901...獲取模組
902...分片解析模組
903...組合拼裝模組
1001...獲取URL子模組
1002...查詢範本子模組
1003...獲得分片資訊子模組
1004...獲取嵌套資訊子模組
1005...遞迴渲染處理子模組
1006...用戶端展示模組
1101...查詢緩存資訊子模組
1102...判斷子模組
1103...第一查找HTML代碼子模組
1104...第二查找HTML代碼子模組
1201...緩存模組
1202...哈希運算模組
1203...刪除模組
1204...緩存模組
1301...接收網頁頁面請求模組
1302...判斷模組
1303...直接渲染模組
1304...嵌套緩存處理裝置
1401...獲取緩存資訊子模組
1402...查找子模組
1403...生成頁面ID模組
1404...第一查找HTML代碼模組
1405...第二查找HTML代碼模組
1406...緩存模組
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例中所涉及到的系統方塊圖;
圖2是本發明的一種頁面緩存的處理方法實施例一的流程圖;
圖3是本發明的一種頁面緩存的處理方法實施例二的流程圖;
圖4是本發明方法實施例二中步驟304的流程圖;
圖5是本發明方法實施例二中第一層分片的分片名稱示意圖;
圖6是本發明的一種頁面緩存的處理方法實施例三的流程圖;
圖7是本發明的一種頁面緩存的處理方法實施例四的流程圖;
圖8是本發明的一種頁面緩存的處理方法實施例五的流程圖;
圖9是本發明的一種頁面緩存的處理裝置實施例六的結構方塊圖;
圖10是本發明的一種頁面緩存的處理裝置實施例七的結構方塊圖;
圖11是本發明裝置實施例七中獲取嵌套資訊子模組1004的結構方塊圖;
圖12是本發明的一種頁面緩存的處理裝置實施例八的結構方塊圖;
圖13是本發明的一種頁面緩存的處理裝置實施例九的結構方塊圖;
圖14是本發明的一種頁面緩存的處理裝置實施例十的結構方塊圖。
Claims (13)
- 一種網頁頁面的分片嵌套緩存的處理方法,其特徵在於,包括:當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊,所述第一層分片資訊包括分片名稱和分片參數;依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊,其中,所述依據所述第一層分片的嵌套資訊對所述第一層分片進行渲染,具體包括:依次依據第一層分片的分片名稱和分片參數獲取所述第一層分片的HTML代碼和嵌套資訊;依據所述嵌套資訊判斷所述第一層分片是否包括第二層分片,如果是,則對所述第二層分片進行遞迴渲染處理;繼續判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數;將所述分片解析過程的結果組合成所述網頁的完整的第一層分片內容。
- 如申請專利範圍第1項的方法,其中,所述獲取所述網頁頁面包括的第一層分片資訊,具體包括:獲取所述網頁的統一資源定位符URL;依據所述網頁的URL查詢得到該網頁的範本;以及 獲得該網頁的範本中第一層分片對應的分片名稱和分片參數。
- 如申請專利範圍第1項的方法,其中,所述遞迴渲染處理的方式為:在待處理分片的上一層分片上生成所述待處理分片的占位符;依據所述待處理分片的分片名稱和分片參數,獲取所述待處理分片的上一層分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符。
- 如申請專利範圍第3項的方法,其中,所述依次依據第一層分片的分片名稱和分片參數獲取所述第一層分片的HTML代碼,具體包括:從配置伺服器中查詢所述第一層分片的緩存資訊,所述緩存資訊包括分片是否需要緩存的資訊;依據所述第一層分片的緩存資訊判斷第一層分片是否需要緩存,如果是,則將所述第一層分片的分片名稱和分片參數進行哈希運算以得到第一層分片的分片標識ID;並依據所述分片ID從緩存系統中查找與該分片ID對應的第一層分片的HTML代碼;如果否,則由WEB伺服器的業務系統查找該分片ID對應的HTML代碼。
- 如申請專利範圍第4項的方法,其中,如果所述第一層分片需要緩存而所述緩存系統中不包括所述第一層分片的HTML代碼,還包括:由WEB伺服器的業務系統查找該分片ID對應的HTML 代碼;將所述查找得到的HTML代碼及其與所述分片ID的對應關係緩存至緩存系統中。
- 如申請專利範圍第4項的方法,其中,所述緩存資訊還包括需要緩存的分片的緩存時間長度資訊,則所述方法還包括:當在所述緩存時間長度內某個分片的內容發生變化時,按照所述分片的分片名稱和分片參數進行哈希運算以得到該分片的分片ID;按照所述分片ID在緩存系統中查找並刪除與該ID對應的HTML代碼。
- 如申請專利範圍第5項的方法,其中,如果還包括頭緩存,則所述方法還包括:將所述分片的HTML代碼對應的頭HEADER的值緩存至所述緩存系統中。
- 一種網頁頁面的緩存處理方法,其特徵在於,包括:接收到針對網頁頁面的請求;判斷請求的所述網頁頁面是否需要進行全頁緩存,如果需要,則對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;如果不需要,則獲取所述網頁頁面包括的第一層分片資訊,所述第一層分片資訊包括分片名稱和分片參數;依據所述第一層分片資訊依次對第一層分片執行分片解析過 程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述分片解析過程的結果組合成所述網頁的完整的第一層分片內容,其中,所述獲取所述網頁頁面包括的第一層分片資訊,具體包括:獲取所述網頁的統一資源定位符URL;依據所述網頁的URL查詢得到該網頁的範本;以及獲得該網頁的範本中第一層分片對應的分片名稱和分片參數;其中,所述依據所述第一層分片的嵌套資訊對所述第一層分片進行渲染,具體包括:依次依據第一層分片的分片名稱和分片參數獲取所述第一層分片的HTML代碼和嵌套資訊;依據所述嵌套資訊判斷所述第一層分片是否包括第二層分片,如果是,則對所述第二層分片進行遞迴渲染處理;繼續判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數。
- 如申請專利範圍第8項的方法,其中,所述判斷請求的所述網頁頁面是否需要進行全頁緩存,具體包括:獲取所述網頁頁面的URL,並依據所述URL查找預置的緩存資訊,所述緩存資訊包括所述網頁頁面是否需要進行全頁緩存的資訊,以及所述網頁頁面的緩存時間長度資訊。
- 如申請專利範圍第9項的方法,其中,對所述網 頁頁面直接進行渲染,具體包括:在所述緩存時間長度還未到達時,將所述網頁頁面的URL與頁面參數生成32位元的頁面ID;依據所述頁面ID從緩存系統中查找對應的頁面HTML代碼。
- 如申請專利範圍第10項的方法,其中,如果查詢不到HTML代碼,則所述方法還包括:由WEB伺服器中的業務系統查找該頁面ID對應的HTML代碼;將所述查找得到的HTML代碼及其與所述頁面ID的對應關係緩存至緩存系統中。
- 一種網頁頁面的分片嵌套緩存的處理裝置,其特徵在於,該裝置包括:獲取模組,用於當接收到針對網頁頁面的請求時,獲取所述網頁頁面包括的第一層分片資訊,所述第一層分片資訊包括分片名稱和分片參數;分片解析模組,用於依據所述第一層分片資訊依次對第一層分片執行分片解析過程,所述分片解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊,其中,所述依據所述第一層分片的嵌套資訊對所述第一層分片進行渲染,具體包括:依次依據第一層分片的分片名稱和分片參數獲取所述第一層分片的HTML代碼和嵌套資訊;依據所述嵌套資訊判斷所述第一層分片是否 包括第二層分片,如果是,則對所述第二層分片進行遞迴渲染處理;繼續判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數;以及組合拼裝模組,用於將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容。
- 一種網頁頁面的緩存處理裝置,其特徵在於,該裝置包括:接收網頁頁面請求模組,用於接收針對網頁頁面的請求;判斷模組,用於判斷所述請求的網頁頁面是否需要進行全頁緩存;直接渲染模組,用於當所述判斷模組的結果為是時,對所述網頁頁面直接進行渲染,以獲取所述網頁頁面的內容;嵌套緩存處理裝置,用於當所述判斷模組的結果為否時,獲取所述網頁頁面包括的第一層分片資訊,所述第一層分片資訊包括分片名稱和分片參數;依據所述第一層分片資訊依次對第一層分片執行解析過程,所述解析過程具體為:依據所述第一層分片的預置的嵌套資訊對所述第一層分片進行渲染;所述嵌套資訊為當前分片是否包括其他分片的資訊;將所述渲染的渲染結果組合成所述網頁的完整的第一層分片內容,其中,所述依據所述第一層分片的 嵌套資訊對所述第一層分片進行渲染,具體包括:依次依據第一層分片的分片名稱和分片參數獲取所述第一層分片的HTML代碼和嵌套資訊;依據所述嵌套資訊判斷所述第一層分片是否包括第二層分片,如果是,則對所述第二層分片進行遞迴渲染處理;繼續判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞迴渲染處理,直至最後判斷得到第N層分片不再包括其他分片為止,所述N為大於3的整數。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099139792A TWI512620B (zh) | 2010-11-18 | 2010-11-18 | Method and device for fragmented nested caching of web pages |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099139792A TWI512620B (zh) | 2010-11-18 | 2010-11-18 | Method and device for fragmented nested caching of web pages |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201222407A TW201222407A (en) | 2012-06-01 |
TWI512620B true TWI512620B (zh) | 2015-12-11 |
Family
ID=46725229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099139792A TWI512620B (zh) | 2010-11-18 | 2010-11-18 | Method and device for fragmented nested caching of web pages |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI512620B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR39184E (fr) * | 1930-10-23 | 1931-10-08 | Ig Farbenindustrie Ag | Couches sensibles à la lumière |
TW518498B (en) * | 2000-08-18 | 2003-01-21 | Ibm | Gathering enriched web server activity data of cached web content |
US20080005273A1 (en) * | 2001-12-19 | 2008-01-03 | Agarwalla Rajesh S | Method and system for caching role-specific fragments |
-
2010
- 2010-11-18 TW TW099139792A patent/TWI512620B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR39184E (fr) * | 1930-10-23 | 1931-10-08 | Ig Farbenindustrie Ag | Couches sensibles à la lumière |
TW518498B (en) * | 2000-08-18 | 2003-01-21 | Ibm | Gathering enriched web server activity data of cached web content |
US20080005273A1 (en) * | 2001-12-19 | 2008-01-03 | Agarwalla Rajesh S | Method and system for caching role-specific fragments |
Also Published As
Publication number | Publication date |
---|---|
TW201222407A (en) | 2012-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6091579B2 (ja) | ウェブページのネストしたフラグメントキャッシングを処理する方法および装置 | |
US9143551B2 (en) | Method, device, and system for acquiring a web page | |
US20190349415A1 (en) | Maintaining independent states for multiple web browser instances | |
AU2015401229B2 (en) | Website access method, apparatus, and website system | |
US7979427B2 (en) | Method and system for updating a search engine | |
JP5745627B2 (ja) | 予測的なクエリ提案のキャッシュ | |
US8849802B2 (en) | Historical browsing session management | |
CN106933965B (zh) | 静态资源请求的方法 | |
JP5841299B2 (ja) | 情報をプッシュする方法および情報をプッシュするための装置 | |
US20120310941A1 (en) | System and method for web-based content categorization | |
US20210200767A1 (en) | Asynchronous Predictive Caching Of Content Listed In Search Results | |
CN107688650B (zh) | 一种web页面生成方法和装置 | |
TWI512620B (zh) | Method and device for fragmented nested caching of web pages | |
US20170235748A1 (en) | Recommending outgoing values based on incoming values | |
CN116701800A (zh) | 页面内容处理方法、装置、计算机设备及介质 |