頁(yè)面展示方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,并且更具體地,涉及一種頁(yè)面展示方法和系統(tǒng)。
【背景技術(shù)】
[0002]近年來(lái),隨著電子商務(wù)網(wǎng)站的發(fā)展,每天可能會(huì)有數(shù)十億的頁(yè)面訪問(wèn)量。因此,快速地向用戶展示商品信息以及為不同的用戶展示不同的商品信息已經(jīng)成為各大電商競(jìng)爭(zhēng)的重要手段。但是,由于海量商品信息的存在且需要展示的信息的多樣化,如果直接從這些商品信息的系統(tǒng)(如可能具有多個(gè)系統(tǒng))中獲取用戶設(shè)備請(qǐng)求的數(shù)據(jù),然后進(jìn)行渲染拼裝并展示給用戶,則很難滿足快速向用戶展示的需求且還依賴這些系統(tǒng)的擴(kuò)容性。
[0003]為了提高展示的效率,目前有應(yīng)用較為廣泛的靜態(tài)化頁(yè)面生成技術(shù)。如果商品信息變更,則需要重新生成頁(yè)面。例如,某個(gè)商家的商品信息變更,該商家下的所有商品信息全量生成一遍,即與該商家下的所有商品信息對(duì)應(yīng)的頁(yè)面都需要重新生成;或者,靜態(tài)化商品頁(yè)面也可以是分段的,即有多個(gè)小文件頁(yè)面組成,當(dāng)商品信息變更時(shí),采用增量生成方式,即重新生成與變更的商品信息對(duì)應(yīng)的小文件頁(yè)面,然后拼裝這些段并展示給用戶。另夕卜,如果頁(yè)面結(jié)構(gòu)變更需要重新生成相關(guān)頁(yè)面,則需要花費(fèi)數(shù)天甚至數(shù)十天才能完成;當(dāng)整個(gè)頁(yè)面是由多個(gè)小文件頁(yè)面組成時(shí),數(shù)據(jù)的備份和同步難以實(shí)現(xiàn),因此,擴(kuò)容性也差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種頁(yè)面展示方法和系統(tǒng),快速地將頁(yè)面展示給用戶,大大提升了用戶體驗(yàn)。
[0005]第一方面,提供了一種頁(yè)面展示方法,該方法包括:獲取存儲(chǔ)的元數(shù)據(jù),其中所述元數(shù)據(jù)表示用于描述商品信息的數(shù)據(jù);根據(jù)所述元數(shù)據(jù)生成用于頁(yè)面展示的模板數(shù)據(jù);根據(jù)所述模板數(shù)據(jù)選擇相應(yīng)的模板渲染頁(yè)面,展示所述頁(yè)面。
[0006]結(jié)合第一方面,在一種可能的實(shí)現(xiàn)方式中,在所述獲取存儲(chǔ)的元數(shù)據(jù)之前,所述方法還包括:根據(jù)所述商品信息生成所述元數(shù)據(jù),并存儲(chǔ)所述元數(shù)據(jù)。
[0007]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,當(dāng)獲知所述商品信息已修改時(shí),根據(jù)修改后的商品信息修改存儲(chǔ)的所述元數(shù)據(jù);或者當(dāng)獲知所述商品信息已刪除時(shí),刪除存儲(chǔ)的所述元數(shù)據(jù)。
[0008]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述方法還包括:使用并行化技術(shù)從所述商品信息的源系統(tǒng)獲取所述商品信息。
[0009]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述方法還包括:對(duì)存儲(chǔ)的所述元數(shù)據(jù)進(jìn)行合并和重排。
[0010]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述元數(shù)據(jù)采用鍵-值數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
[0011]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述元數(shù)據(jù)的存儲(chǔ)采用數(shù)據(jù)庫(kù)集群分片方式且數(shù)據(jù)庫(kù)集群中設(shè)置有主數(shù)據(jù)庫(kù)服務(wù)器和至少一臺(tái)從數(shù)據(jù)庫(kù)服務(wù)器,其中所述至少一臺(tái)從數(shù)據(jù)庫(kù)服務(wù)器中備份所述主數(shù)據(jù)庫(kù)服務(wù)器中存儲(chǔ)的所述元數(shù)據(jù)。
[0012]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述獲取存儲(chǔ)的元數(shù)據(jù),包括:在Nginx代理服務(wù)器中內(nèi)嵌Lua腳本語(yǔ)言,采用所述Lua腳本語(yǔ)言獲取存儲(chǔ)的所述元數(shù)據(jù)。
[0013]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述元數(shù)據(jù)生成用于頁(yè)面展示的模板數(shù)據(jù),包括:通過(guò)JavaScript對(duì)象符號(hào)(JSON)解析所述元數(shù)據(jù)獲得所述模板數(shù)據(jù)。
[0014]結(jié)合第一方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述獲取存儲(chǔ)的元數(shù)據(jù),包括:基于消息隊(duì)列獲取存儲(chǔ)的元數(shù)據(jù)。
[0015]第二方面,提供了一種頁(yè)面展示系統(tǒng),該系統(tǒng)包括元數(shù)據(jù)存儲(chǔ)子系統(tǒng),模板數(shù)據(jù)子系統(tǒng)和頁(yè)面展示子系統(tǒng),其中元數(shù)據(jù)存儲(chǔ)子系統(tǒng),用于存儲(chǔ)元數(shù)據(jù),其中所述元數(shù)據(jù)表示用于描述商品信息的數(shù)據(jù);模板數(shù)據(jù)子系統(tǒng),用于獲取所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng)中存儲(chǔ)的所述元數(shù)據(jù),根據(jù)所述元數(shù)據(jù)生成頁(yè)面展示時(shí)的模板數(shù)據(jù);動(dòng)態(tài)頁(yè)面展示子系統(tǒng),用于根據(jù)所述模板數(shù)據(jù)子系統(tǒng)生成的所述模板數(shù)據(jù)選擇相應(yīng)的模板渲染頁(yè)面,展示所述頁(yè)面。
[0016]結(jié)合第二方面,在一種可能的實(shí)現(xiàn)方式中,所述頁(yè)面展示系統(tǒng)還包括數(shù)據(jù)異構(gòu)子系統(tǒng),所述數(shù)據(jù)異構(gòu)子系統(tǒng),用于根據(jù)所述商品信息生成所述元數(shù)據(jù),將所述元數(shù)據(jù)發(fā)送給所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng)。
[0017]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述頁(yè)面展示系統(tǒng)還包括數(shù)據(jù)異構(gòu)子系統(tǒng),所述數(shù)據(jù)異構(gòu)子系統(tǒng),用于當(dāng)獲知所述商品信息已修改時(shí),根據(jù)修改后的商品信息修改所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng)存儲(chǔ)的所述元數(shù)據(jù);或者所述數(shù)據(jù)異構(gòu)子系統(tǒng),用于當(dāng)獲知所述商品信息已刪除時(shí),刪除所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng)存儲(chǔ)的所述元數(shù)據(jù)。
[0018]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)異構(gòu)子系統(tǒng),還用于使用并行化技術(shù)從所述商品信息的源系統(tǒng)獲取所述商品信息。
[0019]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng),還用于對(duì)存儲(chǔ)的所述元數(shù)據(jù)進(jìn)行合并和重排。
[0020]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng),進(jìn)一步用于采用鍵-值數(shù)據(jù)庫(kù)存儲(chǔ)所述元數(shù)據(jù)。
[0021]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述元數(shù)據(jù)存儲(chǔ)子系統(tǒng),進(jìn)一步用于采用數(shù)據(jù)庫(kù)集群分片方式存儲(chǔ)所述元數(shù)據(jù),其中數(shù)據(jù)庫(kù)集群中設(shè)置有主數(shù)據(jù)庫(kù)服務(wù)器和至少一臺(tái)從數(shù)據(jù)庫(kù)服務(wù)器,所述至少一臺(tái)從數(shù)據(jù)庫(kù)服務(wù)器中備份所述主數(shù)據(jù)庫(kù)服務(wù)器中存儲(chǔ)的所述元數(shù)據(jù)。
[0022]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述模板數(shù)據(jù)子系統(tǒng),進(jìn)一步用于在Nginx代理服務(wù)器中內(nèi)嵌Lua腳本語(yǔ)言,采用所述Lua腳本語(yǔ)言獲取存儲(chǔ)的所述元數(shù)據(jù)。
[0023]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述模板數(shù)據(jù)子系統(tǒng),進(jìn)一步用于通過(guò)JavaScript對(duì)象符號(hào)(JSON)解析所述元數(shù)據(jù)獲得所述模板數(shù)據(jù)。
[0024]結(jié)合第二方面或其上述實(shí)現(xiàn)方式中的任一種實(shí)現(xiàn)方式,在另一種可能的實(shí)現(xiàn)方式中,所述模板數(shù)據(jù)子系統(tǒng),進(jìn)一步用于基于消息隊(duì)列獲取存儲(chǔ)的元數(shù)據(jù)。
[0025]在本發(fā)明實(shí)施例中,通過(guò)存儲(chǔ)的元數(shù)據(jù)來(lái)生成模板數(shù)據(jù),根據(jù)模板數(shù)據(jù)選擇相應(yīng)的模板渲染頁(yè)面并展示給用戶,這樣無(wú)需依賴商品信息的系統(tǒng),并不受這些系統(tǒng)的可用性問(wèn)題的困擾,因而能夠快速地將頁(yè)面展示給用戶,大大提升了用戶體驗(yàn),并實(shí)現(xiàn)千人千面的需求。
【附圖說(shuō)明】
[0026]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本