本發(fā)明涉及網(wǎng)絡(luò)頁面創(chuàng)建領(lǐng)域,特別涉及一種頁面聚合方法及裝置。
背景技術(shù):
頁面聚合是指將原有頁面的頁面布局進行重新整合,生成的一個新的頁面。通過頁面聚合可以將各個功能的頁面重新組合形成一個新的頁面,促進頁面所屬站點的搜索引擎優(yōu)化(Search Engine Optimization,SEO)優(yōu)化和多業(yè)務(wù)線的拉通運營。
相關(guān)的頁面聚合技術(shù)通常利用超文本標記語言(Hyper Text Markup Language,HTML)的iframe元素創(chuàng)建內(nèi)聯(lián)框架,該內(nèi)聯(lián)框架可以將多個其他頁面的內(nèi)容聚合到一個頁面內(nèi),達到頁面聚合的目的。
但iframe元素與移動設(shè)備中的瀏覽器存在兼容性問題,比如,當iframe元素與瀏覽器不兼容時,會導(dǎo)致由ifrme創(chuàng)建的聚合頁面內(nèi)的滾動條無法展示、聚合頁面自適應(yīng)手機屏幕大小較復(fù)雜等問題。
技術(shù)實現(xiàn)要素:
為了解決相關(guān)技術(shù)的問題,本發(fā)明實施例提供了一種頁面聚合方法及裝置。所述技術(shù)方案如下:
第一方面,提供了一種頁面聚合方法,應(yīng)用于后臺服務(wù)器中,所述方法包括:接收移動設(shè)備發(fā)送的獲取預(yù)定頁面的獲取請求,從頁面服務(wù)器獲取所述預(yù)定頁面的頁面資源,所述頁面資源至少包括所述預(yù)定頁面的頁面母版和頁面碎片,所述頁面母版用于定義各個頁面碎片在所述預(yù)定頁面中的位置;根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與所述預(yù)定頁面的頁面母版對應(yīng)的適配版式,根據(jù)查詢到的所述適配版式對所述預(yù)定頁面的各個頁面碎片進行組裝,得到組裝頁面,所述適配版式為利用福瑞馬克FreeMarker設(shè)計的頁面版式;將所述組裝頁面反饋給所述移動設(shè)備。
本發(fā)明實施例提供的頁面聚合方法,通過將頁面服務(wù)器反饋的預(yù)定網(wǎng)頁的頁面母版轉(zhuǎn)換成利用FreeMarker設(shè)計的適配版式,將該預(yù)定頁面的頁面碎片按照該適配版式進行組裝,生成新的組裝頁面,由于FreeMarker通用性高,模版語言強大,解決了因iframe元素與瀏覽器不兼容,導(dǎo)致由iframe創(chuàng)建的聚合頁面顯示異常的問題;達到了避免出現(xiàn)由iframe創(chuàng)建的聚合頁面顯示異常的現(xiàn)象的效果。
結(jié)合第一方面,在第一方面的第一種可能的實施方式中,所述根據(jù)查詢到的所述預(yù)定適配版式對所述預(yù)定頁面的頁面碎片進行組裝,得到組裝頁面,包括:將所述預(yù)定頁面的頁面碎片添加至頁面渲染隊列中;從渲染資源線程池中提取出空閑的渲染資源線程,利用所述渲染資源線程對所述頁面渲染隊列中的頁面碎片進行渲染;根據(jù)所述適配版式對渲染成功的頁面碎片進行組裝,得到所述組裝頁面。通過調(diào)用渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染,可以有效控制渲染頁面碎片的渲染資源線程數(shù)量,避免頁面碎片的碎片過多造成處理器的處理壓力過大。
結(jié)合第一方面或者第一方面的第一種可能的實施方式,在第二種可能的實施方式中,所述根據(jù)查詢到的所述預(yù)定適配版式對所述預(yù)定頁面的頁面碎片進行組裝,得到組裝頁面,包括:對于所述頁面資源中的每個頁面碎片,檢測是否存儲有與所述頁面碎片對應(yīng)的碎片內(nèi)容;當存儲有與所述頁面碎片對應(yīng)的碎片內(nèi)容時,根據(jù)所述碎片內(nèi)容對所述頁面碎片進行渲染;根據(jù)所述適配版式對渲染成功的頁面碎片進行組裝,得到所述組裝頁面。
結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)或者第一方面的第二種可能的實現(xiàn),在所述檢測是否存儲有與所述頁面碎片對應(yīng)的碎片內(nèi)容之后,所述方法還包括:當未存儲有與所述頁面碎片對應(yīng)的碎片內(nèi)容時,根據(jù)所述頁面碎片的統(tǒng)一資源定位符URL,獲取所述頁面碎片對應(yīng)的碎片內(nèi)容,根據(jù)所述碎片內(nèi)容對所述頁面碎片進行渲染;將所述碎片內(nèi)容和所述頁面碎片進行綁定存儲。通過后臺服務(wù)器獲取到某一頁面碎片的碎片內(nèi)容時,將該碎片內(nèi)容與該頁面碎片進行綁定存儲,當后臺服務(wù)器獲取到的頁面資源中包含該頁面碎片時,可以直接根據(jù)存儲的該頁面碎片的碎片內(nèi)容對該頁面碎片進行渲染,避免反復(fù)獲取同一頁面碎片的碎片內(nèi)容,加快渲染頁面碎片的速度。
結(jié)合第一方面、第一方面的第一種至第三種可能的實現(xiàn),在第一方面的第四種可能的實現(xiàn)中,所述將所述碎片內(nèi)容和所述頁面碎片進行綁定存儲,包括:判定所述碎片內(nèi)容是否為可靜態(tài)化的內(nèi)容;當所述碎片內(nèi)容是為可靜態(tài)化的內(nèi)容時,將所述碎片內(nèi)容與所述頁面碎片進行綁定存儲。
結(jié)合第一方面、第一方面的第一種至第四種可能的實現(xiàn),在第一方面的第五種可能的實現(xiàn)中,所述根據(jù)所述適配版式對渲染成功的頁面碎片進行組裝,得到所述組裝頁面,包括:根據(jù)所述適配版式對渲染成功的頁面碎片進行組裝;確定出渲染失敗的頁面碎片在所述適配版本中的位置,在所述位置顯示預(yù)定內(nèi)容。僅對渲染成功的頁面碎片進行組裝,在渲染失敗的頁面碎片在適配版本中的位置統(tǒng)一顯示預(yù)定內(nèi)容,加快頁面組裝的速度。
結(jié)合第一方面、第一方面的第一種至第五種可能的實現(xiàn),在第一方面的第六種可能的實現(xiàn)中,所述方法還包括:在得到所述組裝頁面之后,在尚未存儲所述預(yù)定頁面所對應(yīng)的組裝頁面與所述預(yù)定頁面的頁面資源之間的綁定關(guān)系時,將得到的所述組裝頁面與獲取的所述預(yù)定頁面的頁面資源進行綁定存儲;在已經(jīng)存儲所述預(yù)定頁面所對應(yīng)的組裝頁面與所述預(yù)定頁面的頁面資源之間的綁定關(guān)系時,利用獲取的所述預(yù)定頁面的頁面資源替換已經(jīng)存儲的所述預(yù)定頁面的頁面資源。通過對及時存儲和更新預(yù)定頁面所對應(yīng)的組裝頁面與該預(yù)定頁面的頁面資源之間的綁定關(guān)系,確保后臺服務(wù)器中所存儲的綁定關(guān)系的有效性。
結(jié)合第一方面、第一方面的第一種至第六種可能的實現(xiàn),在第一方面的第七種可能的實現(xiàn)中,在所述從頁面服務(wù)器獲取所述預(yù)定頁面的頁面資源之后,所述方法還包括:查詢是否存儲有所述預(yù)定頁面的頁面資源;當存儲有所述預(yù)定頁面的頁面資源時,檢測所述獲取到的頁面資源和所述存儲的頁面資源是否一致;當所述獲取到的頁面資源和所述存儲的頁面資源一致時,將與所述存儲的頁面資源綁定的組裝頁面反饋給所述移動設(shè)備。通過后臺服務(wù)器獲取到預(yù)定頁面的頁面資源時,若獲取到的該頁面資源和存儲的頁面資源一致,則將與存儲的該頁面資源綁定的組裝頁面反饋給移動設(shè)備,提高后臺服務(wù)器反饋組裝頁面的速度。
第二方面,提供了一種服務(wù)器,所述服務(wù)器包括處理器、與處理器相連的存儲器和網(wǎng)絡(luò)接口,所述處理器用于實現(xiàn)上述第一方面的頁面聚合方法。
第三方面,提供了一種頁面聚合裝置,所述頁面聚合裝置包括至少一個單元,該至少一個單元分別用于實現(xiàn)上述第一方面的頁面聚合方法所涉及的相應(yīng)步驟。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個示例性實施例提供的頁面聚合系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明一個示例性實施例提供的后臺服務(wù)器的結(jié)構(gòu)示意圖;
圖3是本發(fā)明一個示例性實施例提供的頁面聚合方法的流程圖;
圖4A是本發(fā)明一個示例性實施例提供的頁面聚合方法的流程圖;
圖4B是本發(fā)明一個示例性實施例提供的頁面聚合方法的示意圖;
圖4C是本發(fā)明一個示例性實施例提供的根據(jù)查詢到的該預(yù)定適配版式對該預(yù)定頁面的頁面碎片進行組裝,得到組裝頁面方法的示意圖;
圖4D是本發(fā)明一個示例性實施例提供的利用渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染方法的示意圖;
圖4E是本發(fā)明另一個示例性實施例提供的根據(jù)查詢到的該預(yù)定適配版式對該預(yù)定頁面的頁面碎片進行組裝,得到組裝頁面方法的流程圖;
圖4F是本發(fā)明一個示例性實施例提供的將碎片內(nèi)容和頁面碎片進行綁定存儲方法的流程圖;
圖4G是本發(fā)明一個示例性實施例提供的根據(jù)適配版式對渲染成功的頁面碎片進行組裝,得到組裝頁面方法的流程圖;
圖4H是本發(fā)明一個示例性實施例提供的組裝頁面的示意圖;
圖5A是本發(fā)明一個實施例提供的后臺服務(wù)器中的頁面聚合裝置的結(jié)構(gòu)示意圖;
圖5B是發(fā)明再一個實施例提供的頁面聚合方法的流程圖;
圖6是本發(fā)明一個實施例提供的頁面聚合裝置的框圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
在本文提及的“模塊”是指存儲在存儲器中的能夠?qū)崿F(xiàn)某些功能的程序或指令;在本文中提及的“單元”是指按照邏輯劃分的功能性結(jié)構(gòu),該“單元”可以由純硬件實現(xiàn),或者,軟硬件的結(jié)合實現(xiàn)。
請參考圖1,其示出了本發(fā)明一個示例性實施例提供的頁面聚合系統(tǒng)的結(jié)構(gòu)示意圖。該頁面聚合系統(tǒng)包括:移動設(shè)備10、后臺服務(wù)器11和頁面服務(wù)器12。
后臺服務(wù)器11可以分別與移動設(shè)備10和頁面服務(wù)器12通過無線網(wǎng)絡(luò)方式或有線網(wǎng)絡(luò)方式連接,也可以通過路由器連接,這里所講的無線網(wǎng)絡(luò)方式可以為移動數(shù)據(jù)網(wǎng)絡(luò)或無線保真(Wireless-Fidelity,Wi-Fi),或藍牙等無線網(wǎng)絡(luò)方式等。
這里所講的移動設(shè)備10可以為移動電話,消息收發(fā)設(shè)備,平版設(shè)備等,對此本實施例不作具體限制。
這里所講的后臺服務(wù)器11可以是一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心。類似的,這里所講的頁面服務(wù)器12也可以是一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心。
請參考圖2,其示出了本發(fā)明一個示例性實施例提供的后臺服務(wù)器的結(jié)構(gòu)示意圖。該后臺服務(wù)器11包括:處理器21、網(wǎng)絡(luò)接口22、高速緩存器23、存儲器24和總線25。
處理器21包括一個或者一個以上處理核心,處理器21通過運行軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。
網(wǎng)絡(luò)接口22用于供負載生成器與數(shù)據(jù)庫系統(tǒng)進行通信。
存儲器24與高速緩存器23分別通過總線25與處理器21相連。
存儲器24可用于存儲軟件程序以及模塊。
存儲器24可以存儲至少一個功能所需的應(yīng)用程序模塊26,應(yīng)用程序模塊26可以是接收模塊261、執(zhí)行模塊262、發(fā)送模塊263等。
接收模塊261用于通過網(wǎng)絡(luò)接口22接收移動設(shè)備發(fā)送的獲取預(yù)定頁面的獲取請求,從頁面服務(wù)器獲取該預(yù)定頁面的頁面資源,該頁面資源至少包括該預(yù)定頁面的頁面母版和頁面碎片,該頁面母版用于定義各個頁面碎片在該預(yù)定頁面中的位置。
執(zhí)行模塊262用于根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與預(yù)定頁面的頁面母版對應(yīng)的適配版式,根據(jù)查詢到的該適配版式對該預(yù)定頁面的各個頁面碎片進行組裝,得到組裝頁面,該適配版式為利用福瑞馬克FreeMarker設(shè)計的頁面版式;以及將預(yù)定頁面的頁面碎片添加至頁面渲染隊列中;從渲染資源線程池中提取出空閑的渲染資源線程,利用該渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染;根據(jù)適配版式對渲染成功的頁面碎片進行組裝,得到組裝頁面;以及對于頁面資源中的每個頁面碎片,檢測是否存儲有與該頁面碎片對應(yīng)的碎片內(nèi)容;當存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,根據(jù)該碎片內(nèi)容對該頁面碎片進行渲染;根據(jù)適配版式對渲染成功的頁面碎片進行組裝,得到組裝頁面;以及當未存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,根據(jù)該頁面碎片的統(tǒng)一資源定位符URL,獲取該頁面碎片對應(yīng)的碎片內(nèi)容,根據(jù)該碎片內(nèi)容對該頁面碎片進行渲染;將碎片內(nèi)容和頁面碎片進行綁定存儲;以及判定碎片內(nèi)容是否為可靜態(tài)化的內(nèi)容;當碎片內(nèi)容是為可靜態(tài)化的內(nèi)容時,將該碎片內(nèi)容與頁面碎片進行綁定存儲;以及根據(jù)適配版式對渲染成功的頁面碎片進行組裝;確定出渲染失敗的頁面碎片在適配版本中的位置,在該位置顯示預(yù)定內(nèi)容;以及在得到組裝頁面之后,在尚未存儲預(yù)定頁面所對應(yīng)的組裝頁面與該預(yù)定頁面的頁面資源之間的綁定關(guān)系時,將得到的該組裝頁面與獲取的該預(yù)定頁面的頁面資源進行綁定存儲;在已經(jīng)存儲預(yù)定頁面所對應(yīng)的組裝頁面與預(yù)定頁面的頁面資源之間的綁定關(guān)系時,利用獲取的該預(yù)定頁面的頁面資源替換已經(jīng)存儲的該預(yù)定頁面的頁面資源;以及查詢是否存儲有預(yù)定頁面的頁面資源;當存儲有預(yù)定頁面的頁面資源時,檢測獲取到的頁面資源和存儲的頁面資源是否一致;當獲取到的頁面資源和存儲的頁面資源一致時,將與該存儲的頁面資源綁定的組裝頁面反饋給移動設(shè)備。
發(fā)送模塊263用于通過網(wǎng)絡(luò)接口22將組裝頁面反饋給移動設(shè)備。
存儲器24可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
本領(lǐng)域技術(shù)人員可以理解,圖1中所示出的后臺服務(wù)器的結(jié)構(gòu)并不構(gòu)成對后臺服務(wù)器的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
請參考圖3,其示出了本發(fā)明一個示例性實施例提供的頁面聚合方法的流程圖。本實施例以該方法用于如圖1所示的頁面聚合系統(tǒng)中來舉例說明,由如圖2所示的后臺服務(wù)器11的處理器21執(zhí)行下述步驟,該方法包括以下幾個步驟:
步驟301,接收移動設(shè)備發(fā)送的獲取預(yù)定頁面的獲取請求,從頁面服務(wù)器獲取該預(yù)定頁面的頁面資源,該頁面資源至少包括該預(yù)定頁面的頁面母版和頁面碎片,該頁面母版用于定義各個頁面碎片在該預(yù)定頁面中的位置。
步驟302,根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與預(yù)定頁面的頁面母版對應(yīng)的適配版式,根據(jù)查詢到的該適配版式對該預(yù)定頁面的各個頁面碎片進行組裝,得到組裝頁面,該適配版式為利用FreeMarker設(shè)計的頁面版式。
步驟303,將組裝頁面反饋給移動設(shè)備。
綜上所述,本發(fā)明實施例提供的頁面聚合方法,通過將頁面服務(wù)器反饋的預(yù)定網(wǎng)頁的頁面母版轉(zhuǎn)換成利用FreeMarker設(shè)計的適配版式,將該預(yù)定頁面的頁面碎片按照該適配版式進行組裝,生成新的組裝頁面,由于FreeMarker通用性高,模版語言強大,解決了因iframe元素與瀏覽器不兼容,導(dǎo)致由iframe創(chuàng)建的聚合頁面顯示異常的問題;達到了避免出現(xiàn)由iframe創(chuàng)建的聚合頁面顯示異常的現(xiàn)象的效果。
在實際應(yīng)用中,頁面聚合技術(shù)通常利用HTML的iframe元素創(chuàng)建內(nèi)聯(lián)框架,將多個其他頁面的內(nèi)容聚合到一個頁面內(nèi),達到頁面聚合的目的。為了避免當iframe元素與移動設(shè)備中的瀏覽器不兼容時,由iframe創(chuàng)建的聚合頁面顯示異常的現(xiàn)象,本實施例中后臺服務(wù)器將頁面服務(wù)器反饋的預(yù)定網(wǎng)頁的頁面母版轉(zhuǎn)換成利用FreeMarker設(shè)計的適配版式后,將該預(yù)定頁面的頁面碎片按照該適配版式進行組裝,生成新的組裝頁面后反饋給移動設(shè)備,以避免出現(xiàn)由iframe創(chuàng)建的聚合頁面顯示異常的現(xiàn)象。下面結(jié)合圖4A、圖4E、圖4F和圖4G對頁面聚合方法進行描述。
請參考圖4A,其示出了本發(fā)明一個示例性實施例提供的頁面聚合方法的流程圖。本實施例以該方法運用于如圖1所示的頁面聚合系統(tǒng)中來舉例說明,該方法包括以下幾個步驟:
步驟401,接收移動設(shè)備發(fā)送的獲取預(yù)定頁面的獲取請求,從頁面服務(wù)器獲取該預(yù)定頁面的頁面資源。
頁面資源至少包括該預(yù)定頁面的頁面母版和頁面碎片。其中,預(yù)定頁面是指頁面碎片已經(jīng)根據(jù)頁面母版組裝好的HTML頁面。頁面母版是指已經(jīng)制作完成的網(wǎng)頁框架,用于定義各個頁面碎片在該預(yù)定頁面中的位置。頁面碎片是指一種動態(tài)網(wǎng)頁技術(shù)標準文件(英文:Java Server Pages,JSP),在HTML頁面中,包含該頁面碎片的位置信息和各個頁面碎片的JSP文件。每個頁面碎片,由包含樣式、圖片以及腳本文件等的模版文件和Java對象,通過模版引擎技術(shù)自動輸出對應(yīng)的靜態(tài)文件。
步驟402,查詢是否存儲有預(yù)定頁面的頁面資源。
后臺服務(wù)器從頁面服務(wù)器獲取預(yù)定頁面的頁面資源后,存儲該預(yù)定頁面的頁面資源。
當后臺服務(wù)器從頁面服務(wù)器獲取該預(yù)定頁面的頁面資源后,查詢是否存儲有預(yù)定頁面的頁面資源,當后臺服務(wù)器未存儲有該預(yù)定頁面的頁面資源時,執(zhí)行步驟403至步驟405。
在一種可能實現(xiàn)的方式中,當后臺服務(wù)器未存儲有該預(yù)定頁面的頁面資源時,執(zhí)行步驟403至步驟405。
步驟403,當后臺服務(wù)器未存儲有該預(yù)定頁面的頁面資源時,根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與預(yù)定頁面的頁面母版對應(yīng)的適配版式,根據(jù)查詢到的該適配版式對該預(yù)定頁面的各個頁面碎片進行組裝,得到組裝頁面。
適配版式由網(wǎng)頁工作人員預(yù)先存入后臺服務(wù)器中,該適配版式為利用FreeMarker設(shè)計的頁面版式。
圖4B是本發(fā)明一個示例性實施例提供的頁面聚合方法的示意圖,如圖4B所示,當后臺服務(wù)器11接收到移動設(shè)備10發(fā)送的獲取預(yù)定頁面30的獲取請求時,后臺服務(wù)器11從頁面服務(wù)器12獲取預(yù)定頁面30的頁面資源40,根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與預(yù)定頁面30的頁面母版41對應(yīng)的適配版式42,根據(jù)查詢到的適配版式41對預(yù)定頁面30的各個頁面碎片(頁面碎片A、頁面碎片B、頁面碎片C和頁面碎片D)進行組裝,得到組裝頁面50。
當后臺服務(wù)器未存儲有該預(yù)定頁面的頁面資源時,說明后臺服務(wù)器可能首次接收到移動設(shè)備發(fā)送的獲取該預(yù)定頁面的獲取請求。由于后臺服務(wù)器尚未存儲預(yù)定頁面所對應(yīng)的組裝頁面與該預(yù)定頁面的頁面資源之間的綁定關(guān)系,因此在得到組裝頁面之后,可執(zhí)行步驟404。
步驟404,將得到的該組裝頁面與獲取的該預(yù)定頁面的頁面資源進行綁定存儲。
仍參見圖4B,當后臺服務(wù)器11得到組裝頁面50后,將得到的組裝頁面50與獲取的預(yù)定頁面30的頁面資源40進行綁定存儲。
步驟405,將組裝頁面反饋給移動設(shè)備。
在另一種可能實現(xiàn)的方式中,當后臺服務(wù)器存儲有該預(yù)定頁面的頁面資源時,執(zhí)行步驟406至步驟407。
步驟406,當存儲有預(yù)定頁面的頁面資源時,檢測獲取到的頁面資源和存儲的頁面資源是否一致。
根據(jù)需要,網(wǎng)頁工作人員通常會定期更新頁面,更新后的網(wǎng)頁的頁面資源可能會發(fā)生改變,比如頁面母版更改或者頁面碎片更改。當后臺服務(wù)器檢測到存儲有預(yù)定頁面的頁面資源時,為了確保所存儲的預(yù)定頁面的頁面資源的有效性,需要檢測獲取到的該預(yù)定頁面的頁面資源與存儲的該預(yù)定頁面的頁面資源是否一致。
步驟407,當獲取到的頁面資源和存儲的頁面資源一致時,將與該存儲的頁面資源綁定的組裝頁面反饋給移動設(shè)備。
當獲取到的該預(yù)定頁面的頁面資源和存儲的該預(yù)定頁面的頁面資源一致時,說明該預(yù)定頁面的頁面資源未發(fā)生更改,后臺服務(wù)器所存儲的該預(yù)定頁面的頁面資源有效,因此后臺服務(wù)器可以將與存儲的該頁面資源綁定的組裝頁面反饋給移動設(shè)備,提高后臺服務(wù)器向移動設(shè)備反饋組裝頁面的速度。
步驟408,當獲取到的頁面資源和存儲的頁面資源不一致時,根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與預(yù)定頁面的頁面母版對應(yīng)的適配版式,根據(jù)查詢到的該適配版式對該預(yù)定頁面的各個頁面碎片進行組裝,得到組裝頁面。
可選的,當后臺服務(wù)器檢測到獲取到的頁面資源和存儲的頁面資源不一致時,說明后臺服務(wù)器已經(jīng)存儲預(yù)定頁面所對應(yīng)的組裝頁面與預(yù)定頁面的頁面資源之間的綁定關(guān)系。為了確保所存儲的預(yù)定頁面的頁面資源的有效性,當后臺服務(wù)器得到組裝頁面后,執(zhí)行步驟409。
步驟409,利用獲取的該預(yù)定頁面的頁面資源替換已經(jīng)存儲的該預(yù)定頁面的頁面資源。
綜上所述,本發(fā)明實施例提供的頁面聚合方法,通過將頁面服務(wù)器反饋的預(yù)定網(wǎng)頁的頁面母版轉(zhuǎn)換成利用FreeMarker設(shè)計的適配版式,將該預(yù)定頁面的頁面碎片按照該適配版式進行組裝,生成新的組裝頁面,由于FreeMarker通用性高,模版語言強大,解決了因iframe元素與瀏覽器不兼容,導(dǎo)致由iframe創(chuàng)建的聚合頁面顯示異常的問題;達到了避免出現(xiàn)由iframe創(chuàng)建的聚合頁面顯示異常的現(xiàn)象的效果。
在本實施例中,通過對及時存儲和更新預(yù)定頁面所對應(yīng)的組裝頁面與該預(yù)定頁面的頁面資源之間的綁定關(guān)系,確保后臺服務(wù)器中所存儲的綁定關(guān)系的有效性。
在本實施例中,通過后臺服務(wù)器獲取到預(yù)定頁面的頁面資源時,若獲取到的該頁面資源和存儲的頁面資源一致,則將與存儲的該頁面資源綁定的組裝頁面反饋給移動設(shè)備,提高后臺服務(wù)器反饋組裝頁面的速度。
在一種可能實現(xiàn)的情況下,后臺服務(wù)器通過調(diào)用渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染,來控制渲染頁面碎片的渲染資源線程數(shù)量,避免頁面碎片的碎片過多造成處理器的處理壓力過大。請參見圖4C,圖4C是本發(fā)明一個示例性實施例提供的根據(jù)查詢到的該預(yù)定適配版式對該預(yù)定頁面的頁面碎片進行組裝,得到組裝頁面方法的示意圖。
步驟408a,將預(yù)定頁面的頁面碎片添加至頁面渲染隊列中。
后臺服務(wù)器獲取到預(yù)定頁面的頁面碎片后,將所要渲染的頁面碎片添加至頁面渲染隊列中。
步驟408b,從渲染資源線程池中提取出空閑的渲染資源線程,利用該渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染。
可選的,一條渲染資源線程渲染一塊頁面碎片。
圖4D是本發(fā)明一個示例性實施例提供的利用渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染方法的示意圖,如圖4D所示,當用戶利用移動終端訪問預(yù)定頁面時,后臺服務(wù)器接收到預(yù)定頁面發(fā)送的獲取該預(yù)定頁面的獲取請求,該后臺服務(wù)器則從頁面服務(wù)器獲取該預(yù)定頁面的頁面資源,將預(yù)定頁面的頁面碎片(頁面碎片A、頁面碎片B、頁面碎片C)添加至頁面渲染隊列中,從渲染資源線程池中提取出空閑的渲染資源線程(渲染資源線程1、渲染資源線程2),調(diào)用提取出的空閑的渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染,由于渲染資源線程的數(shù)量為2條,因此后臺服務(wù)器一次可以渲染兩塊頁面碎片。
當頁面碎片均被渲染后(該頁面碎片可能被渲染成功、也可能被渲染失敗),后臺服務(wù)器將渲染該頁面碎片的渲染資源線程放回渲染資源線程池中,供其他未被渲染的頁面碎片使用。
步驟408c,根據(jù)適配版式對渲染成功的頁面碎片進行組裝,得到組裝頁面。
后臺服務(wù)器僅對渲染成功的頁面碎片進行組裝,在渲染失敗的頁面碎片在適配版本中的位置統(tǒng)一顯示預(yù)定內(nèi)容,可以加快頁面組裝的速度。
在一種可能實現(xiàn)的方式中,請參見圖4E,圖4E是本發(fā)明另一個示例性實施例提供的根據(jù)查詢到的該預(yù)定適配版式對該預(yù)定頁面的頁面碎片進行組裝,得到組裝頁面方法的流程圖。
步驟408d,對于頁面資源中的每個頁面碎片,檢測是否存儲有與該頁面碎片對應(yīng)的碎片內(nèi)容。
當后臺服務(wù)器獲取到預(yù)定頁面的頁面資源時,查詢是否存儲有與該頁面碎片對應(yīng)的碎片內(nèi)容。
可選的,當未存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,實施步驟408g至步驟408h。
步驟408e,當未存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,根據(jù)該頁面碎片的URL,獲取該頁面碎片對應(yīng)的碎片內(nèi)容,根據(jù)該碎片內(nèi)容對該頁面碎片進行渲染。
當未存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,后臺服務(wù)器根據(jù)該頁面碎片的URL,從頁面服務(wù)器獲取該頁面碎片對應(yīng)的碎片內(nèi)容,根據(jù)該碎片內(nèi)容對該頁面碎片進行渲染。
步驟408f,將碎片內(nèi)容和頁面碎片進行綁定存儲。
圖4F是本發(fā)明一個示例性實施例提供的將碎片內(nèi)容和頁面碎片進行綁定存儲方法的流程圖。如圖4F所示,步驟408f可以由步驟408f1至步驟408f2代替。
步驟408f1,判定碎片內(nèi)容是否為可靜態(tài)化的內(nèi)容。
可選的,可靜態(tài)化的內(nèi)容為與用戶賬戶無關(guān)的內(nèi)容。
步驟408f2,當碎片內(nèi)容是為可靜態(tài)化的內(nèi)容時,將該碎片內(nèi)容與頁面碎片進行綁定存儲。
可選的,當后臺服務(wù)器存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,實施步驟408g至步驟408h。
步驟408g,當存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,根據(jù)該碎片內(nèi)容對該頁面碎片進行渲染。
當后臺服務(wù)器獲取到的頁面資源中包含已存儲碎片內(nèi)容的頁面碎片時,后臺服務(wù)器可以直接根據(jù)存儲的該頁面碎片的碎片內(nèi)容對該頁面碎片進行渲染,避免反復(fù)獲取同一頁面碎片的碎片內(nèi)容,加快渲染頁面碎片的速度。
步驟408h,根據(jù)適配版式對渲染成功的頁面碎片進行組裝,得到組裝頁面。
需要說明的是,步驟408h與步驟408c相似,這里不再對步驟408h進行贅述說明。
圖4G是本發(fā)明一個示例性實施例提供的根據(jù)適配版式對渲染成功的頁面碎片進行組裝,得到組裝頁面方法的流程圖。如圖4G所示,步驟408h可以由步驟408h1至步驟408h2代替。
步驟408h1,根據(jù)適配版式對渲染成功的頁面碎片進行組裝。
步驟408h2,確定出渲染失敗的頁面碎片在適配版本中的位置,在該位置顯示預(yù)定內(nèi)容。
圖4H是本發(fā)明一個示例性實施例提供的組裝頁面的示意圖,如圖4H所示,當后臺服務(wù)器渲染頁面碎片D失敗后,后臺服務(wù)器根據(jù)頁面碎片D中的信息確定出頁面碎片D在適配版本60中的位置61,在位置61顯示預(yù)定內(nèi)容“內(nèi)容獲取失敗...”。
請參考圖5A,其示出了本發(fā)明一個實施例提供的后臺服務(wù)器中的頁面聚合裝置的結(jié)構(gòu)示意圖。該頁面聚合裝置包括:統(tǒng)一頁面編輯系統(tǒng)、頁面聚合模塊、功能門戶和用戶統(tǒng)一會話管理。
統(tǒng)一頁面編輯系統(tǒng)從編輯系統(tǒng)數(shù)據(jù)庫中獲取預(yù)定頁面的頁面母板和頁面碎片,將獲取到的頁面母板和頁面碎片發(fā)送至頁面聚合模塊。當頁面編輯系統(tǒng)中新增/修改頁面碎片和頁面母板時,統(tǒng)一頁面編輯系統(tǒng)發(fā)送變更通知到頁面聚合模塊。
頁面聚合模塊實現(xiàn)對預(yù)定頁面、頁面碎片以及頁面母板的管理。一個頁面聚合模塊相當于統(tǒng)一頁面編輯系統(tǒng)中的一個站點。
功能門戶用于實現(xiàn)預(yù)定頁面的頁面碎片的渲染、業(yè)務(wù)功能數(shù)據(jù)源的定制等功能。
用戶統(tǒng)一會話管理用于實現(xiàn)用戶會話的統(tǒng)一管理,使得頁面聚合模塊和各個功能門戶統(tǒng)一共享用戶會話信息,該用戶會話信息為與用戶相關(guān)的信息,比如:用戶名、用戶密碼、用戶資料等。
其中,頁面聚合模塊包含的功能有:頁面適配、分布式頁面渲染調(diào)度、頁面碎片渲染和頁面碎片組裝。
頁面適配功能用于實現(xiàn)對用戶請求頁面的適配過濾,包括邏輯頁面到實際頁面的適配,用戶訪問頁面權(quán)限適配,記錄用戶的頁面訪問話單。
分布式頁面渲染調(diào)度功能用于實現(xiàn)對頁面渲染的并發(fā)執(zhí)行,根據(jù)頁面碎片的多少動態(tài)調(diào)度渲染資源線程執(zhí)行頁面碎片渲染過程。當用戶訪問頁面時,將頁面中的所有頁面碎片構(gòu)造為頁面渲染隊列請求渲染調(diào)度線程申請渲染,調(diào)度線程根據(jù)待渲染碎片數(shù)從渲染資源線程池中提取空閑的渲染資源線程,利用渲染資源線程對頁面渲染隊列中的碎片執(zhí)行渲染過程。
頁面碎片渲染功能用于實現(xiàn)對頁面碎片的版式適配,請求功能門戶完成頁面渲染,在頁面渲染隊列中標識該頁面碎片已完成渲染,并保存頁面碎片的渲染結(jié)果。
頁面碎片組裝功能用于在渲染調(diào)度啟動渲染資源線程后,當頁面渲染隊列中的全部頁面碎片完成渲染后,對頁面碎片進行組裝,如存在碎片渲染失敗,則繼續(xù)拋出渲染異常(由雄貓Apache Tomcat捕獲異常跳轉(zhuǎn)至錯誤頁面)。將頁面碎片渲染結(jié)果按頁面渲染隊列順序進行組裝合并,對渲染失敗的頁面碎片不進行組裝(頁面中可能存在空白),返回組裝完成的頁面給用戶。
請參考圖5B,其示出了本發(fā)明再一個實施例提供的頁面聚合方法的流程圖,本實施例以該頁面聚合發(fā)送方法應(yīng)用于圖5A所示的后臺服務(wù)器中的頁面聚合裝置中來舉例說明,該方法包括:
步驟501,頁面匯聚模塊接收移動設(shè)備發(fā)送的獲取預(yù)定頁面的獲取請求。
步驟502,頁面匯聚模塊根據(jù)該獲取請求,從頁面服務(wù)器獲取該預(yù)定頁面的頁面資源。
步驟503,頁面匯聚模塊將預(yù)定頁面的頁面碎片添加至頁面渲染隊列中,從渲染資源線程池中提取出空閑的渲染資源線程,利用該渲染資源線程對頁面渲染隊列中的頁面碎片進行渲染。
步驟504,頁面匯聚模塊根據(jù)預(yù)存的頁面母版與適配版式的對應(yīng)關(guān)系,查詢與預(yù)定頁面的頁面母版對應(yīng)的適配版式。
步驟505,對于頁面資源中的每個頁面碎片,頁面匯聚模塊檢測靜態(tài)碎片緩存是否存儲有與該頁面碎片對應(yīng)的碎片內(nèi)容。
步驟506,當未存儲有與頁面碎片對應(yīng)的碎片內(nèi)容時,頁面匯聚模塊根據(jù)該頁面碎片的URL,從功能門戶獲取該頁面碎片對應(yīng)的碎片內(nèi)容。
步驟507,當功能門戶反饋的碎片內(nèi)容是為可靜態(tài)化的內(nèi)容時,頁面匯聚模塊將該碎片內(nèi)容與頁面碎片進行綁定存儲。
步驟508,頁面匯聚模塊根據(jù)該碎片內(nèi)容對該頁面碎片進行渲染。
步驟509,該預(yù)定頁面的頁面碎片全部渲染完成后,頁面匯聚模塊根據(jù)查詢到的該適配版式對該預(yù)定頁面的各個渲染成功的頁面碎片進行組裝,得到組裝頁面。
步驟510,頁面匯聚模塊記錄頁面訪問話單。
可選的,該頁面訪問話單為該預(yù)定頁面各個頁面碎片的點擊量。
步驟511,頁面匯聚模塊向移動終端反饋組裝頁面。
請參考圖6,其示出了本發(fā)明一個實施例提供的頁面聚合裝置的框圖。該頁面聚合裝置可以通過軟件、硬件或者兩者的結(jié)合實現(xiàn)成為后臺服務(wù)器11的全部或者一部分。該頁面聚合裝置可以包括:接收單元601、執(zhí)行單元602和發(fā)送單元603。
接收單元601,用于實現(xiàn)上述步驟301的功能。
執(zhí)行單元602,用于實現(xiàn)上述步驟302的功能。
發(fā)送單元603,用于實現(xiàn)上述步驟303的功能。
相關(guān)細節(jié)可結(jié)合參考上述方法實施例。
在另一個可選的實施例中,上述執(zhí)行單元602,用于實現(xiàn)步驟401、中至少一個步驟的功能。
需要說明的是,上述接收單元601可以通過負載生成器110的處理器執(zhí)行存儲器中的接收模塊來實現(xiàn);上述執(zhí)行單元602可以通過負載生成器110的處理器執(zhí)行存儲器中的執(zhí)行模塊來實現(xiàn);上述發(fā)送單元603可以通過負載生成器110的處理器執(zhí)行存儲器中的發(fā)送模塊來實現(xiàn)。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。