動(dòng)態(tài)頁面靜態(tài)化的裝置和方法
【專利摘要】本發(fā)明提供了一種動(dòng)態(tài)頁面靜態(tài)化的裝置,包括:請(qǐng)求接收單元,用于接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理;請(qǐng)求執(zhí)行單元,用于收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求;執(zhí)行結(jié)果展現(xiàn)單元,用于執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。本發(fā)明還提供了一種動(dòng)態(tài)頁面靜態(tài)化的方法。通過本發(fā)明的技術(shù)方案,可以在現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化定義語言支持的描述定義方式基礎(chǔ)上,充分利用單對(duì)象類型元數(shù)據(jù)和文檔描述類型完成多對(duì)象類型元數(shù)據(jù)的動(dòng)態(tài)頁面靜態(tài)化,建立多對(duì)象類型元數(shù)據(jù)參與的面向?qū)ο箢愓Z言動(dòng)態(tài)頁面靜態(tài)化的通用、統(tǒng)一靜態(tài)化思路。
【專利說明】動(dòng)態(tài)頁面靜態(tài)化的裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體地,涉及一種動(dòng)態(tài)頁面靜態(tài)化的裝置和一種動(dòng)態(tài)頁面靜態(tài)化的方法。
[0002]
【背景技術(shù)】
[0003]隨著互聯(lián)網(wǎng)越來越普及,Web應(yīng)用產(chǎn)品越來越多,動(dòng)態(tài)頁面技術(shù)也越來越成熟,相關(guān)的動(dòng)態(tài)Web頁面也越來越多,在Web形態(tài)的ERP產(chǎn)品中有眾多的動(dòng)態(tài)頁面(數(shù)據(jù)可能實(shí)時(shí)變化的頁面),為了提高Web應(yīng)用的性能以及提高頁面訪問速度,需要將Web應(yīng)用中的動(dòng)態(tài)頁面靜態(tài)化。
[0004]現(xiàn)有技術(shù)實(shí)現(xiàn)頁面靜態(tài)化分為兩種:
(1)非運(yùn)行期預(yù)先生成靜態(tài)頁面的動(dòng)態(tài)頁面靜態(tài)化
該方法,是由Web應(yīng)用站點(diǎn)管理人員在發(fā)布Web應(yīng)用時(shí),同時(shí)點(diǎn)擊發(fā)布生成靜態(tài)頁面,這樣用戶訪問時(shí)訪問的就是已經(jīng)生成好的靜態(tài)頁面,由于在Web應(yīng)用維護(hù)時(shí)就生成了靜態(tài)頁面,所以稱為非運(yùn)行期預(yù)先生成的頁面靜態(tài)化。
[0005]⑵運(yùn)行期后臺(tái)模擬動(dòng)態(tài)頁面靜態(tài)化
與上述非運(yùn)行期預(yù)先生成靜態(tài)頁面方法的區(qū)別在于:應(yīng)用程序在后臺(tái)接管頁面請(qǐng)求,代碼判斷如果沒有已存在的靜態(tài)文件則生成靜態(tài)文件,如果有則訪問靜態(tài)文件。例如:專利號(hào)為200710304143、發(fā)明名稱為《一種實(shí)現(xiàn)動(dòng)態(tài)頁面靜態(tài)化的方法和系統(tǒng)》的專利中提供了一種基于服務(wù)器端嵌入(SSI)技術(shù)以及統(tǒng)一資源定位符(URL)重寫轉(zhuǎn)向(Rewrite)技術(shù)的動(dòng)態(tài)頁面靜態(tài)化方法,通過代碼實(shí)現(xiàn)SSI及Rewrite達(dá)到當(dāng)靜態(tài)頁面不存在時(shí)動(dòng)態(tài)生成,存在時(shí)訪問該靜態(tài)界面。
[0006]上述兩種方式在頁面內(nèi)容簡(jiǎn)單不變的情況下非常適用,但是對(duì)于一個(gè)復(fù)雜的Web應(yīng)用產(chǎn)品(比如ERP產(chǎn)品,包含財(cái)務(wù)、供應(yīng)鏈、制造、CRM等眾多包含表單錄入數(shù)據(jù)的應(yīng)用),并且Web應(yīng)用中頁面的數(shù)據(jù)變化非常頻繁時(shí),達(dá)不到動(dòng)態(tài)頁面靜態(tài)化所要的效果。
[0007]現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化一般是在非運(yùn)行期預(yù)先生成靜態(tài)頁面或者運(yùn)行期后臺(tái)模擬生成靜態(tài)頁面。
[0008]現(xiàn)有技術(shù)方案建立流程如下圖:
⑴非運(yùn)行期預(yù)先生成靜態(tài)頁面的動(dòng)態(tài)頁面靜態(tài)化流程圖,圖1。
[0009]⑵運(yùn)行期后臺(tái)模擬動(dòng)態(tài)頁面靜態(tài)化流程圖,見圖2。
[0010]現(xiàn)有技術(shù)方案中,動(dòng)態(tài)頁面靜態(tài)化存在下面幾個(gè)問題:(1)對(duì)于以前生成的靜態(tài)化頁面的內(nèi)容很難修改,(2)用戶在訪問所述靜態(tài)化頁面時(shí),新的數(shù)據(jù)或頁面修改無法生效。
[0011]因此,需要一種新的動(dòng)態(tài)頁面靜態(tài)化技術(shù),可以在現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化定義語言支持的描述定義方式基礎(chǔ)上,充分利用單對(duì)象類型元數(shù)據(jù)和文檔描述類型完成多對(duì)象類型元數(shù)據(jù)的動(dòng)態(tài)頁面靜態(tài)化,建立多對(duì)象類型元數(shù)據(jù)參與的面向?qū)ο箢愓Z言動(dòng)態(tài)頁面靜態(tài)化的通用、統(tǒng)一靜態(tài)化思路。
[0012]
【發(fā)明內(nèi)容】
[0013]本發(fā)明正是基于上述問題,提出了一種新的動(dòng)態(tài)頁面靜態(tài)化技術(shù),可以在現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化定義語言支持的描述定義方式基礎(chǔ)上,充分利用單對(duì)象類型元數(shù)據(jù)和文檔描述類型完成多對(duì)象類型元數(shù)據(jù)的動(dòng)態(tài)頁面靜態(tài)化,建立多對(duì)象類型元數(shù)據(jù)參與的面向?qū)ο箢愓Z言動(dòng)態(tài)頁面靜態(tài)化的通用、統(tǒng)一靜態(tài)化思路。
[0014]有鑒于此,本發(fā)明提出了一種動(dòng)態(tài)頁面靜態(tài)化的裝置,包括:請(qǐng)求接收單元,用于接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理;請(qǐng)求執(zhí)行單元,用于收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求;執(zhí)行結(jié)果展現(xiàn)單元,用于執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。在該技術(shù)方案中,可以通過服務(wù)器端對(duì)用戶發(fā)送請(qǐng)求的接管和重定向處理,將動(dòng)態(tài)頁面分離成靜態(tài)HTML文件(布局、控件、樣式)和動(dòng)態(tài)數(shù)據(jù)兩部分,對(duì)不同請(qǐng)求進(jìn)行分類處理,可以應(yīng)對(duì)數(shù)據(jù)不斷變化時(shí),非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0015]在上述技術(shù)方案中,優(yōu)選地,所述請(qǐng)求接收單元,具體包括:服務(wù)器接收請(qǐng)求模塊,用于接收用戶發(fā)送的請(qǐng)求;請(qǐng)求接管及重定向模塊,用于應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊;和/或,所述請(qǐng)求執(zhí)行單元,具體包括:請(qǐng)求類型判斷模塊,用于收到請(qǐng)求后,判斷當(dāng)前請(qǐng)求的類型;請(qǐng)求類型判斷結(jié)果執(zhí)行模塊,用于根據(jù)對(duì)當(dāng)前請(qǐng)求類型的判斷結(jié)果,執(zhí)行相應(yīng)的請(qǐng)求;和/或,所述執(zhí)行結(jié)果展現(xiàn)單元,具體包括:獲取動(dòng)態(tài)數(shù)據(jù)觸發(fā)模塊,用于獲取靜態(tài)布局文件后,返回靜態(tài)布局文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行相關(guān)代碼,觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)的操作;緩存數(shù)據(jù)判斷模塊,用于客戶端程序判斷是否存在數(shù)據(jù)的緩存;緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊,用于根據(jù)緩存數(shù)據(jù)判斷結(jié)果,對(duì)相應(yīng)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行處理。在該技術(shù)方案中,通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,可以從根本上解決同一頁面數(shù)據(jù)不斷變化的場(chǎng)景。
[0016]在上述技術(shù)方案中,優(yōu)選地,所述請(qǐng)求類型判斷結(jié)果執(zhí)行模塊,進(jìn)一步包括:獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊,用于在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);以及,將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,獲取布局文件的請(qǐng)求執(zhí)行子模塊,用于在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;以及根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求。在該技術(shù)方案中,可以在實(shí)現(xiàn)傳統(tǒng)動(dòng)態(tài)頁面靜態(tài)化基礎(chǔ)上,兼顧實(shí)現(xiàn)頁面數(shù)據(jù)頻繁變化時(shí)的頁面靜態(tài)化,并且將頁面布局元數(shù)據(jù)化以及做到了頁面布局的緩存。
[0017]在上述技術(shù)方案中,優(yōu)選地,所述獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊,更進(jìn)一步包括:請(qǐng)求邏輯獲取及數(shù)據(jù)返回子模塊,用于在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);數(shù)據(jù)展現(xiàn)及結(jié)果輸出子模塊,用于將將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,所述獲取布局文件的請(qǐng)求執(zhí)行子模塊,更進(jìn)一步包括:靜態(tài)布局文件判斷子模塊,用于在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊,用于根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求;再進(jìn)一步地,所述靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊,再進(jìn)一步包括:靜態(tài)布局文件獲取及結(jié)果輸出子模塊,用于在存在靜態(tài)布局文件,獲取靜態(tài)布局文件,并將獲取的靜態(tài)布局文件展現(xiàn)到頁面中;和/或,所述靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊,再進(jìn)一步還包括:靜態(tài)布局文件生成及緩存子模塊,用于在不存在靜態(tài)布局文件,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,生成后緩存靜態(tài)布局文件,并將生成的緩存靜態(tài)布局文件展現(xiàn)到頁面中。在該技術(shù)方案中,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,該靜態(tài)布局文件是元數(shù)據(jù),是動(dòng)態(tài)頁面布局的一種抽象描述,可以存儲(chǔ)在數(shù)據(jù)庫中,有利于實(shí)現(xiàn)非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0018]在上述技術(shù)方案中,優(yōu)選地,所述緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊,進(jìn)一步包括:頁面展現(xiàn)及結(jié)果輸出子模塊,用于在存在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)展現(xiàn)到頁面中,并與相應(yīng)請(qǐng)求的執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,所述緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊,進(jìn)一步還包括:獲取數(shù)據(jù)請(qǐng)求重新發(fā)送子模塊,用于在不存在緩存數(shù)據(jù)時(shí),返回請(qǐng)求接收單元,向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,等待服務(wù)器端對(duì)該獲取數(shù)據(jù)請(qǐng)求的接管和重定向處理。在該技術(shù)方案中,可以通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,且能通過頁面實(shí)時(shí)顯示相應(yīng)請(qǐng)求的執(zhí)行情況。
[0019]根據(jù)本發(fā)明的又一個(gè)方面,還提出了一種動(dòng)態(tài)頁面靜態(tài)化的方法,包括:步驟202:服務(wù)器端接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理;步驟204:服務(wù)器控制模塊收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求;步驟206:服務(wù)器端程序執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。在該技術(shù)方案中,可以通過服務(wù)器端對(duì)用戶發(fā)送請(qǐng)求的接管和重定向處理,將動(dòng)態(tài)頁面分離成靜態(tài)HTML文件(布局、控件、樣式)和動(dòng)態(tài)數(shù)據(jù)兩部分,對(duì)不同請(qǐng)求進(jìn)行分類處理,可以應(yīng)對(duì)數(shù)據(jù)不斷變化時(shí),非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0020]在上述技術(shù)方案中,優(yōu)選地,所述步驟202,具體包括:步驟302:服務(wù)器端接收用戶發(fā)送的請(qǐng)求;步驟304:服務(wù)器端應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊;和/或,所述步驟204,具體包括:步驟402:服務(wù)器控制模塊收到請(qǐng)求后,判斷當(dāng)前請(qǐng)求的類型;步驟404:根據(jù)對(duì)當(dāng)前請(qǐng)求類型的判斷結(jié)果,執(zhí)行相應(yīng)的請(qǐng)求;和/或,所述步驟206,具體包括:步驟902:獲取靜態(tài)布局文件后,返回靜態(tài)布局文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行相關(guān)代碼,觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)的操作;步驟904:客戶端程序判斷是否存在數(shù)據(jù)的緩存;步驟906:根據(jù)緩存數(shù)據(jù)判斷結(jié)果,對(duì)相應(yīng)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行處理。在該技術(shù)方案中,通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,可以從根本上解決同一頁面數(shù)據(jù)不斷變化的場(chǎng)景。
[0021]在上述技術(shù)方案中,優(yōu)選地,所述步驟404,進(jìn)一步包括:步驟502:在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);以及,步驟504:將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,所述步驟404,進(jìn)一步還包括:步驟602:在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;以及,步驟604:根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求。在該技術(shù)方案中,可以在實(shí)現(xiàn)傳統(tǒng)動(dòng)態(tài)頁面靜態(tài)化基礎(chǔ)上,兼顧實(shí)現(xiàn)頁面數(shù)據(jù)頻繁變化時(shí)的頁面靜態(tài)化,并且將頁面布局元數(shù)據(jù)化以及做到了頁面布局的緩存。
[0022]在上述技術(shù)方案中,優(yōu)選地,所述步驟604,再進(jìn)一步包括:步驟702:在存在靜態(tài)布局文件,獲取靜態(tài)布局文件,并將獲取的靜態(tài)布局文件展現(xiàn)到頁面中;和/或,所述步驟604,再進(jìn)一步還包括:步驟802:在不存在靜態(tài)布局文件,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,生成后緩存靜態(tài)布局文件,并將生成的緩存靜態(tài)布局文件展現(xiàn)到頁面中。在該技術(shù)方案中,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,該靜態(tài)布局文件是元數(shù)據(jù),是動(dòng)態(tài)頁面布局的一種抽象描述,可以存儲(chǔ)在數(shù)據(jù)庫中,有利于實(shí)現(xiàn)非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0023]在上述技術(shù)方案中,優(yōu)選地,所述步驟906,進(jìn)一步包括:步驟1002:在存在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)展現(xiàn)到頁面中,并與相應(yīng)請(qǐng)求的執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,所述步驟906,進(jìn)一步還包括:步驟1102:在不存在緩存數(shù)據(jù)時(shí),返回請(qǐng)求接收單元,向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,等待服務(wù)器端對(duì)該獲取數(shù)據(jù)請(qǐng)求的接管和重定向處理。在該技術(shù)方案中,可以通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,且能通過頁面實(shí)時(shí)顯示相應(yīng)請(qǐng)求的執(zhí)行情況。
[0024]通過以上技術(shù)方案,可以在現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化定義語言支持的描述定義方式基礎(chǔ)上,充分利用單對(duì)象類型元數(shù)據(jù)和文檔描述類型完成多對(duì)象類型元數(shù)據(jù)的動(dòng)態(tài)頁面靜態(tài)化,建立多對(duì)象類型元數(shù)據(jù)參與的面向?qū)ο箢愓Z言動(dòng)態(tài)頁面靜態(tài)化的通用、統(tǒng)一靜態(tài)化思路。
[0025]
【專利附圖】
【附圖說明】
[0026]圖1示出了現(xiàn)有的非運(yùn)行期預(yù)先生成靜態(tài)頁面的動(dòng)態(tài)頁面靜態(tài)化流程圖;
圖2示出了現(xiàn)有的運(yùn)行期后臺(tái)模擬動(dòng)態(tài)頁面靜態(tài)化流程圖;
圖3示出了根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)頁面靜態(tài)化的裝置的框圖;
圖4示出了根據(jù)本發(fā)明的實(shí)施例的獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊的原理示意圖;
圖5示出了根據(jù)本發(fā)明的實(shí)施例的獲取布局的請(qǐng)求執(zhí)行子模塊的原理示意圖;
圖6示出了根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)頁面靜態(tài)化的方法的流程圖;
圖7示出了根據(jù)本發(fā)明的實(shí)施例的請(qǐng)求接收單元的流程圖;
圖8示出了根據(jù)本發(fā)明的實(shí)施例的請(qǐng)求執(zhí)行單元的流程圖;
圖9示出了根據(jù)本發(fā)明的實(shí)施例的執(zhí)行結(jié)果展現(xiàn)單元的流程圖;
圖10示出了根據(jù)本發(fā)明的實(shí)施例動(dòng)態(tài)頁面靜態(tài)化的方法的詳細(xì)流程圖。
[0027]
【具體實(shí)施方式】
[0028]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0029]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實(shí)施例的限制。
[0030]圖3示出了根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)頁面靜態(tài)化的裝置的框圖。
[0031]如圖3所示,根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)頁面靜態(tài)化的裝置100,包括:請(qǐng)求接收單元102,用于接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理;請(qǐng)求執(zhí)行單元104,用于收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求;執(zhí)行結(jié)果展現(xiàn)單元106,用于執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。在該技術(shù)方案中,可以通過服務(wù)器端對(duì)用戶發(fā)送請(qǐng)求的接管和重定向處理,將動(dòng)態(tài)頁面分離成靜態(tài)HTML文件(布局、控件、樣式)和動(dòng)態(tài)數(shù)據(jù)兩部分,對(duì)不同請(qǐng)求進(jìn)行分類處理,可以應(yīng)對(duì)數(shù)據(jù)不斷變化時(shí),非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0032]在上述技術(shù)方案中,優(yōu)選地,請(qǐng)求接收單元102,具體包括:服務(wù)器接收請(qǐng)求模塊1022,用于接收用戶發(fā)送的請(qǐng)求;請(qǐng)求接管及重定向模塊1024,用于應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊;和/或,請(qǐng)求執(zhí)行單元104,具體包括:請(qǐng)求類型判斷模塊1042,用于收到請(qǐng)求后,判斷當(dāng)前請(qǐng)求的類型;請(qǐng)求類型判斷結(jié)果執(zhí)行模1044,用于根據(jù)對(duì)當(dāng)前請(qǐng)求類型的判斷結(jié)果,執(zhí)行相應(yīng)的請(qǐng)求;和/或,執(zhí)行結(jié)果展現(xiàn)單元106,具體包括:獲取動(dòng)態(tài)數(shù)據(jù)觸發(fā)模塊1062,用于獲取靜態(tài)布局文件后,返回靜態(tài)布局文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行相關(guān)代碼,觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)的操作;緩存數(shù)據(jù)判斷模塊1064,用于客戶端程序判斷是否存在數(shù)據(jù)的緩存;緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊1066,用于根據(jù)緩存數(shù)據(jù)判斷結(jié)果,對(duì)相應(yīng)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行處理。在該技術(shù)方案中,通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,可以從根本上解決同一頁面數(shù)據(jù)不斷變化的場(chǎng)景。
[0033]在上述技術(shù)方案中,優(yōu)選地,請(qǐng)求類型判斷結(jié)果執(zhí)行模塊1044,進(jìn)一步包括:獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊10442,用于在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);以及,將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,獲取布局文件的請(qǐng)求執(zhí)行子模塊10444,用于在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;以及根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求。在該技術(shù)方案中,可以在實(shí)現(xiàn)傳統(tǒng)動(dòng)態(tài)頁面靜態(tài)化基礎(chǔ)上,兼顧實(shí)現(xiàn)頁面數(shù)據(jù)頻繁變化時(shí)的頁面靜態(tài)化,并且將頁面布局元數(shù)據(jù)化以及做到了頁面布局的緩存。
[0034]在上述技術(shù)方案中,優(yōu)選地,如圖4所示,獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊10442,更進(jìn)一步包括:請(qǐng)求邏輯獲取及數(shù)據(jù)返回子模塊104422,用于在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);數(shù)據(jù)展現(xiàn)及結(jié)果輸出子模塊104424,用于將將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,如圖5所示,獲取布局文件的請(qǐng)求執(zhí)行子模塊10444,更進(jìn)一步包括:靜態(tài)布局文件判斷子模塊104442,用于在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊104444,用于根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求;再進(jìn)一步地,靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊104444,再進(jìn)一步包括:靜態(tài)布局文件獲取及結(jié)果輸出子模塊1044442,用于在存在靜態(tài)布局文件,獲取靜態(tài)布局文件,并將獲取的靜態(tài)布局文件展現(xiàn)到頁面中;和/或,靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊104444,再進(jìn)一步還包括:靜態(tài)布局文件生成及緩存子模塊1044444,用于在不存在靜態(tài)布局文件,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,生成后緩存靜態(tài)布局文件,并將生成的緩存靜態(tài)布局文件展現(xiàn)到頁面中。在該技術(shù)方案中,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,該靜態(tài)布局文件是元數(shù)據(jù),是動(dòng)態(tài)頁面布局的一種抽象描述,可以存儲(chǔ)在數(shù)據(jù)庫中,有利于實(shí)現(xiàn)非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0035]在上述技術(shù)方案中,優(yōu)選地,緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊1066,進(jìn)一步包括:頁面展現(xiàn)及結(jié)果輸出子模塊10662,用于在存在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)展現(xiàn)到頁面中,并與相應(yīng)請(qǐng)求的執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊1066,進(jìn)一步還包括:獲取數(shù)據(jù)請(qǐng)求重新發(fā)送子模塊10664,用于在不存在緩存數(shù)據(jù)時(shí),返回請(qǐng)求接收單元,向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,等待服務(wù)器端對(duì)該獲取數(shù)據(jù)請(qǐng)求的接管和重定向處理。在該技術(shù)方案中,可以通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,且能通過頁面實(shí)時(shí)顯示相應(yīng)請(qǐng)求的執(zhí)行情況。
[0036]圖6示出了根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)頁面靜態(tài)化的方法的流程圖。
[0037]如圖6所示,根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)頁面靜態(tài)化的方法,包括:步驟202:服務(wù)器端接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理;步驟204:服務(wù)器控制模塊收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求;步驟206:月艮務(wù)器端程序執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。在該技術(shù)方案中,可以通過服務(wù)器端對(duì)用戶發(fā)送請(qǐng)求的接管和重定向處理,將動(dòng)態(tài)頁面分離成靜態(tài)HTML文件(布局、控件、樣式)和動(dòng)態(tài)數(shù)據(jù)兩部分,對(duì)不同請(qǐng)求進(jìn)行分類處理,可以應(yīng)對(duì)數(shù)據(jù)不斷變化時(shí),非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0038]在上述技術(shù)方案中,優(yōu)選地,如圖7所示步驟202,具體包括:步驟302:服務(wù)器端接收用戶發(fā)送的請(qǐng)求;步驟304:服務(wù)器端應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊;和/或,如圖8所示,步驟204,具體包括:步驟402:服務(wù)器控制模塊收到請(qǐng)求后,判斷當(dāng)前請(qǐng)求的類型;步驟404:根據(jù)對(duì)當(dāng)前請(qǐng)求類型的判斷結(jié)果,執(zhí)行相應(yīng)的請(qǐng)求;和/或,如圖9所示,步驟206,具體包括:步驟902:獲取靜態(tài)布局文件后,返回靜態(tài)布局文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行相關(guān)代碼,觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)的操作;步驟904:客戶端程序判斷是否存在數(shù)據(jù)的緩存;步驟906:根據(jù)緩存數(shù)據(jù)判斷結(jié)果,對(duì)相應(yīng)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行處理。在該技術(shù)方案中,通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,可以從根本上解決同一頁面數(shù)據(jù)不斷變化的場(chǎng)景。
[0039]在上述技術(shù)方案中,優(yōu)選地,步驟404,進(jìn)一步包括:步驟502:在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);以及,步驟504:將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,步驟404,進(jìn)一步還包括:步驟602:在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;以及,步驟604:根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求。在該技術(shù)方案中,可以在實(shí)現(xiàn)傳統(tǒng)動(dòng)態(tài)頁面靜態(tài)化基礎(chǔ)上,兼顧實(shí)現(xiàn)頁面數(shù)據(jù)頻繁變化時(shí)的頁面靜態(tài)化,并且將頁面布局元數(shù)據(jù)化以及做到了頁面布局的緩存。
[0040]在上述技術(shù)方案中,優(yōu)選地,步驟604,再進(jìn)一步包括:步驟702:在存在靜態(tài)布局文件,獲取靜態(tài)布局文件,并將獲取的靜態(tài)布局文件展現(xiàn)到頁面中;和/或,步驟604,再進(jìn)一步還包括:步驟802:在不存在靜態(tài)布局文件,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,生成后緩存靜態(tài)布局文件,并將生成的緩存靜態(tài)布局文件展現(xiàn)到頁面中。在該技術(shù)方案中,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,該靜態(tài)布局文件是元數(shù)據(jù),是動(dòng)態(tài)頁面布局的一種抽象描述,可以存儲(chǔ)在數(shù)據(jù)庫中,有利于實(shí)現(xiàn)非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0041]在上述技術(shù)方案中,優(yōu)選地,步驟906,進(jìn)一步包括:步驟1002:在存在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)展現(xiàn)到頁面中,并與相應(yīng)請(qǐng)求的執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);和/或,步驟906,進(jìn)一步還包括:步驟1102:在不存在緩存數(shù)據(jù)時(shí),返回請(qǐng)求接收單元,向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,等待服務(wù)器端對(duì)該獲取數(shù)據(jù)請(qǐng)求的接管和重定向處理。在該技術(shù)方案中,可以通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化,且能通過頁面實(shí)時(shí)顯示相應(yīng)請(qǐng)求的執(zhí)行情況。
[0042]本發(fā)明的技術(shù)方案,涉及動(dòng)態(tài)頁面靜態(tài)化處理技術(shù),尤其在動(dòng)態(tài)Web頁面靜態(tài)化領(lǐng)域有很廣泛的應(yīng)用。
[0043]本發(fā)明的技術(shù)方案,要解決的技術(shù)問題有:⑴頁面布局控件與數(shù)據(jù)模型交互、動(dòng)態(tài)數(shù)據(jù)的分離;⑵將頁面布局控件、數(shù)據(jù)模型交互靜態(tài)化;(3)客戶端自動(dòng)填充動(dòng)態(tài)數(shù)據(jù)。
[0044]本發(fā)明的技術(shù)方案,將動(dòng)態(tài)頁面分離成靜態(tài)HTML文件(布局、控件、樣式)和動(dòng)態(tài)數(shù)據(jù)兩部分。本發(fā)明的技術(shù)方案,基于頁面與模型分離技術(shù),將動(dòng)態(tài)頁面的頁面部分和數(shù)據(jù)、邏輯交互部分進(jìn)行分離。本發(fā)明的技術(shù)方案,首先通過用元數(shù)據(jù)描述頁面布局、頁面數(shù)據(jù)模型,并存儲(chǔ)于數(shù)據(jù)庫中,再通過專用的代碼編譯引擎,根據(jù)元數(shù)據(jù)、頁面布局模版、頁面中用到的組件模版及數(shù)據(jù)模型模版生成對(duì)應(yīng)的純靜態(tài)的頁面文件、靜態(tài)數(shù)據(jù)模型文件(不包含動(dòng)態(tài)數(shù)據(jù))并保存在緩存目錄下,具體的動(dòng)態(tài)數(shù)據(jù)則通過擴(kuò)展代碼加載。由于生成的靜態(tài)文件不包含數(shù)據(jù)部分,頁面、數(shù)據(jù)模型部分實(shí)現(xiàn)了靜態(tài)化;由于使用的專用的代碼編譯引擎,直接將元數(shù)據(jù)編譯成靜態(tài)文件并緩存,這使得頁面及數(shù)據(jù)模型文件生成后靜態(tài)化。
[0045]本發(fā)明的技術(shù)方案,建立流程的過程如圖10所示,具體流程如下:
⑴本發(fā)明的技術(shù)方案,首先接收用戶請(qǐng)求,服務(wù)器收到請(qǐng)求,并執(zhí)行⑵;
⑵服務(wù)器端應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊,執(zhí)行⑶;
⑶服務(wù)器控制模塊收到請(qǐng)求后,判斷當(dāng)前是否獲取數(shù)據(jù)的請(qǐng)求,如果是則執(zhí)行⑶,否則執(zhí)行⑷;
⑷如果不是獲取數(shù)據(jù)的請(qǐng)求,則是獲取布局文件的請(qǐng)求,由服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件,如果不存在則執(zhí)行(5);若存在,則獲取靜態(tài)布局文件并執(zhí)行(6);
(5)如果不存在靜態(tài)布局文件,則根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件(元數(shù)據(jù),是動(dòng)態(tài)頁面布局的一種抽象描述,存儲(chǔ)在數(shù)據(jù)庫中),生成后緩存靜態(tài)布局文件,并執(zhí)行(6)。
[0046](6)獲取靜態(tài)布局文件后,返回文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行代碼會(huì)觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)操作,由客戶端程序判斷是否存在數(shù)據(jù)的緩存,如果存在則執(zhí)行(9),不存在緩存數(shù)據(jù)則執(zhí)行(7); ⑴如果不存在緩存數(shù)據(jù),則向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,并執(zhí)行⑵;
⑶服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù)后,執(zhí)行⑶;
⑶將數(shù)據(jù)展現(xiàn)到頁面中,與(6)步驟的呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn);與現(xiàn)有技術(shù)方案相比,本發(fā)明的技術(shù)方案,在實(shí)現(xiàn)傳統(tǒng)動(dòng)態(tài)頁面靜態(tài)化基礎(chǔ)上,兼顧實(shí)現(xiàn)了頁面數(shù)據(jù)頻繁變化時(shí)的頁面靜態(tài)化,并且將頁面布局元數(shù)據(jù)化以及做到了頁面布局的緩存。
[0047]在專利(申請(qǐng))號(hào)為201010288293.X的專利申請(qǐng)中,提供了一種動(dòng)態(tài)網(wǎng)頁的靜態(tài)化信息處理方法,包括:101.服務(wù)器讀取自身系統(tǒng)配置參數(shù);102.服務(wù)器根據(jù)系統(tǒng)配置參數(shù),判定系統(tǒng)是否需要登錄才能訪問,若為是,執(zhí)行步驟103 ;若為否,則執(zhí)行步驟105 ;103.根據(jù)系統(tǒng)配置參數(shù)中的用戶名和密碼進(jìn)行模擬用戶登錄;104.判定模擬用戶登錄是否成功,若為是,則執(zhí)行步驟105 ;若為否,則結(jié)束;105.遍歷系統(tǒng)中所有已配置的靜態(tài)化配置bean,啟動(dòng)靜態(tài)化流程;106.判定是否存在已配置的靜態(tài)化配置bean,若為是,則執(zhí)行步驟107 ;若否,則結(jié)束;等步驟。該技術(shù)方案雖然具有良好的靈活性和可擴(kuò)展性,適用于網(wǎng)站訪問高并發(fā)時(shí)的壓力分擔(dān),以增強(qiáng)企業(yè)應(yīng)用的健壯性和負(fù)載能力等優(yōu)點(diǎn);該技術(shù)方案通過模擬用戶登錄,來遍歷的實(shí)現(xiàn)頁面靜態(tài)化,這對(duì)于頁面數(shù)據(jù)不斷變化的場(chǎng)景效果非常的不好,本發(fā)明的技術(shù)方案則恰好可以應(yīng)對(duì)數(shù)據(jù)不斷變化時(shí),非數(shù)據(jù)部分內(nèi)容的純靜態(tài)化。
[0048]在專利申請(qǐng)?zhí)枮?00710304143.1的專利(申請(qǐng))中,提供了一種實(shí)現(xiàn)動(dòng)態(tài)頁面靜態(tài)化的方法,該方法包括:A.確定用戶所訪問的頁面中所需使用的組件;B.確定生成的組件的靜態(tài)化文件路徑下不存在相應(yīng)的靜態(tài)化文件時(shí),生成該組件的動(dòng)態(tài)化內(nèi)容;C.確定生成的組件的動(dòng)態(tài)化內(nèi)容需進(jìn)行靜態(tài)化處理時(shí),生成該動(dòng)態(tài)化內(nèi)容對(duì)應(yīng)的靜態(tài)化文件。該技術(shù)方案同時(shí)提供了一種實(shí)現(xiàn)動(dòng)態(tài)頁面靜態(tài)化的系統(tǒng),該方法和系統(tǒng)便于修改靜態(tài)化頁面內(nèi)容,提高了頁面的生成效率,且使得網(wǎng)站管理更為簡(jiǎn)單。該技術(shù)方案提供了只是提供了一種實(shí)現(xiàn)頁面靜態(tài)化的簡(jiǎn)單方式,通過判斷靜態(tài)文件是否存在,如不存在就自動(dòng)生成的方式,這種方式?jīng)]有從根本上解決同一頁面數(shù)據(jù)不斷變化的場(chǎng)景,而本發(fā)明的技術(shù)方案是從根本上解決了該問題,通過將動(dòng)態(tài)頁面分離成可靜態(tài)化不變的部分和動(dòng)態(tài)數(shù)據(jù)部分來實(shí)現(xiàn)最終的頁面靜態(tài)化。
[0049]本發(fā)明的技術(shù)方案,在上述“一種動(dòng)態(tài)網(wǎng)頁的靜態(tài)化信息處理方法及裝置”、“一種實(shí)現(xiàn)動(dòng)態(tài)頁面靜態(tài)化的方法和系統(tǒng)”的基礎(chǔ)上做了一些改進(jìn),Web應(yīng)用中頁面布局、模型部分能完美的靜態(tài)化、在數(shù)據(jù)頻繁變化的場(chǎng)景下也能實(shí)現(xiàn)靜態(tài)化:
(I)Web頁面中布局和控件、css的靜態(tài)化;
⑵數(shù)據(jù)頻繁變化時(shí),將不變化的頁面部分靜態(tài)化。
[0050]以上結(jié)合附圖詳細(xì)說明了本發(fā)明的技術(shù)方案,考慮到相關(guān)技術(shù)中沒有簡(jiǎn)便的、統(tǒng)一的針對(duì)復(fù)雜類型元數(shù)據(jù)靜態(tài)化的解決辦法。現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化無法完成有復(fù)雜類型參與的動(dòng)態(tài)頁面靜態(tài)化過程。因此,本發(fā)明提出了一種動(dòng)態(tài)頁面靜態(tài)化的裝置和一種動(dòng)態(tài)頁面靜態(tài)化的方法,可以在現(xiàn)有的動(dòng)態(tài)頁面靜態(tài)化定義語言支持的描述定義方式基礎(chǔ)上,充分利用單對(duì)象類型元數(shù)據(jù)和文檔描述類型完成多對(duì)象類型元數(shù)據(jù)的動(dòng)態(tài)頁面靜態(tài)化,建立多對(duì)象類型元數(shù)據(jù)參與的面向?qū)ο箢愓Z言動(dòng)態(tài)頁面靜態(tài)化的通用、統(tǒng)一靜態(tài)化思路。
[0051]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種動(dòng)態(tài)頁面靜態(tài)化的裝置,其特征在于,包括: 請(qǐng)求接收單元,用于接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理; 請(qǐng)求執(zhí)行單元,用于收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求; 執(zhí)行結(jié)果展現(xiàn)單元,用于執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。
2.根據(jù)權(quán)利要求1所述的動(dòng)態(tài)頁面靜態(tài)化的裝置,其特征在于,所述請(qǐng)求接收單元,具體包括: 服務(wù)器接收請(qǐng)求模塊,用于接收用戶發(fā)送的請(qǐng)求; 請(qǐng)求接管及重定向模塊,用于應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊; 和/或, 所述請(qǐng)求執(zhí)行單元,具體包括: 請(qǐng)求類型判斷模塊,用于收到請(qǐng)求后,判斷當(dāng)前請(qǐng)求的類型; 請(qǐng)求類型判斷結(jié)果執(zhí)行模塊,用于根據(jù)對(duì)當(dāng)前請(qǐng)求類型的判斷結(jié)果,執(zhí)行相應(yīng)的請(qǐng)求; 和/或, 所述執(zhí)行結(jié)果展現(xiàn)單元,具體包括: 獲取動(dòng)態(tài)數(shù)據(jù)觸發(fā)模塊,用于獲取靜態(tài)布局文件后,返回靜態(tài)布局文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行相關(guān)代碼,觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)的操作; 緩存數(shù)據(jù)判斷模塊,用于客戶端程序判斷是否存在數(shù)據(jù)的緩存; 緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊,用于根據(jù)緩存數(shù)據(jù)判斷結(jié)果,對(duì)相應(yīng)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行處理。
3.根據(jù)權(quán)利要求2所述的動(dòng)態(tài)頁面靜態(tài)化的裝置,其特征在于,所述請(qǐng)求類型判斷結(jié)果執(zhí)行模塊,進(jìn)一步包括: 獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊,用于在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);以及,將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn); 和/或, 獲取布局文件的請(qǐng)求執(zhí)行子模塊,用于在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;以及根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求。
4.根據(jù)權(quán)利要求3所述的動(dòng)態(tài)頁面靜態(tài)化的裝置,其特征在于,所述獲取數(shù)據(jù)的請(qǐng)求執(zhí)行子模塊,更進(jìn)一步包括: 請(qǐng)求邏輯獲取及數(shù)據(jù)返回子模塊,用于在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù); 數(shù)據(jù)展現(xiàn)及結(jié)果輸出子模塊,用于將將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn); 和/或, 所述獲取布局文件的請(qǐng)求執(zhí)行子模塊,更進(jìn)一步包括: 靜態(tài)布局文件判斷子模塊,用于在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件; 靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊,用于根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求; 再進(jìn)一步地, 所述靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊,再進(jìn)一步包括: 靜態(tài)布局文件獲取及結(jié)果輸出子模塊,用于在存在靜態(tài)布局文件,獲取靜態(tài)布局文件,并將獲取的靜態(tài)布局文件展現(xiàn)到頁面中; 和/或, 所述靜態(tài)布局文件判斷結(jié)果執(zhí)行子模塊,再進(jìn)一步還包括: 靜態(tài)布局文件生成及緩存子模塊,用于在不存在靜態(tài)布局文件,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,生成后緩存靜態(tài)布局文件,并將生成的緩存靜態(tài)布局文件展現(xiàn)到頁面中。
5.根據(jù)權(quán)利要求2-4中任一項(xiàng)所述的動(dòng)態(tài)頁面靜態(tài)化的裝置,其特征在于,所述緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊,進(jìn)一步包括: 頁面展現(xiàn)及結(jié)果輸出子模塊,用于在存在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)展現(xiàn)到頁面中,并與相應(yīng)請(qǐng)求的執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn); 和/或, 所述緩存數(shù)據(jù)判斷判斷結(jié)果執(zhí)行模塊,進(jìn)一步還包括: 獲取數(shù)據(jù)請(qǐng)求重新發(fā)送子模塊,用于在不存在緩存數(shù)據(jù)時(shí),返回請(qǐng)求接收單元,向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,等待服務(wù)器端對(duì)該獲取數(shù)據(jù)請(qǐng)求的接管和重定向處理。
6.—種動(dòng)態(tài)頁面靜態(tài)化的方法,其特征在于,包括: 步驟202:服務(wù)器端接收用戶發(fā)送的請(qǐng)求,進(jìn)行接管和重定向處理; 步驟204:服務(wù)器控制模塊收到重定向的用戶請(qǐng)求后,根據(jù)該請(qǐng)求的類型,通過服務(wù)器端程序執(zhí)行不同類型的請(qǐng)求; 步驟206:服務(wù)器端程序執(zhí)行請(qǐng)求后,反饋執(zhí)行情況,并展現(xiàn)執(zhí)行結(jié)果。
7.根據(jù)權(quán)利要求6所述的動(dòng)態(tài)頁面靜態(tài)化的方法,其特征在于,所述步驟202,具體包括: 步驟302:服務(wù)器端接收用戶發(fā)送的請(qǐng)求; 步驟304:服務(wù)器端應(yīng)用程序接管請(qǐng)求,并將請(qǐng)求重定向到服務(wù)器端的控制模塊; 和/或, 所述步驟204,具體包括: 步驟402:服務(wù)器控制模塊收到請(qǐng)求后,判斷當(dāng)前請(qǐng)求的類型; 步驟404:根據(jù)對(duì)當(dāng)前請(qǐng)求類型的判斷結(jié)果,執(zhí)行相應(yīng)的請(qǐng)求; 和/或, 所述步驟206,具體包括: 步驟902:獲取靜態(tài)布局文件后,返回靜態(tài)布局文件到客戶端并呈現(xiàn)靜態(tài)布局文件及執(zhí)行布局文件中的相關(guān)代碼,執(zhí)行相關(guān)代碼,觸發(fā)獲取動(dòng)態(tài)數(shù)據(jù)的操作; 步驟904:客戶端程序判斷是否存在數(shù)據(jù)的緩存; 步驟906:根據(jù)緩存數(shù)據(jù)判斷結(jié)果,對(duì)相應(yīng)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行處理。
8.根據(jù)權(quán)利要求7所述的動(dòng)態(tài)頁面靜態(tài)化的方法,其特征在于,所述步驟404,進(jìn)一步包括: 步驟502:在當(dāng)前類型是獲取數(shù)據(jù)的請(qǐng)求時(shí),通過服務(wù)器端程序執(zhí)行獲取請(qǐng)求邏輯,并返回?cái)?shù)據(jù);以及, 步驟504:將返回的數(shù)據(jù)展現(xiàn)到頁面中,并與獲取數(shù)據(jù)請(qǐng)求執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn); 和/或, 所述步驟404,進(jìn)一步還包括: 步驟602:在當(dāng)前類型是獲取布局文件的請(qǐng)求,通過服務(wù)器程序判斷是否已經(jīng)存在靜態(tài)布局文件;以及, 步驟604:根據(jù)靜態(tài)布局文件的判斷結(jié)果,執(zhí)行獲取布局文件的請(qǐng)求。
9.根據(jù)權(quán)利要求8所述的動(dòng)態(tài)頁面靜態(tài)化的方法,其特征在于,所述步驟604,再進(jìn)一步包括: 步驟702:在存在靜態(tài)布局文件,獲取靜態(tài)布局文件,并將獲取的靜態(tài)布局文件展現(xiàn)到頁面中; 和/或, 所述步驟604,再進(jìn)一步還包括: 步驟802:在不存在靜態(tài)布局文件,根據(jù)元數(shù)據(jù)配置調(diào)用代碼編譯引擎動(dòng)態(tài)生成靜態(tài)布局文件,生成后緩存靜態(tài)布局文件,并將生成的緩存靜態(tài)布局文件展現(xiàn)到頁面中。
10.根據(jù)權(quán)利要求7-9中任一項(xiàng)所述的動(dòng)態(tài)頁面靜態(tài)化的方法,其特征在于,所述步驟.906,進(jìn)一步包括: 步驟1002:在存在緩存數(shù)據(jù)時(shí),將數(shù)據(jù)展現(xiàn)到頁面中,并與相應(yīng)請(qǐng)求的執(zhí)行結(jié)果呈現(xiàn)的布局文件一起組合成完整的頁面展現(xiàn); 和/或, 所述步驟906,進(jìn)一步還包括: 步驟1102:在不存在緩存數(shù)據(jù)時(shí),返回請(qǐng)求接收單元,向服務(wù)器端發(fā)送獲取數(shù)據(jù)請(qǐng)求,等待服務(wù)器端對(duì)該獲取數(shù)據(jù)請(qǐng)求的接管和重定向處理。
【文檔編號(hào)】G06F17/30GK104391868SQ201410583161
【公開日】2015年3月4日 申請(qǐng)日期:2014年10月28日 優(yōu)先權(quán)日:2014年10月28日
【發(fā)明者】范金福, 方奇功 申請(qǐng)人:用友優(yōu)普信息技術(shù)有限公司