本發(fā)明涉及javaweb應用開發(fā)領域,具體地說是一種統(tǒng)一多javaweb應用公共頁面片段的方法。
背景技術:
隨著信息系統(tǒng)的復雜度變得越來越高,信息系統(tǒng)的組件化部署已經(jīng)成為大勢所趨。但在組件化部署的過程中,經(jīng)常面臨各組件中包含公共頁面片段的問題,常見的做法有兩種:一是通過內(nèi)嵌iframe元素,將公共頁面片段加載到頁面中,該方法的優(yōu)勢是使用簡單,劣勢是由于iframe的高度無法自適應,與主頁面加載時間不一致,可能出現(xiàn)頁面彈跳,導致用戶體驗較差;二是通過引用公共的javascript,動態(tài)生成頁面片段,該方法的代碼復雜度較高,也容易導致頁面閃動,用戶體驗不佳;三是在各組件中各保留一份公共頁面片段的代碼,該方法在應用的初始階段比較容易實施,但后期的維護成本較高,如果公共頁面片段發(fā)生修改,就需要修改多份。
技術實現(xiàn)要素:
本發(fā)明的技術任務是針對以上不足之處,提供一種統(tǒng)一多javaweb應用公共頁面片段的方法,在保證用戶體驗、不額外引入開發(fā)工作量的前提下,通過充分使用javaweb應用的現(xiàn)有技術,解決公共頁面片段的管理和運維難題。
本發(fā)明解決其技術問題所采用的技術方案是:
一種統(tǒng)一多javaweb應用公共頁面片段的方法,將公共頁面片段存放在公共應用中,使用javaweb應用提供的技術通過網(wǎng)絡請求將公共頁面片段插入到業(yè)務頁面中,達到統(tǒng)一管理和運維公共頁面片段的目的;
交互過程包括瀏覽器、業(yè)務應用和公共應用,公共應用中保存了公共頁面片段,將公共片段相關的javascript、css、image靜態(tài)資源與頁面片段看作一個整體,統(tǒng)一保存在公共應用中,以保證能夠統(tǒng)一管理公用頁面片段;
當瀏覽器請求javaweb應用的頁面,稱該請求為初次請求,應用服務器在響應該頁面時,通過向保存著公共頁面片段的javaweb應用發(fā)送新的網(wǎng)絡請求,稱該請求為二次請求,在公共頁面片段的內(nèi)容成功返回后,將其插入到初次請求的適當位置并返回給瀏覽器。
優(yōu)選的,公共頁面片段的功能有顯示登錄用戶信息和顯示選擇當前語言,如果用戶未登錄,則需要顯示登錄按鈕,作為用戶登錄的入口。
優(yōu)選的,由于請求公共頁面片段的客戶端是服務器端的業(yè)務應用,而非瀏覽器,所以檢測用戶是否登錄的代碼在瀏覽器端執(zhí)行,而不使用服務端執(zhí)行的腳本。
優(yōu)選的,用戶登錄成功后將登錄標識存放在cookie中,便于公共頁面片段判斷用戶是否登錄。
優(yōu)選的,公共頁面片段中選擇當前語言后,在多個javaweb應用中共享用戶的當前選擇,公共頁面片段的選擇語言功能確定語言后,將其保存在cookie中,以便多個應用之間共享數(shù)據(jù)。
本發(fā)明的一種統(tǒng)一多javaweb應用公共頁面片段的方法和現(xiàn)有技術相比,具有以下有益效果:
在保證用戶體驗、降低開發(fā)和運維難度的基礎之上,實現(xiàn)統(tǒng)一管理多個javaweb應用公用的頁面片段的目標;充分使用javaweb應用提供的技術,在保證不需要添加額外代碼的前提下,解決公共頁面片段的管理和運維問題;
與其他比如iframe嵌套頁面、復制頁面片段代碼、javascript動態(tài)渲染頁面片段的實現(xiàn)方式相比,既不損失web應用的用戶體驗,又能統(tǒng)一公共頁面的開發(fā)與運維,降低管理成本。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明作進一步說明。
一種統(tǒng)一多javaweb應用公共頁面片段的方法,將公共頁面片段存放在公共應用中,使用javaweb應用提供的技術通過網(wǎng)絡請求將公共頁面片段插入到業(yè)務頁面中,達到統(tǒng)一管理和運維公共頁面片段的目的;
交互過程包括瀏覽器、業(yè)務應用和公共應用,公共應用中保存了公共頁面片段,將公共片段相關的javascript、css、image靜態(tài)資源與頁面片段看作一個整體,統(tǒng)一保存在公共應用中,以保證能夠統(tǒng)一管理公用頁面片段;公共頁面片段的功能有顯示登錄用戶信息和顯示選擇當前語言,如果用戶未登錄,則需要顯示登錄按鈕,作為用戶登錄的入口。
當瀏覽器請求javaweb應用的頁面,稱該請求為初次請求,應用服務器在響應該頁面時,通過向保存著公共頁面片段的javaweb應用發(fā)送新的網(wǎng)絡請求,稱該請求為二次請求,在公共頁面片段的內(nèi)容成功返回后,將其插入到初次請求的適當位置并返回給瀏覽器。
由于請求公共頁面片段的客戶端是服務器端的業(yè)務應用,而非瀏覽器,所以檢測用戶是否登錄的代碼在瀏覽器端執(zhí)行,而不使用服務端執(zhí)行的腳本。
用戶登錄成功后將登錄標識存放在cookie中,便于公共頁面片段判斷用戶是否登錄。
公共頁面片段中選擇當前語言后,在多個javaweb應用中共享用戶的當前選擇,公共頁面片段的選擇語言功能確定語言后,將其保存在cookie中,以便多個應用之間共享數(shù)據(jù)。
下面以兩個應用為例說明技術原理,具體步驟說明如下:
1)、瀏覽器請求業(yè)務應用的頁面;
2)、業(yè)務應用向公共應用發(fā)起二次請求,請求公共頁面片段;
3)、公共應用將公共頁面片段返回給業(yè)務應用;
4)、業(yè)務應用將本應用頁面和公共頁面片段組合后的內(nèi)容返回給瀏覽器,瀏覽器渲染頁面呈現(xiàn)給用戶。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。
除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。