專利名稱:網(wǎng)頁頁面的分片嵌套緩存的處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及網(wǎng)絡(luò)數(shù)據(jù)處理領(lǐng)域,特別涉及網(wǎng)頁(WEB)頁面的分片嵌套緩存的處理方法和裝置。
背景技術(shù):
在用戶向網(wǎng)頁服務(wù)器第一次請求網(wǎng)頁頁面時,為了提高訪問網(wǎng)頁的速度,通常網(wǎng)絡(luò)資源瀏覽器(例如IE瀏覽器)會采用累積式加速的方法,將用戶曾經(jīng)訪問的網(wǎng)頁內(nèi)容 (包括圖片以及cookie文件等)存放在電腦里,電腦里的這個存放空間,被稱為IE緩存空間。以后每次訪問網(wǎng)頁時,IE瀏覽器會首先搜索這個緩存空間,如果其中已經(jīng)緩存當(dāng)前訪問的內(nèi)容,那IE瀏覽器就不必從網(wǎng)上下載這部分內(nèi)容,而是直接從緩存讀取,以提高訪問網(wǎng)頁的速度。對于網(wǎng)頁的緩存目前現(xiàn)有技術(shù)中有兩種方式,一種是全頁緩存,指針對訪問的網(wǎng)頁整個頁面進行緩存;另一種是分片緩存,指將訪問的網(wǎng)頁頁面劃分成若干部分的分片,例如,某個分片為圖片信息,某個分片為文字信息等,然后針對某一分片的內(nèi)容進行緩存。但是,有一些網(wǎng)頁的分片之間因為其內(nèi)容相關(guān),所以有時候需要在某些分片之間實現(xiàn)嵌套緩存,例如,嵌套形式分片A包括分片B,而分片B又包括分片C的形式,對于分片 A需要緩存,B不需要緩存,C又需要緩存的形式,現(xiàn)有技術(shù)無法實現(xiàn)。目前,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠創(chuàng)新地提出一種網(wǎng)頁頁面的分片嵌套緩存的處理方法,以解決現(xiàn)有技術(shù)中無法實現(xiàn)分片嵌套緩存及其后續(xù)遞歸處理的技術(shù)問題。
發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種頁面緩存的處理方法,用以解決現(xiàn)有技術(shù)中無法實現(xiàn)分片嵌套緩存及其后續(xù)遞歸處理的技術(shù)問題。本申請還提供了一種頁面緩存的處理裝置,用以保證上述方法在實際中的實現(xiàn)及應(yīng)用。為了解決上述問題,本申請公開了一種頁面緩存的處理方法,包括當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述分片解析過程的結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。本申請還公開了一種網(wǎng)頁頁面的緩存處理方法,包括接收到針對網(wǎng)頁頁面的請求;判斷請求的所述網(wǎng)頁頁面是否需要進行全頁緩存,如果需要,則對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;
如果不需要,則獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述分片解析過程的結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。本申請公開了一種網(wǎng)頁頁面的分片嵌套緩存的處理裝置,包括獲取模塊,用于當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;分片解析模塊,用于依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;組合拼裝模塊,用于將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。本申請還提供了一種網(wǎng)頁頁面的緩存處理裝置,該裝置包括接收網(wǎng)頁頁面請求模塊,用于接收針對網(wǎng)頁頁面的請求;判斷模塊,用于判斷所述請求的網(wǎng)頁頁面是否需要進行全頁緩存;直接渲染模塊,用于當(dāng)所述判斷模塊的結(jié)果為是時,對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;嵌套緩存處理裝置,用于當(dāng)所述判斷模塊的結(jié)果為否時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行解析過程,所述解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點在本申請實施例中,可以在對網(wǎng)頁頁面的分片嵌套緩存,同時在網(wǎng)頁頁面的分片進行嵌套緩存時還能夠遞歸地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網(wǎng)頁內(nèi)容,彌補了現(xiàn)有技術(shù)的一項空白。在本實施例中,緩存系統(tǒng)可以采用分布式集群服務(wù)器來實現(xiàn),所述分布式集群服務(wù)器可以采用水平擴容的方式,增加充當(dāng)緩存系統(tǒng)的服務(wù)器臺數(shù),這樣就可以實現(xiàn)某一臺服務(wù)器存儲了分片的HTML代碼之后,其他的分布式集群服務(wù)器就不再進行存儲。同時采用本申請實施例的技術(shù)方案,可以實現(xiàn)分片之間不限層數(shù)的遞歸嵌套,同時也可以將每個分片的緩存時間設(shè)置為不相同的。當(dāng)然,實施本申請的任一產(chǎn)品并不一定需要同時達到以上所述的所有優(yōu)點。
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本申請實施例中所涉及到的系統(tǒng)框架圖;圖2是本申請的一種頁面緩存的處理方法實施例一的流程圖3是本申請的一種頁面緩存的處理方法實施例二的流程圖;圖4是本申請方法實施例二中步驟304的流程圖;圖5是本申請方法實施例二中第一層分片的分片名稱示意圖;圖6是本申請的一種頁面緩存的處理方法實施例三的流程圖;圖7是本申請的一種頁面緩存的處理方法實施例四的流程圖;圖8是本申請的一種頁面緩存的處理方法實施例五的流程圖;圖9是本申請的一種頁面緩存的處理裝置實施例六的結(jié)構(gòu)框圖;圖10是本申請的一種頁面緩存的處理裝置實施例七的結(jié)構(gòu)框圖;圖11是本申請裝置實施例七中獲取嵌套信息子模塊1004的結(jié)構(gòu)框圖;圖12是本申請的一種頁面緩存的處理裝置實施例八的結(jié)構(gòu)框圖;圖13是本申請的一種頁面緩存的處理裝置實施例九的結(jié)構(gòu)框圖;圖14是本申請的一種頁面緩存的處理裝置實施例十的結(jié)構(gòu)框圖。
具體實施例方式下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本申請保護的范圍。本申請可用于眾多通用或?qū)S玫挠嬎阊b置環(huán)境或配置中。例如個人計算機、服務(wù)器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器裝置、包括以上任何裝置或設(shè)備的分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。本申請的主要思想之一可以包括,預(yù)先設(shè)置網(wǎng)頁頁面的各個分片的嵌套信息和緩存信息,所述嵌套信息為分片是否包括其他分片的信息;所述各個分片與對應(yīng)的嵌套信息可保存在WEB服務(wù)器的網(wǎng)頁模板中,在對當(dāng)前分片解析時一并從網(wǎng)頁模板中讀取得到該嵌套信息。在所述網(wǎng)頁模板中的信息還可包括分片名稱和分片參數(shù),所述分片名稱可以標(biāo)識出每一個分片,而分片參數(shù)是根據(jù)業(yè)務(wù)確定的。所述業(yè)務(wù)是指用戶的某種需求,而實現(xiàn)用戶某種需求的功能就是具體的業(yè)務(wù)。所述緩存信息為所述分片是否需要緩存的信息,以及需要緩存的分片的緩存時間長度信息。所述緩存信息可以保存在配置服務(wù)器中,在網(wǎng)頁頁面進行緩存或者網(wǎng)頁頁面的分片進行嵌套緩存時,可以從所述配置服務(wù)器中動態(tài)獲得所述緩存信息。本申請中在接收到針對某個網(wǎng)頁頁面的請求時,首先可以判斷所述網(wǎng)頁頁面是否需要進行全頁緩存,如果需要,則對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;如果不需要,則獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信
7息;將所述分片解析過程的結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。需要說明的是,在本申請實施例中,所提及的網(wǎng)頁頁面包括的分片,可以允許至少具有兩層的分片,并且各層分片可以有一個或多個,其中,所述第一層分片與第二層分片是父子關(guān)系,但是并不一定是所有的第一層分片都會包括第二層分片,也可以是其中的一個或者多個第一層分片包括第二層分片。其中所述第二層分片還可以包括第三層分片,依此類推,本申請實施例中將這種嵌套關(guān)系稱為遞歸嵌套。并且本申請實施例中的各個層次的分片之間的緩存信息是相互獨立的,例如,可以預(yù)先將當(dāng)前層分片設(shè)置為需要緩存,而其下一層的子分片設(shè)置為不需要緩存,并且該下一層的子分片的子分片又可以設(shè)置為需要緩存等。緩存信息都可以預(yù)先設(shè)置好并存貯在配置服務(wù)器中,當(dāng)然,配置服務(wù)器中的這些設(shè)置好的緩存信息在后續(xù)使用過程中也可以實時更新。參考圖1所示,為本申請實施例中所涉及到的系統(tǒng)框架圖,用戶向網(wǎng)頁服務(wù)器請求網(wǎng)頁,所述緩存處理裝置可以集成在WEB服務(wù)器上。所述緩存處理裝置可以是WEB服務(wù)器新增的一個功能實體,也可以是單獨作為一個功能實體來實現(xiàn),該緩存處理裝置可以執(zhí)行本申請實施例中對網(wǎng)頁的分片嵌套緩存時的遞歸處理方法。緩存系統(tǒng)用于存儲各個分片或頁面的HTML代碼,緩存處理裝置可以向所述緩存系統(tǒng)請求分片或者頁面的HTML代碼,如果緩存系統(tǒng)中未包括分片或頁面的HTML代碼,則TOB服務(wù)器中的業(yè)務(wù)系統(tǒng)負責(zé)提供該分片或者頁面的HTML代碼,所述業(yè)務(wù)系統(tǒng)可以理解為TOB服務(wù)器中完成某個用戶請求業(yè)務(wù)的若干個模塊組成的當(dāng)前系統(tǒng)。需要說明的是,本申請在實際應(yīng)用中,也可以不采用緩存系統(tǒng)來緩存HTML代碼, 而是直接在客戶端進行本地保存,例如,直接緩存至客戶端的計算機內(nèi)存中,此時客戶端和 WEB服務(wù)器之間直接進行HTML代碼的交互,如果客戶端在本地查找不到對應(yīng)分片或者頁面的HTML代碼,則觸發(fā)TOB服務(wù)器的業(yè)務(wù)系統(tǒng)進行查找,如果客戶端在本地查找到相應(yīng)的 HTML代碼,則直接在用戶請求的網(wǎng)頁頁面上進行顯示。不過因為此種方式對本地內(nèi)存或者計算機的性能要求較高,并且網(wǎng)頁頁面的種類非常繁多,因此,一般采用單獨的分布式集群服務(wù)器來作為本申請實施例中的緩存系統(tǒng)。本申請實施例中的系統(tǒng)框架還可以包括配置服務(wù)器,所述配置服務(wù)器可以向所述緩存處理裝置提供各個分片的緩存信息,但是在本申請實現(xiàn)過程中也可以不需要該配置服務(wù)器,此時所述緩存信息可以在WEB服務(wù)器中預(yù)先給每個分片都一次性設(shè)置完畢,類似于分片的固定參數(shù)不可改變,而此時緩存系統(tǒng)的各個分片的緩存信息就無法動態(tài)修改。在本申請的實施例中,所述緩存信息可以采用文本方式實現(xiàn),也可以將緩存信息封裝成程序中的對象。當(dāng)把緩存信息封裝成程序中的對象時,這樣可以使得當(dāng)前分片是否包括了其他分片的嵌套方式或者某個嵌套中是否有死循環(huán),都可以從THREAD_L0CAL中獲取相應(yīng)的緩存信息進行判斷即可。所述THREAD_L0CAL為TOB服務(wù)器的一個線程級別的變量,可以在某一個請求過程中從配置服務(wù)器中向緩存處理裝置提供緩存信息。采用本申請實施例中的網(wǎng)頁頁面緩存的處理方法,即可以實現(xiàn)現(xiàn)有技術(shù)中可以實現(xiàn)的全頁緩存,也可以實現(xiàn)現(xiàn)有技術(shù)中無法實現(xiàn)的網(wǎng)頁頁面的分片嵌套緩存,彌補了現(xiàn)有技術(shù)的缺陷。實施例一圖2示出了本申請一種頁面緩存的處理方法實施例一的流程圖,可以包括以下步驟步驟201 當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分
片fn息。在本實施例中,網(wǎng)頁頁面如果確定了,該網(wǎng)頁頁面包括的第一層分片信息也可以確定,因為同一個網(wǎng)頁頁面的分片格式是相同的,即該網(wǎng)頁頁面需要劃分為哪幾個分片,這些分片的位置和名稱等信息。其中,每一個分片在網(wǎng)頁頁面上實質(zhì)上都是一個占位符,這個占位符可以在任何其他網(wǎng)頁頁面上使用,只有當(dāng)最后渲染出該分片結(jié)果的時候才會將占位符替換成分片的具體內(nèi)容。一般情況下,所述分片的具體內(nèi)容指的是該分片的具體內(nèi)容對應(yīng)的超文本標(biāo)記語言(HyperText Mark-up Language, HTML)代碼。在本實施例中,所述網(wǎng)頁頁面包括的分片可以嵌套緩存,所述嵌套緩存的含義可以理解為,如果第一層分片A包括第二層分片B,且該第二層分片B也包括第三層分片C,則依據(jù)對分片A、B和C預(yù)置的緩存信息,來實現(xiàn)對分片A和C緩存,而分片B不緩存的功能。 但是不管第一層分片有沒有包括其他分片,在本步驟獲取到的都是第一層分片信息,而后續(xù)在對該第一層分片進行解析時,才能依次獲取到分片的嵌套信息。步驟202 依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息。獲得所述網(wǎng)頁頁面的第一層分片信息之后,執(zhí)行對第一層分片的解析過程。因為在解析分片的過程中,可以從配置服務(wù)器中動態(tài)獲取到所述各個第一層分片的嵌套信息, 即是當(dāng)前第一層分片是否包括了第二層分片的信息,以及所包括的第二層分片信息。在本步驟中,需要對所有的第一層分片都進行解析,其中,各個第一層分片的解析過程可以同時執(zhí)行,也可以先后執(zhí)行,其執(zhí)行順序不影響本申請實施例的實現(xiàn)。其中,本步驟提及的渲染過程為,依據(jù)第一層分片的分片名稱和分片參數(shù)查找所述第一層分片的具體內(nèi)容對應(yīng)的HTML代碼的。其中,該渲染過程和現(xiàn)有技術(shù)中的渲染過程類似,在此就不再多做介紹。步驟203 將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。在本步驟中,當(dāng)?shù)谝粚臃制话ㄆ渌制瑫r,則渲染結(jié)果即是該第一層分片的 HTML代碼;當(dāng)?shù)谝粚臃制ǖ诙臃制瑫r,或者第二層分片又包括了第三層分片時,甚至按照遞歸的方式直至第N-I層分片包括第N層分片,則第一層分片的渲染結(jié)果則是包括了第二層至第N層分片的HTML代碼,因此,可以將所述第一層分片的渲染內(nèi)容組合生成該網(wǎng)頁的第一層分片內(nèi)容。實施例二圖3示出了本申請一種頁面緩存的處理方法實施例二的流程圖,可以包括以下步驟步驟301 當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁的統(tǒng)一資源定位符 (URL)。在本步驟中,在接收到某個網(wǎng)頁頁面的請求時,首先獲取到該網(wǎng)頁對應(yīng)的統(tǒng)一資源定位符(Uniform/Universal Resource Locator,URL)。以某網(wǎng)絡(luò)交易平臺中“寶貝詳情” 頁面為例,假設(shè)該“寶貝詳情”頁面的URL地址為xxx. XXX. com/detail, html ? id = 123。
9
步驟302 依據(jù)所述網(wǎng)頁的URL查詢得到該網(wǎng)頁的模板。因為每一個網(wǎng)頁都有唯一的URL,同時每一個網(wǎng)頁也都有一個模板,所以依據(jù)所述網(wǎng)頁的URL即可知道該網(wǎng)頁頁面所采用的模板。假設(shè)“寶貝詳情”頁面的模板信息為 "detail, vm”,在本步驟中根據(jù)“寶貝詳情”的頁面地址得到模板信息為“detail, vm”。需要說明的是,每個頁面所采用的模板即可以是獨立的,也可以是多個頁面共用的。頁面在采用模板時需要將模板中規(guī)定的分片部分進行填充。步驟303 獲得該網(wǎng)頁的模板中第一層分片對應(yīng)的分片名稱和分片參數(shù)。當(dāng)網(wǎng)頁的模板確定之后,相應(yīng)地確定了該模板對應(yīng)的頁面的分片格式。本申請與現(xiàn)有技術(shù)不同的是,本申請中網(wǎng)頁頁面不僅包括第一層分片,而且其包括的第一層分片還可以遞歸的包括至少一層分片。但是在本步驟通過網(wǎng)頁頁面所獲得的分片僅僅為第一層分片對應(yīng)的分片名稱和分片參數(shù)。其中,所述分片參數(shù)是根據(jù)業(yè)務(wù)確定的,所述業(yè)務(wù)是指用戶的某種需求,而實現(xiàn)用戶某種需求的功能就是具體的業(yè)務(wù)。以“掌柜信息”為例,其分片參數(shù)就是賣家的用戶ID ;以“寶貝詳情”頁面為例時,其分片參數(shù)就是寶貝的信息和賣家的用戶ID。在一個模板中引入某個分片,可通過如下方式實現(xiàn)例如,分片名稱為“掌柜信息”,而模板名稱為“寶貝詳情”,則如果在“寶貝詳情”中引用“掌柜信息”分片,則代碼如下control, set ( "userlnfo"). addPrams ( "userld,,,1234)其中,“ addPrams ”中的內(nèi)容即是對應(yīng)的分片“掌柜信息”的分片參數(shù),其中的 userld即是用戶ID,為“1234”;而“control, set ( “useHnfo”)”則表示在寶貝詳情模板中引用了這個分片。當(dāng)然,該代碼的實現(xiàn)僅僅是一個具體例子,其所公開的內(nèi)容不應(yīng)理解為對本申請的限定。步驟304 依據(jù)第一層分片的分片名稱和分片參數(shù)獲得所述第一層分片的嵌套信息,并依據(jù)所述第一層分片的嵌套信息獲得所述第一層分片的HTML代碼;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息。在步驟304中,當(dāng)獲得所述第一層分片的分片名稱和分片參數(shù)時,可以獲得該第一層分片嵌套信息和HTML代碼。具體地,所述嵌套信息可以從配置服務(wù)器中獲得,而配置服務(wù)器也可以向WEB服務(wù)器中的緩存處理裝置發(fā)送。分片對應(yīng)的HTML代碼可以是網(wǎng)頁頁面將要顯示的圖片、文字等信息,而該分片及其對應(yīng)的HTML代碼都可以被其他網(wǎng)頁頁面的模板所共用。例如,對于網(wǎng)絡(luò)交易平臺中的賣方用戶的“寶貝詳情”頁面的“掌柜信息”分片,其與“店鋪頁面”的“掌柜信息”分片就屬于同一個分片。同時,在獲取所有的第一層分片的HTML代碼的時候,參考圖4所示,該獲取第一層分片的HTML代碼的步驟可以包括步驟401 從配置服務(wù)器中查詢所述第一層分片的緩存信息,所述緩存信息包括分片是否需要緩存的信息,以及需要緩存的分片的緩存時間長度信息。在所述配置服務(wù)器中保存著網(wǎng)頁頁面的各個層的分片的緩存信息,所述緩存信息包括分片是否需要緩存的信息,以及需要緩存的分片的緩存時間長度信息。所述緩存時間長度信息用于表示當(dāng)前分片的在緩存系統(tǒng)中的有效時間,當(dāng)分片在緩存系統(tǒng)中的緩存時間超過所述時間長度時,該分片就會失效,所述緩存系統(tǒng)中就不會再有該分片的具體內(nèi)容。所述緩存信息可以是預(yù)先設(shè)置好的。當(dāng)然,后續(xù)如果需要對某個分片的緩存信息進行更改時, 也可以直接對配置服務(wù)器中保存的信息進行更改即可,這樣從配置服務(wù)器中查詢得到的就是最新的緩存信息。對于緩存信息的實現(xiàn),可以采用“1”來表示當(dāng)前分片需要保存,并采用 “0”來表示當(dāng)前分片不需要保存;對于緩存時間長度信息的實現(xiàn),可以采用直接將時間長度信息與所述分片名稱或者分片參數(shù)信息等進行關(guān)聯(lián)即可。當(dāng)然,緩存信息的實現(xiàn)可以在實際應(yīng)用中有多種方式,本申請實施例無需對此做出特別的限定。需要說明的是,因為緩存失效的時間是由緩存系統(tǒng)控制,單獨對于緩存處理裝置來講,在執(zhí)行本申請實施例的過程中并不知道當(dāng)前處理的頁面或者分片還有多久才會失效,所以在查詢緩存系統(tǒng)時,如果查詢不到的話就證明當(dāng)前分片的內(nèi)容已經(jīng)失效了。步驟402 依據(jù)所述第一層分片的緩存信息判斷第一層分片是否需要緩存;如果是,則進入步驟403 ;如果否,則進入步驟404。針對步驟401中所舉的例子來講,如果獲取到的表示分片是否需要緩存的信息為 “ 1”,則認為該分片的判斷結(jié)果是需要緩存。步驟403 將所述第一層分片的分片名稱和分片參數(shù)進行哈希運算以得到第一層分片的分片標(biāo)識(ID);并依據(jù)所述分片ID從緩存系統(tǒng)中查找與該分片ID對應(yīng)的第一層分片的HTML代碼,進入步驟405。其中,所述第一層分片的分片名稱可以參考圖5所示,所述網(wǎng)頁頁面的第一層分片包括分片A “寶貝描述”、分片B “導(dǎo)航”、分片C “掌柜信息”以及分片D “店鋪類目”。其中,第一層分片C “掌柜信息”還包括第二層分片Cl “掌柜信用度”。在本步驟中,可以將第一層分片的分片名稱和分片參數(shù)進行哈希(HASH)運算,運算的結(jié)果即是所述第一層分片的分片ID,該ID —般情況下為32位。依據(jù)該32位的分片 ID,可以從緩存系統(tǒng)中查找獲取到該分片ID對應(yīng)的HTML代碼,而緩存系統(tǒng)中則保存著各個分片ID與HTML代碼之間的對應(yīng)關(guān)系和該HTML代碼。需要說明的是,在對第一層分片進行渲染時,其具體方式為先將該第一層分片在網(wǎng)頁上的位置生成一個占位符,并獲取對應(yīng)的HTML代碼,獲得之后將該HTML代碼替換所述第一層分片的占位符。在對分片進行渲染時,不管其處于網(wǎng)頁的哪一層,都可以按照上述方式進行渲染。其中,所述占位符可以理解為該分片的一個位置,后續(xù)可以在該位置中添加內(nèi)容。步驟404 由TOB服務(wù)器中的業(yè)務(wù)系統(tǒng)查找該第一層分片的分片ID對應(yīng)的HTML代碼,進入步驟405。當(dāng)某個分片標(biāo)識為不需要緩存時,需要由TOB服務(wù)器中的業(yè)務(wù)系統(tǒng)來進行當(dāng)前分片的渲染,渲染結(jié)果就是當(dāng)前分片的HTML代碼。具體的,是由所述業(yè)務(wù)系統(tǒng)的渲染模塊從數(shù)據(jù)庫或者搜索引擎或者文件系統(tǒng)中查找該分片ID對應(yīng)的HTML代碼。步驟405 依據(jù)第一層分片預(yù)置的嵌套信息判斷所述第一層分片是否包括第二層分片;如果是,則進入步驟406 ;如果否,則結(jié)束對第一層分片的渲染過程。在本步驟可依據(jù)嵌套信息來判斷當(dāng)前解析的第一層分片是否包括第二層分片。步驟406 對所述第二層分片進行遞歸渲染處理,所述遞歸渲染處理的方式為在待處理分片的上一層分片上生成所述待處理分片的占位符;依據(jù)所述待處理分片的分片名稱和分片參數(shù),獲取所述待處理分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符,進入步驟407。本步驟是在第一層分片包括第二層分片時,實現(xiàn)對第二層分片的遞歸渲染處理, 即是在第一層分片上首先生成第二層分片的占位符,然后依據(jù)第二層分片的分片名稱和分片參數(shù),采用相同的方式獲取所述第二層分片的HTML代碼,其中,所述采用相同的方式的含義為對所述第二層分片的分片名稱和分片參數(shù)進行哈希運算以得到32位的第二層分片ID,當(dāng)所述第二層分片需要緩存時,則依據(jù)該ID到緩存系統(tǒng)中查詢獲取對應(yīng)的HTML代碼,如果該緩存系統(tǒng)中沒有對應(yīng)的HTML代碼,或者所述第二層分片是不需要緩存的,則依據(jù)業(yè)務(wù)性能從數(shù)據(jù)庫中或者從互聯(lián)網(wǎng)上獲取到對應(yīng)的HTML代碼,查找之后再將所述第二層分片的占位符部分替換為所述第二層分片的HTML代碼。步驟407 繼續(xù)判斷所述第二層分片是否包括第三層分片,如果是,則進入步驟 408 ;如果否,則結(jié)束第二層分片的渲染流程。在對所述第二層分片的HTML代碼查找結(jié)束之后,則繼續(xù)判斷所述第二層分片是否包括第三層分片,如果第二層分片不再包括第三層分片,則結(jié)束第二層分片的渲染過程。更具體的來講,如果第二層分片繼續(xù)包含第三層分片的話,先將第二層分片的內(nèi)容進行渲染,同時將第三層分片的部分在第二層分片上生成占位符,然后再渲染第三層分片,并將第三層分片的渲染內(nèi)容填充進該第二層分片的占位符中,所得到的結(jié)果即是第二層分片的HTML代碼。以上面掌柜信息的例子來講,“掌柜信息”分片中包含“信用度”分片, 那么在遞歸渲染處理的時候,先將“掌柜信息”分片的信息渲染,“信用度”分片在“掌柜信息”分片上的位置先設(shè)置為占位符,然后再渲染該“信用度”分片,并將“信用度”分片的渲染內(nèi)容填充進“掌柜信息”分片的占位符中,最后返回“掌柜信息”分片的渲染結(jié)果。步驟408 對所述第三層分片進行所述遞歸渲染處理,直至最后判斷得到第N層分片不再包括其他分片為止,所述N為大于3的整數(shù)。在本步驟,按照對第一層分片和第二層分片所做的遞歸渲染處理,直至最后判斷得到第N層分片不再包括其他層級的分片位置,所述N為大于3的整數(shù)。步驟305 將獲取到的所有的第一層分片的HTML代碼組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。在本步驟中,需要將對第一層分片進行渲染的渲染結(jié)果進行組合,所述渲染結(jié)果即是第一層分片的HTML,如果第一層分片還遞歸的包括了至少一層分片,則所述第一層分片的渲染結(jié)果還包括所述至少一層分片的HTML代碼,此步驟中需要將所述各個分片的 HTML代碼組合形成所述網(wǎng)頁的完整的第一層分片內(nèi)容。步驟306 將所述完整的第一層分片內(nèi)容在客戶端的網(wǎng)頁上向用戶進行展示。將組合成的完整的第一層分片的內(nèi)容在客戶端的網(wǎng)頁上向用戶進行展示,展示結(jié)果即是用戶看到的網(wǎng)頁內(nèi)容。本實施例中,可以在對網(wǎng)頁頁面的分片嵌套緩存,同時在網(wǎng)頁頁面的分片進行嵌套緩存時還能夠遞歸地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網(wǎng)頁內(nèi)容, 彌補了現(xiàn)有技術(shù)的一項空白。實施例三參考圖6,示出了本申請一種頁面緩存的處理方法實施例三的流程圖,本實施例可以理解為將本申請的頁面緩存的處理方法應(yīng)用于實際中的一個具體例子,可以包括以下步驟步驟601 當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分
片fn息。步驟602 從配置服務(wù)器中查詢所述第一層分片的緩存信息,所述緩存信息包括分片是否需要緩存的信息,以及需要緩存的分片的緩存時間長度信息。步驟603 依據(jù)所述第一層分片的緩存信息判斷第一層分片是否需要緩存,如果是,則進入步驟604 ;如果否,則進入步驟605。步驟604 將所述第一層分片的分片名稱和分片參數(shù)進行哈希運算以得到第一層分片的分片標(biāo)識ID ;依據(jù)所述分片ID從緩存系統(tǒng)中查找與該分片ID對應(yīng)的第一層分片的 HTML代碼,如果查找到該HTML代碼,則進入步驟606 ;如果沒有查找到對應(yīng)的HTML代碼,則進入步驟605。在本步驟中,雖然所述第一層分片是需要緩存的,但是所述緩存系統(tǒng)中卻可能查詢不到所述第一層分片對應(yīng)的HTML代碼。例如,當(dāng)所述第一層分片的緩存時間已到,所述緩存的第一層分片的內(nèi)容失效,這種情況下就可能查詢不到。其中,所述各個層的分片的緩存時間是預(yù)先設(shè)置好的,也可以存儲在配置服務(wù)器中。步驟605 由TOB服務(wù)器的業(yè)務(wù)系統(tǒng)負責(zé)查找該分片ID對應(yīng)的HTML代碼。步驟606 當(dāng)?shù)谝粚臃制枰彺娑彺嫦到y(tǒng)中卻不存在該分片的HTML代碼時, 將所述查找得到的HTML代碼及其與所述分片ID的對應(yīng)關(guān)系緩存至緩存系統(tǒng)中。在本步驟中,第一層分片需要緩存的HTML代碼卻沒有被存儲進緩存系統(tǒng)中,因此在執(zhí)行步驟605之后,可以將查找到的HTML代碼存儲到緩存系統(tǒng)中。而如果第一層分片不需要緩存,那么查找到該第一層分片的HTML代碼時,就無需存儲到緩存系統(tǒng)中。需要說明的是,步驟606雖然在步驟605之后,但是步驟606只有在第一層分片需要緩存的HTML代碼沒有被存儲進緩存系統(tǒng)時才執(zhí)行,因此步驟606并不是本實施例所必須的步驟。步驟607 依據(jù)預(yù)置的嵌套信息判斷所述第一層分片是否包括第二層分片;如果是,則對所述第二層分片進行遞歸渲染處理,所述遞歸渲染處理的方式為在待處理分片的上一層分片上生成所述待處理分片的占位符;依據(jù)所述待處理分片的分片名稱和分片參數(shù),獲取所述待處理分片的上一層分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符。步驟608 繼續(xù)判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞歸渲染處理,直至最后判斷得到第N層分片不再包括其他分片為止,所述N為大于3的整數(shù),如果否,則結(jié)束渲染過程。本實施例中的步驟607和步驟608在上一個實施例中都進行了詳細的描述,因為本實施例的實現(xiàn)方式與上一個實施例相同,因此此處不再贅述。步驟609 當(dāng)某個分片的內(nèi)容發(fā)生變化時,按照所述分片的分片名稱和分片參數(shù)進行哈希運算以得到該分片的分片ID。在本實施例中,所述步驟609和步驟610可以實現(xiàn)對緩存系統(tǒng)中所存儲的分片的 HTML代碼實現(xiàn)主動失效的功能。主動失效的含義為,即便某個分片的緩存時間還未過期,也可通過執(zhí)行步驟609和610將緩存系統(tǒng)中該分片對應(yīng)的HTML代碼刪除。
步驟610 按照所述分片ID,在緩存系統(tǒng)中查找并刪除與該ID對應(yīng)的HTML代碼。在實際應(yīng)用中,有一些應(yīng)用場景需要在分片的HTML代碼未到達預(yù)定的緩存時間就失效掉。以“掌柜信息”分片為例,假設(shè)“掌柜信息”分片的緩存時間是1天,但是如果還未到1天的時候,“掌柜信息”發(fā)生了變化,這時可更新緩存系統(tǒng)中保存的該分片的HTML代碼,將之前的緩存內(nèi)容進行刪除。需要說明的是,可以從步驟609和步驟610中看出,對分片的HTML代碼進行失效的時候,通過對分片名稱和分片參數(shù)進行哈希運算,并將計算得到的32位結(jié)果作為分片 ID,以刪除該分片ID在緩存系統(tǒng)中對應(yīng)的HTML代碼。步驟611 將所述分片除了 HTML代碼以外的其他響應(yīng)頭的值緩存至所述緩存系統(tǒng)中。在本申請實施例中,如果開啟了頭(HEDER)緩存,在向緩存系統(tǒng)新增某個分片的 HTML代碼時,有些業(yè)務(wù)需要將除了所述HTML代碼以外的其他響應(yīng)頭(RESPONE HEDER)中的信息也一起緩存,而如果只緩存了 HTML代碼不緩存響應(yīng)頭的值的話,可能會導(dǎo)致這些業(yè)務(wù)無法正常工作。例如,訪問“寶貝詳情”頁面的分片時,有相應(yīng)的語言版本信息,這些語言版本信息在響應(yīng)頭中保存的方式是“_lang = gbk”的方式,當(dāng)“寶貝詳情”頁面向客戶端返回結(jié)果的時候,對應(yīng)的“_lang = gbk”也將返回,這樣就可以在保證對于某個分片的HTML代碼能夠在不同的網(wǎng)頁中都相同。在本步驟實現(xiàn)的時候,預(yù)先配置好當(dāng)前使用的業(yè)務(wù)系統(tǒng)中響應(yīng)頭的哪些值需要緩存,該配置信息和分片的相關(guān)信息一起存放在緩存系統(tǒng)中。緩存之后,如果用戶請求的網(wǎng)頁頁面中的分片在緩存系統(tǒng)中對應(yīng)的也有響應(yīng)頭的值,則在返回HTML代碼的同時也返回對應(yīng)的響應(yīng)頭的值。在本實施例中,緩存系統(tǒng)可以采用分布式集群服務(wù)器來實現(xiàn),所述分布式集群服務(wù)器可以采用水平擴容的方式,增加充當(dāng)緩存系統(tǒng)的服務(wù)器臺數(shù),這樣就可以實現(xiàn)某一臺服務(wù)器存儲了分片的HTML代碼之后,其他的分布式集群服務(wù)器就不再進行存儲。同時采用本申請實施例的技術(shù)方案,可以實現(xiàn)分片之間不限層數(shù)的遞歸嵌套,同時也可以將每個分片的緩存時間設(shè)置為不相同的。同時本實施例中,如果存在頭緩存,在分片的HTML代碼進行緩存的同時也緩存某個分片的響應(yīng)頭中需要的值。實施例四參考圖7,示出了本申請一種頁面緩存的處理方法實施例四的流程圖,本實施例可以理解為將本申請的頁面緩存的處理方法應(yīng)用于實際中的一個具體例子,可以包括以下步驟步驟701 接收到針對網(wǎng)頁頁面的請求。步驟702 判斷所述請求的網(wǎng)頁頁面是否需要進行全頁緩存;如果需要,則進入步驟703 ;如果不需要,則進入步驟704。在本申請實施例中,所描述的是對網(wǎng)頁頁面的緩存處理過程。前述三個實施例所描述的技術(shù)方案是網(wǎng)頁頁面不需要緩存而網(wǎng)頁頁面的某些分片需要緩存的情況。本實施例中對所述網(wǎng)頁頁面是否需要緩存進行判斷,在當(dāng)前用戶請求的網(wǎng)頁頁面需要緩存時,在后續(xù)進行處理時,可直接對該網(wǎng)頁頁面進行渲染;而在當(dāng)前用戶請求的網(wǎng)頁頁面不需要緩存時,執(zhí)行對網(wǎng)頁頁面包括的各個分片的渲染過程。
步驟703 對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容。在本步驟中,通過對整個網(wǎng)頁頁面直接進行渲染,以獲得所述網(wǎng)頁頁面的HTML代碼。在實際應(yīng)用中,可以直接利用網(wǎng)頁頁面的頁面名稱和頁面參數(shù)進行哈希運算以得到32 位頁面ID,以該頁面ID到緩存系統(tǒng)中查找對應(yīng)的頁面的HTML代碼,如果查詢不到,則從數(shù)據(jù)庫中或者互聯(lián)網(wǎng)上查詢相應(yīng)的HTML代碼,并根據(jù)返回的查詢結(jié)果獲得所述網(wǎng)頁頁面的具體內(nèi)容。所述頁面參數(shù)是指WEB服務(wù)器依據(jù)用戶所請求的網(wǎng)頁傳遞給緩存處理裝置的參數(shù),例如,用戶查詢頁面,頁面的URL都是相同的,唯獨不同的就是參數(shù)不同,例如www. XXX. com/aaa. htm ? user = [x]&userName = [χ] 0步驟704 :對該網(wǎng)頁頁面執(zhí)行頁面解析過程,所述頁面解析過程具體包括獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程。所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。本步驟針對的是網(wǎng)頁頁面不需要緩存而其中的某些分片需要緩存的應(yīng)用場景,該應(yīng)用場景下的實現(xiàn)過程在前述三個實施例中已經(jīng)介紹得很詳細,在此不再贅述。在本實施例中,可以實現(xiàn)對網(wǎng)頁頁面緩存時的緩存處理,能夠?qū)崿F(xiàn)網(wǎng)頁頁面需要緩存而分片不緩存,或者網(wǎng)頁頁面不需要緩存而其中的某些分片需要嵌套緩存時相應(yīng)的渲染過程。實施例五參考圖8,其示出了本申請一種頁面緩存的處理方法實施例五的流程圖,本實施例可以理解為將本申請的頁面緩存的處理方法應(yīng)用于實際中的一個具體例子,可以包括以下步驟步驟801 接收到針對網(wǎng)頁頁面的請求。步驟802:獲取所述網(wǎng)頁頁面的URL,并依據(jù)所述URL查找預(yù)置的緩存信息,所述緩存信息包括所述網(wǎng)頁頁面是否需要進行全頁緩存的信息。如果需要進行全頁緩存,則進入步驟803,如果不需要進行全頁緩存,則進入步驟805。在本實施例中也可以由配置服務(wù)器對所述網(wǎng)頁頁面的緩存信息進行存儲,而配置服務(wù)器可以更新存儲的緩存信息,并向緩存處理裝置發(fā)送更新后的緩存信息;緩存處理裝置也可以從配置服務(wù)器中主動獲取相應(yīng)的緩存信息。所述緩存信息中包括所述網(wǎng)頁頁面是否需要進行全頁緩存的信息。步驟803 將所述網(wǎng)頁頁面的URL與頁面參數(shù)生成32位的頁面ID,進入步驟804。本步驟中需要將所述網(wǎng)頁頁面的URL與頁面參數(shù)采用哈希運算生成32位的頁面 ID。步驟804 依據(jù)所述頁面ID從緩存系統(tǒng)中查找對應(yīng)的頁面HTML代碼,進入步驟 806。以步驟803中得到的32位的頁面ID為關(guān)鍵詞從緩存系統(tǒng)中查詢對應(yīng)的頁面HTML 代碼。步驟805 由TOB服務(wù)器的業(yè)務(wù)系統(tǒng)負責(zé)查找該頁面ID對應(yīng)的HTML代碼。步驟806 將所述查找得到的HTML代碼及其與所述頁面ID的對應(yīng)關(guān)系緩存至緩存系統(tǒng)中。在本步驟中,如果網(wǎng)頁頁面需要緩存,但是卻在緩存系統(tǒng)中查詢不到,則在步驟 805之后繼續(xù)將查詢得到的HTML代碼及頁面ID的對應(yīng)關(guān)系,同時還有HTML代碼都存儲至緩存系統(tǒng)中。需要說明的是,在進行網(wǎng)頁頁面的緩存處理時,如果網(wǎng)頁頁面需要緩存,也可以在該網(wǎng)頁頁面的緩存時間還未到來,但是網(wǎng)頁頁面的HTML代碼又進行了更新的情況下,對所述網(wǎng)頁頁面進行主動失效。主動失效的含義及其實現(xiàn)方式在前述實施例中已經(jīng)介紹,在此不再贅述。對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。實施例六與上述本申請一種頁面緩存的處理方法實施例一所提供的方法相對應(yīng),參見圖 9,本申請還提供了一種頁面緩存的處理裝置實施例六,在本實施例中,該裝置具體可以包括獲取模塊901,用于當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第
一層分片信息。分片解析模塊902,用于依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息。組合拼裝模塊903,用于將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。本實施例中,可以實現(xiàn)當(dāng)網(wǎng)頁頁面的分片采用了嵌套緩存的方式時,能夠遞歸地獲取到所述網(wǎng)頁頁面各個分片的HTML代碼,最后組合拼裝成該網(wǎng)頁頁面的第一層分片,解決了現(xiàn)有技術(shù)中無法對網(wǎng)頁頁面的分片進行嵌套緩存的問題,以及分片進行嵌套緩存之后的遞歸渲染問題。實施例七與上述本申請一種頁面緩存的處理方法實施例二所提供的方法相對應(yīng), 參見圖10,本申請還提供了一種頁面緩存的處理裝置的優(yōu)選實施例七,在本實施例中,該裝置具體可以包括獲取URL子模塊1001,用于獲取所述網(wǎng)頁的統(tǒng)一資源定位符(URL);查詢模板子模塊1002,用于依據(jù)所述網(wǎng)頁的URL查詢得到該網(wǎng)頁的模板;獲得分片信息子模塊1003,用于獲得該網(wǎng)頁的模板中第一層分片對應(yīng)的分片名稱和分片參數(shù);獲取嵌套信息子模塊1004,用于依次依據(jù)第一層分片的分片名稱和分片參數(shù)獲取所述第一層分片的HTML代碼和嵌套信息。參考圖11所示,所述獲取嵌套信息子模塊1004具體可以包括查詢緩存信息子模塊1101,用于從配置服務(wù)器中查詢所述第一層分片的緩存信息,所述緩存信息包括分片是否需要緩存的信息,以及需要緩存的分片的緩存時間長度信息;判斷子模塊1102,用于在當(dāng)前時間還未到達所述緩存時間長度時,依據(jù)所述第一層分片的緩存信息判斷第一層分片是否需要緩存;第一查找HTML代碼子模塊1103,用于當(dāng)所述判斷子模塊1102的結(jié)果為是時,則將所述第一層分片的分片名稱和分片參數(shù)進行哈希運算以得到第一層分片的分片標(biāo)識ID ; 并依據(jù)所述分片ID從緩存系統(tǒng)中查找與該分片ID對應(yīng)的第一層分片的HTML代碼;第二查找HTML代碼子模塊1104,用于當(dāng)所述判斷子模塊1102的結(jié)果為否時,則觸發(fā)WEB服務(wù)器的業(yè)務(wù)系統(tǒng)查找該分片ID對應(yīng)的HTML代碼。遞歸渲染處理子模塊1005,用于依據(jù)所述嵌套信息判斷所述第一層分片是否包括第二層分片;如果是,則對所述第二層分片進行遞歸渲染處理,所述遞歸渲染處理的方式為在待處理分片的上一層分片上生成所述待處理分片的占位符;依據(jù)所述待處理分片的分片名稱和分片參數(shù),獲取所述待處理分片的上一層分片的HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符;并繼續(xù)判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞歸渲染處理,直至最后判斷得到第N層分片不再包括其他分片為止,所述N為大于3的整數(shù);如果第一層分片不包括第二層分片,則結(jié)束渲染過程??蛻舳苏故灸K1006,用于將所述完整的第一層分片內(nèi)容在客戶端的網(wǎng)頁上展
7J\ ο本實施例中,可以在對網(wǎng)頁頁面的分片嵌套緩存,同時在網(wǎng)頁頁面的分片進行嵌套緩存時還能夠遞歸地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網(wǎng)頁內(nèi)容, 彌補了現(xiàn)有技術(shù)的一項空白。實施例八與上述本申請一種頁面緩存的處理方法實施例三所提供的方法中的內(nèi)容相對應(yīng), 參見圖12,本申請還提供了一種頁面緩存的處理裝置的優(yōu)選實施例八,在本實施例中,該裝置具體還可以包括緩存模塊1201,用于將所述查找得到的HTML代碼及其與所述分片ID的對應(yīng)關(guān)系緩存至緩存系統(tǒng)中;哈希運算模塊1202,用于當(dāng)某個分片的內(nèi)容發(fā)生變化時,按照所述分片的分片名稱和分片參數(shù)進行哈希運算以得到該分片的分片ID ;刪除模塊1203,用于按照所述分片ID在緩存系統(tǒng)中查找并刪除與該ID對應(yīng)的 HTML代碼;所述緩存模塊1204,具體用于將所述分片的HTML代碼對應(yīng)的頭HEADER的值緩存至所述緩存系統(tǒng)中。實施例九與上述本申請一種頁面緩存的處理方法實施例四所提供的方法相對應(yīng),參見圖 13,本申請還提供了一種頁面緩存的處理裝置的優(yōu)選實施例九,在本實施例中,該裝置具體可以包括接收網(wǎng)頁頁面請求模塊1301,用于接收針對網(wǎng)頁頁面的請求;判斷模塊1302,用于判斷所述請求的網(wǎng)頁頁面是否需要進行全頁緩存;
直接渲染模塊1303,用于當(dāng)所述判斷模塊1302的結(jié)果為是時,對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;嵌套緩存處理裝置1304,用于當(dāng)所述判斷模塊1302的結(jié)果為否時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行解析過程, 所述解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。實施例十與上述本申請一種頁面緩存的處理方法實施例五所提供的方法相對應(yīng),參見圖 14,本申請還提供了一種頁面緩存的處理裝置的優(yōu)選實施例十,在本實施例中,該裝置具體可以包括接收網(wǎng)頁頁面請求模塊1301,用于接收針對網(wǎng)頁頁面的請求;所述判斷模塊1302具體可以包括獲取緩存信息子模塊1401,用于獲取所述網(wǎng)頁頁面的URL ;查找子模塊1402,用于依據(jù)所述URL查找預(yù)置的緩存信息,所述緩存信息包括所述網(wǎng)頁頁面是否需要進行全頁緩存的信息,以及所述網(wǎng)頁頁面的緩存時間長度信息。所述直接渲染模塊1303具體可以包括生成頁面ID模塊1403,用于在所述緩存時間長度還未到達時,將所述網(wǎng)頁頁面的 URL與頁面參數(shù)生成32位的頁面ID ;第一查找HTML代碼模塊1404,用于依據(jù)所述頁面ID從緩存系統(tǒng)中查找對應(yīng)的頁面HTML代碼。所述裝置具體還可以包括第二查找HTML代碼模塊1405,用于觸發(fā)TOB服務(wù)器的業(yè)務(wù)系統(tǒng)查找該頁面ID對應(yīng)的HTML代碼;緩存模塊1406,用于將所述查找得到的HTML代碼及其與所述頁面ID的對應(yīng)關(guān)系緩存至緩存系統(tǒng)中。實施例i^一與前述本申請?zhí)峁┑囊环N網(wǎng)頁頁面的分片嵌套緩存的處理方法和裝置相對應(yīng),本申請還提供了一種網(wǎng)頁頁面的分片嵌套緩存的處理系統(tǒng)實施例十,所述系統(tǒng)具體可以包括客戶端和TOB服務(wù)器所述客戶端,用于向WEB服務(wù)器請求網(wǎng)頁頁面;所述WEB服務(wù)器包括所述緩存處理裝置,所述緩存處理裝置包括獲取模塊,用于當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;分片解析模塊,用于依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;組合拼裝模塊,用于將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。
同時本申請還提供了一種網(wǎng)頁頁面的緩存處理系統(tǒng)實施例,所述系統(tǒng)具體可以包括客戶端和WEB服務(wù)器所述客戶端,用于向TOB服務(wù)器請求網(wǎng)頁頁面;所述WEB服務(wù)器包括所述緩存處理裝置,所述緩存處理裝置包括接收網(wǎng)頁頁面請求模塊,用于接收針對網(wǎng)頁頁面的請求;判斷模塊,用于判斷所述請求的網(wǎng)頁頁面是否需要進行全頁緩存;直接渲染模塊,用于當(dāng)所述判斷模塊的結(jié)果為是時,對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;嵌套緩存處理裝置,用于當(dāng)所述判斷模塊的結(jié)果為否時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行解析過程,所述解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同或相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,
并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。以上對本申請所提供的一種頁面緩存的處理方法、裝置及系統(tǒng)進行了詳細介紹, 本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。
19
權(quán)利要求
1.一種網(wǎng)頁頁面的分片嵌套緩存的處理方法,其特征在于,包括當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分片信息; 依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述分片解析過程的結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述網(wǎng)頁頁面包括的第一層分片信息,具體包括獲取所述網(wǎng)頁的統(tǒng)一資源定位符URL ;依據(jù)所述網(wǎng)頁的URL查詢得到該網(wǎng)頁的模板;獲得該網(wǎng)頁的模板中第一層分片對應(yīng)的分片名稱和分片參數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述依據(jù)所述第一層分片的嵌套信息對所述第一層分片進行渲染,具體包括依次依據(jù)第一層分片的分片名稱和分片參數(shù)獲取所述第一層分片的HTML代碼和嵌套 fn息;依據(jù)所述嵌套信息判斷所述第一層分片是否包括第二層分片;如果是,則對所述第二層分片進行遞歸渲染處理;繼續(xù)判斷所述第二層分片是否包括第三層分片,如果是,則對所述第三層分片進行所述遞歸渲染處理,直至最后判斷得到第N層分片不再包括其他分片為止,所述N為大于3的整數(shù),如果否,則結(jié)束渲染過程;所述遞歸渲染處理的方式為在待處理分片的上一層分片上生成所述待處理分片的占位符;依據(jù)所述待處理分片的分片名稱和分片參數(shù),獲取所述待處理分片的上一層分片的 HTML代碼;將所述待處理分片的HTML代碼替換所述待處理分片的占位符。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述依次依據(jù)第一層分片的分片名稱和分片參數(shù)獲取所述第一層分片的HTML代碼,具體包括從配置服務(wù)器中查詢所述第一層分片的緩存信息,所述緩存信息包括分片是否需要緩存的信息;依據(jù)所述第一層分片的緩存信息判斷第一層分片是否需要緩存,如果是,則將所述第一層分片的分片名稱和分片參數(shù)進行哈希運算以得到第一層分片的分片標(biāo)識ID ;并依據(jù)所述分片ID從緩存系統(tǒng)中查找與該分片ID對應(yīng)的第一層分片的HTML代碼; 如果否,則由WEB服務(wù)器的業(yè)務(wù)系統(tǒng)查找該分片ID對應(yīng)的HTML代碼。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,如果所述第一層分片需要緩存而所述緩存系統(tǒng)中不包括所述第一層分片的HTML代碼,還包括由WEB服務(wù)器的業(yè)務(wù)系統(tǒng)查找該分片ID對應(yīng)的HTML代碼;將所述查找得到的HTML代碼及其與所述分片ID的對應(yīng)關(guān)系緩存至緩存系統(tǒng)中。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述緩存信息還包括需要緩存的分片的緩存時間長度信息,則所述方法還包括當(dāng)在所述緩存時間長度內(nèi)某個分片的內(nèi)容發(fā)生變化時,按照所述分片的分片名稱和分片參數(shù)進行哈希運算以得到該分片的分片ID ;按照所述分片ID在緩存系統(tǒng)中查找并刪除與該ID對應(yīng)的HTML代碼。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,如果還包括頭緩存,則所述方法還包括 將所述分片的HTML代碼對應(yīng)的頭HEADER的值緩存至所述緩存系統(tǒng)中。
8.—種網(wǎng)頁頁面的緩存處理方法,其特征在于,包括 接收到針對網(wǎng)頁頁面的請求;判斷請求的所述網(wǎng)頁頁面是否需要進行全頁緩存,如果需要,則對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;如果不需要,則獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述分片解析過程的結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述判斷請求的所述網(wǎng)頁頁面是否需要進行全頁緩存,具體包括獲取所述網(wǎng)頁頁面的URL,并依據(jù)所述URL查找預(yù)置的緩存信息,所述緩存信息包括所述網(wǎng)頁頁面是否需要進行全頁緩存的信息,以及所述網(wǎng)頁頁面的緩存時間長度信息。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,對所述網(wǎng)頁頁面直接進行渲染,具體包括在所述緩存時間長度還未到達時,將所述網(wǎng)頁頁面的URL與頁面參數(shù)生成32位的頁面ID ;依據(jù)所述頁面ID從緩存系統(tǒng)中查找對應(yīng)的頁面HTML代碼。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,如果查詢不到HTML代碼,則所述方法還包括由WEB服務(wù)器中的業(yè)務(wù)系統(tǒng)查找該頁面ID對應(yīng)的HTML代碼;將所述查找得到的HTML代碼及其與所述頁面ID的對應(yīng)關(guān)系緩存至緩存系統(tǒng)中。
12.一種網(wǎng)頁頁面的分片嵌套緩存的處理裝置,其特征在于,該裝置包括獲取模塊,用于當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;分片解析模塊,用于依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程, 所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;組合拼裝模塊,用于將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。
13.—種網(wǎng)頁頁面的緩存處理裝置,其特征在于,該裝置包括 接收網(wǎng)頁頁面請求模塊,用于接收針對網(wǎng)頁頁面的請求;判斷模塊,用于判斷所述請求的網(wǎng)頁頁面是否需要進行全頁緩存; 直接渲染模塊,用于當(dāng)所述判斷模塊的結(jié)果為是時,對所述網(wǎng)頁頁面直接進行渲染,以獲取所述網(wǎng)頁頁面的內(nèi)容;嵌套緩存處理裝置,用于當(dāng)所述判斷模塊的結(jié)果為否時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行解析過程,所述解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述渲染的渲染結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。
全文摘要
本申請?zhí)峁┝艘环N網(wǎng)頁頁面的分片嵌套緩存的處理方法和裝置,所述包括當(dāng)接收到針對網(wǎng)頁頁面的請求時,獲取所述網(wǎng)頁頁面包括的第一層分片信息;依據(jù)所述第一層分片信息依次對第一層分片執(zhí)行分片解析過程,所述分片解析過程具體為依據(jù)所述第一層分片的預(yù)置的嵌套信息對所述第一層分片進行渲染;所述嵌套信息為當(dāng)前分片是否包括其他分片的信息;將所述分片解析過程的結(jié)果組合成所述網(wǎng)頁的完整的第一層分片內(nèi)容。本申請實施例可以在對網(wǎng)頁頁面的分片嵌套緩存,同時在網(wǎng)頁頁面的分片進行嵌套緩存時還能夠遞歸地獲取到各個分片的HTML代碼,從而向用戶展示出完整的網(wǎng)頁內(nèi)容,彌補了現(xiàn)有技術(shù)的一項空白。
文檔編號G06F17/30GK102331985SQ20101022518
公開日2012年1月25日 申請日期2010年7月12日 優(yōu)先權(quán)日2010年7月12日
發(fā)明者岳旭強, 董旗宇 申請人:阿里巴巴集團控股有限公司