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