本說明書涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種動(dòng)態(tài)頁面的實(shí)現(xiàn)方法和裝置。
背景技術(shù):
隨著移動(dòng)網(wǎng)絡(luò)技術(shù)的發(fā)展,客戶端app(應(yīng)用程序)飛速成為終端上的主流程序。用戶可以使用各個(gè)網(wǎng)絡(luò)服務(wù)提供者的app,與對(duì)應(yīng)的服務(wù)端進(jìn)行通信,來實(shí)現(xiàn)該網(wǎng)絡(luò)服務(wù)提供者的各項(xiàng)業(yè)務(wù)。具體而言,用戶通過在app內(nèi)打開的各個(gè)頁面來與服務(wù)端交互,完成獲取業(yè)務(wù)信息、啟動(dòng)和控制業(yè)務(wù)過程、提交業(yè)務(wù)數(shù)據(jù)等各個(gè)流程。
由于頁面與業(yè)務(wù)的耦合程度很高,而客戶端的升級(jí)速度通常難以適應(yīng)業(yè)務(wù)快速變化的要求,因此app內(nèi)的很多頁面是動(dòng)態(tài)頁面,即無需升級(jí)在終端上安裝的客戶端軟件即可隨業(yè)務(wù)需求而變化的頁面。客戶端動(dòng)態(tài)頁面可以采用頁面模板和業(yè)務(wù)數(shù)據(jù)的結(jié)合來實(shí)現(xiàn)。通常動(dòng)態(tài)頁面中不發(fā)生變化的內(nèi)容由頁面模板的模板文件來描述,而將可能發(fā)生變化的內(nèi)容作為業(yè)務(wù)數(shù)據(jù),客戶端將頁面模板的模板文件與業(yè)務(wù)數(shù)據(jù)相結(jié)合即可得到完整的頁面數(shù)據(jù),來呈現(xiàn)頁面(包括運(yùn)行頁面上的業(yè)務(wù)邏輯)。
客戶端頁面的頁面模板通常是固定的。當(dāng)某個(gè)頁面被客戶端請求時(shí),服務(wù)端將該頁面已經(jīng)確定的頁面模板、以及匹配于該頁面模板的當(dāng)前業(yè)務(wù)數(shù)據(jù)下發(fā)給客戶端。也就是說,頁面數(shù)據(jù)中根據(jù)當(dāng)前實(shí)際情形變化往往只有業(yè)務(wù)數(shù)據(jù)。隨著業(yè)務(wù)復(fù)雜程度的提高,對(duì)動(dòng)態(tài)頁面提供更為細(xì)化的業(yè)務(wù)服務(wù)的能力提出了要求。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本說明書提供一種動(dòng)態(tài)頁面的實(shí)現(xiàn)方法,包括:
在收到客戶端的頁面數(shù)據(jù)請求后,獲取所請求頁面的規(guī)則配置,所述規(guī)則配置中包括若干個(gè)子模板、以及至少一個(gè)子模板的選用規(guī)則;
獲取所述客戶端的規(guī)則特征參數(shù),根據(jù)規(guī)則特征參數(shù)和子模板的選用規(guī)則,確定所請求頁面的模板集合中的子模板;
采用所述模板集合生成下發(fā)給所述客戶端的頁面數(shù)據(jù)。
本說明書還提供了一種動(dòng)態(tài)頁面的實(shí)現(xiàn)裝置,包括:
規(guī)則配置獲取單元,用于在收到客戶端的頁面數(shù)據(jù)請求后,獲取所請求頁面的規(guī)則配置,所述規(guī)則配置中包括若干個(gè)子模板、以及至少一個(gè)子模板的選用規(guī)則;
模板集合確定單元,用于獲取所述客戶端的規(guī)則特征參數(shù),根據(jù)規(guī)則特征參數(shù)和子模板的選用規(guī)則,確定所請求頁面的模板集合中的子模板;
頁面數(shù)據(jù)生成單元,用于采用所述模板集合生成下發(fā)給所述客戶端的頁面數(shù)據(jù)。
本說明書提供的一種計(jì)算機(jī)設(shè)備,包括:存儲(chǔ)器和處理器;所述存儲(chǔ)器上存儲(chǔ)有可由處理器運(yùn)行的計(jì)算機(jī)程序;所述處理器運(yùn)行所述計(jì)算機(jī)程序時(shí),執(zhí)行上述動(dòng)態(tài)頁面的實(shí)現(xiàn)方法所述的步驟。
本說明書提供的一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器運(yùn)行時(shí),執(zhí)行上述動(dòng)態(tài)頁面的實(shí)現(xiàn)方法所述的步驟。
由以上技術(shù)方案可見,本說明書的實(shí)施例中,將包括若干個(gè)子模板的模板集合作為動(dòng)態(tài)頁面的頁面模板,在為動(dòng)態(tài)頁面設(shè)置的規(guī)則配置中指定子模板以及子模板的選用規(guī)則,在服務(wù)端收到客戶端的頁面數(shù)據(jù)請求后,將客戶端的規(guī)則特征參數(shù)應(yīng)用于子模板的選用規(guī)則,來決定將哪個(gè)或哪些子模板作為模板集合的成員,并根據(jù)模板集合向客戶端下發(fā)頁面數(shù)據(jù),從而能夠根據(jù)客戶端由規(guī)則特征參數(shù)描述的實(shí)際情形來動(dòng)態(tài)生成適用于該客戶端的頁面模板,具有提供更為細(xì)化的業(yè)務(wù)服務(wù)的能力,為實(shí)現(xiàn)復(fù)雜程度高的業(yè)務(wù)提供了良好的支持。
附圖說明
圖1是本說明書實(shí)施例中一種動(dòng)態(tài)頁面的實(shí)現(xiàn)方法的流程圖;
圖2是本說明書應(yīng)用示例中一種客戶端、業(yè)務(wù)服務(wù)器、模板服務(wù)器、規(guī)則服務(wù)器和數(shù)據(jù)服務(wù)器之間的交互流程示意圖;
圖3是本說明書應(yīng)用示例中是否選用子模板的判斷流程示意圖;
圖4是運(yùn)行本說明書實(shí)施例的設(shè)備的一種硬件結(jié)構(gòu)圖;
圖5是本說明書實(shí)施例中一種動(dòng)態(tài)頁面的實(shí)現(xiàn)裝置的邏輯結(jié)構(gòu)圖。
具體實(shí)施方式
客戶端頁面的頁面模板可以拆分為若干個(gè)子模板,每個(gè)子模板的模板文件描述不隨業(yè)務(wù)數(shù)據(jù)變化而發(fā)生變化的部分頁面的內(nèi)容。這樣,每個(gè)頁面的頁面模板可以對(duì)應(yīng)于一個(gè)模板集合,該模板集合中包括一個(gè)到多個(gè)子模板,分別對(duì)應(yīng)于組成該頁面的各個(gè)部分;將模板集合中各個(gè)成員子模板排列后,即可得到該頁面的頁面模板。
當(dāng)某個(gè)頁面的模板集合的成員子模板發(fā)生變化時(shí),頁面模板也對(duì)應(yīng)的發(fā)生變化;如在模板集合中增加新的子模板后即可在頁面上增加對(duì)應(yīng)的內(nèi)容、在模板集合中刪除原有的子模板后即可在頁面上去掉對(duì)應(yīng)的內(nèi)容、將作為模板集合成員的一個(gè)子模板替換為另一個(gè)子模板后即可修改頁面上的一部分內(nèi)容等等。
可見,可以將動(dòng)態(tài)頁面拆分為若干個(gè)部分,每個(gè)部分對(duì)應(yīng)一個(gè)到多個(gè)子模板,如果采用一定的適用條件來確定在頁面中是否包括某個(gè)部分、以及該部分要使用哪個(gè)子模板,即可根據(jù)客戶端的實(shí)際情形(包括客戶端本身的具體情形、以及客戶端所進(jìn)行的業(yè)務(wù)的具體情形等),來使該客戶端使用相匹配的頁面模板。此外,只需修改適用條件,就可以在業(yè)務(wù)要求發(fā)生變化時(shí)更改客戶端使用的頁面模板。
基于上述思路,本說明書的實(shí)施例提出一種新的動(dòng)態(tài)頁面的實(shí)現(xiàn)方法,在頁面的規(guī)則配置中指定可能作為該頁面的模板集合成員的所有子模板,并設(shè)置至少一個(gè)子模板的選用規(guī)則;在收到客戶端的頁面數(shù)據(jù)請求后,將該客戶端的規(guī)則特征參數(shù)應(yīng)用于子模板的選用規(guī)則,來確定該頁面的模板集合中的子模板,以用來生成下發(fā)給該客戶端的頁面數(shù)據(jù),使得頁面模板能夠根據(jù)實(shí)際情形的變化而變化,從而解決了現(xiàn)有技術(shù)中存在的問題。
本說明書的實(shí)施例中,某個(gè)網(wǎng)絡(luò)提供商的客戶端安裝在用戶側(cè)的設(shè)備上,與該網(wǎng)絡(luò)服務(wù)提供者的服務(wù)端之間通過網(wǎng)絡(luò)相互可訪問。其中,運(yùn)行客戶端的設(shè)備可以是手機(jī)、平板電腦、pc(personalcomputer,個(gè)人電腦)、筆記本等;服務(wù)端可以運(yùn)行在一個(gè)到多個(gè)設(shè)備上,如pc、筆記本、服務(wù)器等,服務(wù)端可以作為一個(gè)邏輯服務(wù)器運(yùn)行,也可以由兩個(gè)或兩個(gè)以上分擔(dān)不同職責(zé)的邏輯服務(wù)器、相互協(xié)同來實(shí)現(xiàn)本說明書實(shí)施例中服務(wù)端的各項(xiàng)功能。
本說明書的實(shí)施例中,動(dòng)態(tài)頁面的實(shí)現(xiàn)方法的流程如圖1所示,該方法應(yīng)用在網(wǎng)絡(luò)服務(wù)提供者的服務(wù)端。
步驟110,在收到客戶端的頁面數(shù)據(jù)請求后,獲取所請求頁面的規(guī)則配置,所述規(guī)則配置中包括若干個(gè)子模板、以及至少一個(gè)子模板的選用規(guī)則。
本說明書的實(shí)施例中,預(yù)先為每個(gè)需要?jiǎng)討B(tài)生成頁面模板的頁面設(shè)置規(guī)則配置。頁面模板由該頁面的模板集合中的所有成員子模板組成,在規(guī)則配置中包括可能成為該頁面的模板集合成員的所有子模板。這些子模板中,有的或者每個(gè)子模板在一定條件下能夠成為該頁面的模板集合成員,能夠和/或不能成為模板集合成員的條件由該子模板的選用規(guī)則來描述。此外,子模板中還可以有作為該頁面模板集合的固定成員的子模板(即在任何條件下該子模板都會(huì)成為頁面模板的組成部分),對(duì)作為固定成員的子模板可以不設(shè)置選用規(guī)則。
選用規(guī)則中的條件針對(duì)一個(gè)到多個(gè)規(guī)則特征參數(shù)來設(shè)置。規(guī)則特征參數(shù)可以是服務(wù)端可以獲得的、并且能夠反映客戶端實(shí)際情形任意參數(shù),例如,可以是描述客戶端本身的客戶端屬性參數(shù)(如客戶端版本、客戶端是否安裝某個(gè)組件等),可以是描述在該客戶端登錄的用戶賬戶的用戶屬性參數(shù)(如用戶賬戶的vip等級(jí)、用戶賬戶類別等),可以是描述運(yùn)行該客戶端的設(shè)備當(dāng)前地理位置的地理位置參數(shù)(如所在的城市、基于全球定位系統(tǒng)的經(jīng)緯度等),可以是描述該客戶端所在操作系統(tǒng)的操作系統(tǒng)屬性參數(shù)(如操作系統(tǒng)的名稱、操作系統(tǒng)版本號(hào)等),還可以是描述該客戶端與該頁面相關(guān)聯(lián)的一個(gè)到多個(gè)業(yè)務(wù)的業(yè)務(wù)屬性參數(shù)(如客戶端所進(jìn)行業(yè)務(wù)的業(yè)務(wù)類型、業(yè)務(wù)所需的安全等級(jí)等)。
可以根據(jù)應(yīng)用場景的需求來采用不同類型的選用規(guī)則,本說明書的實(shí)施例不做限定。通常選用規(guī)則的類型包括入選規(guī)則和排除規(guī)則中的一種或者兩種。其中,某個(gè)子模板的入選規(guī)則是當(dāng)客戶端的一個(gè)到多個(gè)規(guī)則特征參數(shù)滿足該子模板的預(yù)定入選條件時(shí),將該子模板作為模板集合的成員;某個(gè)子模板的排除規(guī)則是當(dāng)客戶端的一個(gè)到多個(gè)規(guī)則特征參數(shù)滿足該子模板的預(yù)定排除條件時(shí),不將該子模板作為模板集合的成員。
在一些應(yīng)用場景中,某個(gè)或某些子模板通常在一定的條件下使用,而在一些特定時(shí)間段內(nèi)則成為模板集合的固定成員。對(duì)這樣的應(yīng)用場景,可以在選用規(guī)則的類型中增加強(qiáng)制規(guī)則,當(dāng)某個(gè)子模板的選用規(guī)則中包括強(qiáng)制規(guī)則時(shí),則無需考慮該子模板的其他選用規(guī)則,直接將該子模板作為模板集合的成員。這樣,當(dāng)特定時(shí)間段到來時(shí),可以在該子模板的選用規(guī)則中添加強(qiáng)制規(guī)則,而無需更改該子模板的其他選用規(guī)則,當(dāng)特定時(shí)間段過去時(shí),只要?jiǎng)h除強(qiáng)制規(guī)則,即可恢復(fù)該子模板的規(guī)則配置,極大的方便了對(duì)頁面模板的臨時(shí)調(diào)整。
在生成頁面的規(guī)則配置后,可以將頁面與其規(guī)則配置的對(duì)應(yīng)關(guān)系保存在服務(wù)端可以訪問的存儲(chǔ)位置。
客戶端在打開某個(gè)采用本說明書實(shí)施例實(shí)現(xiàn)的頁面時(shí),向服務(wù)端發(fā)起頁面數(shù)據(jù)請求,在頁面數(shù)據(jù)請求中攜帶可以用來確定所打開的是哪個(gè)頁面的信息,該信息可以是要打開頁面的標(biāo)識(shí),也可以是客戶端發(fā)起某個(gè)業(yè)務(wù)過程的指示(即要打開的頁面是用來進(jìn)行該業(yè)務(wù)過程的頁面),不做限定。服務(wù)端收到客戶端的頁面數(shù)據(jù)請求,確定客戶端所請求的頁面,從保存頁面與規(guī)則配置的對(duì)應(yīng)關(guān)系的存儲(chǔ)位置讀取該頁面的規(guī)則配置。
步驟120,獲取客戶端的規(guī)則特征參數(shù),根據(jù)規(guī)則特征參數(shù)和子模板的選用規(guī)則,確定所請求頁面的模板集合中的子模板。
在得到客戶端請求頁面的規(guī)則配置后,服務(wù)端可以按照該規(guī)則配置中所采用的規(guī)則配置參數(shù),來獲取該客戶端的這些規(guī)則配置參數(shù)的值。在不同的應(yīng)用場景中,對(duì)不同的規(guī)則特征參數(shù),服務(wù)端可以采用不同的獲取方式,本說明書的實(shí)施例不做限定。
例如,在一些應(yīng)用場景中,客戶端有的操作系統(tǒng)屬性參數(shù)、客戶端屬性參數(shù)、以及用戶屬性參數(shù),會(huì)由客戶端在登錄到服務(wù)端時(shí)提供給服務(wù)端,服務(wù)端會(huì)保存這些參數(shù)與客戶端所在的用戶側(cè)設(shè)備的對(duì)應(yīng)關(guān)系。在客戶端發(fā)起頁面數(shù)據(jù)請求后,服務(wù)端可以根據(jù)發(fā)起請求的用戶側(cè)設(shè)備,從保存的對(duì)應(yīng)關(guān)系中得知客戶端的這些規(guī)則特征參數(shù)。
再如,對(duì)一些反映客戶端當(dāng)前狀態(tài)的規(guī)則特征參數(shù),如有的地理位置參數(shù)、業(yè)務(wù)屬性參數(shù)等,可以由客戶端在頁面數(shù)據(jù)請求中發(fā)送給服務(wù)端,服務(wù)端從頁面數(shù)據(jù)請求中提取這些參數(shù)值即可。
在得到客戶端的規(guī)則特征參數(shù)后,服務(wù)端將這些規(guī)則特征參數(shù)應(yīng)用于頁面的規(guī)則配置中每個(gè)子模板的選用規(guī)則,以確定某個(gè)子模板是否成為該頁面模板集合的成員。具體而言,對(duì)包括模板集合固定成員的頁面,假設(shè)對(duì)固定成員不在規(guī)則配置中設(shè)置選用規(guī)則的,服務(wù)端在得到客戶端的規(guī)則配置參數(shù)后,將所請求頁面的規(guī)則配置中不具有選用規(guī)則的子模板作為所請求頁面模板集合的成員,將客戶端的規(guī)則特征參數(shù)與每個(gè)子模板的選用規(guī)則相匹配,根據(jù)匹配結(jié)果和選用規(guī)則的類型確定是否將具有該選用規(guī)則的子模板作為所請求頁面模板集合的成員。
例如,如果客戶端的規(guī)則特征參數(shù)匹配于某個(gè)子模板的入選規(guī)則,則該子模板成為模板集合的成員;再如,如果客戶端的規(guī)則特征參數(shù)匹配于某個(gè)子模板的排除規(guī)則,則該子模板不會(huì)成為模板集合的成員。
一個(gè)頁面的規(guī)則配置中,一個(gè)子模板可以有一條到多條選用規(guī)則,這些選用規(guī)則可以是不同的類型,采用不同的規(guī)則特征參數(shù),具有不同的條件(如預(yù)定入選條件或預(yù)定排除條件),不做限定。這樣,通過將在一個(gè)頁面上可能使用的子模板寫入該頁面的規(guī)則配置中,并采用能夠描述使用每個(gè)子模板的實(shí)際情形的規(guī)則特征參數(shù)來構(gòu)成該每個(gè)子模板的選用規(guī)則,就可以得到匹配于各種不同實(shí)際情形的模板集合。以下舉幾個(gè)例子來說明。
第一個(gè)例子:如果希望對(duì)不同城市的用戶,在頁面的某個(gè)部分采用不同的模板來呈現(xiàn)內(nèi)容,則可以將客戶端所在城市作為一個(gè)規(guī)則特征參數(shù),將每個(gè)城市在該部分要使用的模板作為一個(gè)子模板,并且將客戶端所在城市是哪個(gè)來作為用于該城市的子模板的入選規(guī)則。這樣可以以城市為地區(qū)級(jí)別進(jìn)行至少部分頁面的差異化顯示,根據(jù)不同城市分別控制渲染頁面時(shí)使用的模板。
第二個(gè)例子:將客戶端版本作為一個(gè)規(guī)則特征參數(shù),將頁面上因客戶端版本不同而不同的布局作為與每個(gè)客戶端版本對(duì)應(yīng)的數(shù)個(gè)子模板,將客戶端版本是哪個(gè)來作為用于該版本的子模板的入選規(guī)則,從而實(shí)現(xiàn)基于客戶端版本的差異化模板渲染控制。
第三個(gè)例子:將在客戶端登錄的用戶賬戶等級(jí)作為一個(gè)規(guī)則特征參數(shù),每個(gè)用戶賬戶等級(jí)對(duì)應(yīng)于一個(gè)子模板,將用戶賬戶等級(jí)為幾級(jí)來作為用于該級(jí)別用戶賬戶的子模板的入選規(guī)則,能夠?qū)崿F(xiàn)基于用戶賬戶的模板差異化。
第四個(gè)例子:將客戶端所在操作系統(tǒng)的名稱,如android或ios,作為一個(gè)規(guī)則特征參數(shù),將適用于每種操作系統(tǒng)的頁面布局作為一個(gè)子模板,以操作系統(tǒng)名稱是哪個(gè)來作為用于該操作系統(tǒng)的子模板的入選規(guī)則,實(shí)現(xiàn)基于不同操作系統(tǒng)的差異化模板渲染控制。
第五個(gè)例子:設(shè)網(wǎng)絡(luò)服務(wù)提供者在進(jìn)行幾個(gè)促銷活動(dòng),當(dāng)客戶端啟動(dòng)某項(xiàng)業(yè)務(wù)時(shí),根據(jù)為該業(yè)務(wù)設(shè)置的促銷活動(dòng)來展示頁面的相應(yīng)部分??梢詫⒖蛻舳藛?dòng)的業(yè)務(wù)作為一個(gè)規(guī)則特征參數(shù),將展示每個(gè)促銷活動(dòng)的模板作為一個(gè)子模板,以客戶端啟動(dòng)的業(yè)務(wù)是哪個(gè)來作為用于與該業(yè)務(wù)對(duì)應(yīng)的促銷活動(dòng)的子模板的入選規(guī)則,即可按照客戶端所啟動(dòng)的業(yè)務(wù)來進(jìn)行頁面呈現(xiàn)。
步驟130,采用模板集合生成下發(fā)給該客戶端的頁面數(shù)據(jù)。
對(duì)客戶端所請求的頁面,服務(wù)端確定的該頁面的模板集合即為組成該頁面模板的所有子模板的集合。生成頁面數(shù)據(jù)的方法可參照現(xiàn)有技術(shù)實(shí)現(xiàn),不再贅述。根據(jù)服務(wù)端與客戶端的具體實(shí)現(xiàn),生成的頁面數(shù)據(jù)可以具有不同的形式,本說明書的實(shí)施例不做限定。
例如,在網(wǎng)絡(luò)服務(wù)提供者的服務(wù)端包括業(yè)務(wù)服務(wù)器和數(shù)據(jù)服務(wù)器的應(yīng)用場景中,業(yè)務(wù)服務(wù)器負(fù)責(zé)響應(yīng)客戶端的頁面數(shù)據(jù)請求,數(shù)據(jù)服務(wù)器負(fù)責(zé)提供業(yè)務(wù)數(shù)據(jù)。在這種應(yīng)用場景中,業(yè)務(wù)服務(wù)器可以在生成客戶端所請求頁面的模板集合后,從數(shù)據(jù)服務(wù)器獲取模板集合中每個(gè)子模板對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù),將模板集合中每個(gè)子模板的模板文件、和對(duì)應(yīng)于每個(gè)子模板的業(yè)務(wù)數(shù)據(jù)打包后生成該客戶端的頁面數(shù)據(jù)。
再如,在網(wǎng)絡(luò)服務(wù)提供者的服務(wù)端包括業(yè)務(wù)服務(wù)器、模板服務(wù)器和數(shù)據(jù)服務(wù)器的應(yīng)用場景中,業(yè)務(wù)服務(wù)器負(fù)責(zé)響應(yīng)客戶端的頁面數(shù)據(jù)請求,數(shù)據(jù)服務(wù)器負(fù)責(zé)提供業(yè)務(wù)數(shù)據(jù),模板服務(wù)器負(fù)責(zé)向客戶端提供模板文件。這種應(yīng)用場景中,業(yè)務(wù)服務(wù)器可以在生成客戶端所請求頁面的模板集合后,從數(shù)據(jù)服務(wù)器獲取該模板集合中每個(gè)子模板對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù),采用模板集合和所獲取的業(yè)務(wù)數(shù)據(jù)生成頁面數(shù)據(jù)下發(fā)給所述客戶端??蛻舳藦捻撁鏀?shù)據(jù)中可以得知要使用哪個(gè)或哪些子模板的模板文件,這樣客戶端可以從模板服務(wù)器獲取作為模板集合成員的每個(gè)子模板的模板文件,并按照模板文件和業(yè)務(wù)數(shù)據(jù)進(jìn)行頁面呈現(xiàn)。
可見,本說明書的實(shí)施例中,將包括若干個(gè)子模板的模板集合作為頁面的頁面模板,在頁面的規(guī)則配置中指定子模板以及子模板的選用規(guī)則,在服務(wù)端收到客戶端的頁面數(shù)據(jù)請求后,將該客戶端的規(guī)則特征參數(shù)應(yīng)用于子模板的選用規(guī)則,來確定該頁面的模板集合中的子模板,并根據(jù)模板集合向客戶端下發(fā)頁面數(shù)據(jù),使得頁面模板能夠根據(jù)隨客戶端實(shí)際情形的變化而變化,具有提供更為細(xì)化的業(yè)務(wù)服務(wù)的能力,為實(shí)現(xiàn)復(fù)雜程度高的業(yè)務(wù)提供了良好的支持。
上述對(duì)本說明書特定實(shí)施例進(jìn)行了描述。其它實(shí)施例在所附權(quán)利要求書的范圍內(nèi)。在一些情況下,在權(quán)利要求書中記載的動(dòng)作或步驟可以按照不同于實(shí)施例中的順序來執(zhí)行并且仍然可以實(shí)現(xiàn)期望的結(jié)果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續(xù)順序才能實(shí)現(xiàn)期望的結(jié)果。在某些實(shí)施方式中,多任務(wù)處理和并行處理也是可以的或者可能是有利的。
在本說明書的一個(gè)應(yīng)用示例中,第三方支付平臺(tái)的服務(wù)端包括業(yè)務(wù)服務(wù)器、模板服務(wù)器、規(guī)則服務(wù)器和數(shù)據(jù)服務(wù)器,第三方支付平臺(tái)的客戶端安裝在用戶的終端上??蛻舳?、業(yè)務(wù)服務(wù)器、模板服務(wù)器、規(guī)則服務(wù)器和數(shù)據(jù)服務(wù)器之間的交互流程如圖2所示。其中,規(guī)則配置服務(wù)器上維護(hù)有客戶端各個(gè)動(dòng)態(tài)頁面的頁面標(biāo)識(shí)與該頁面的規(guī)則配置的對(duì)應(yīng)關(guān)系,模板服務(wù)器上維護(hù)有每個(gè)子模板的模板文件。
當(dāng)用戶在客戶端上打開某個(gè)動(dòng)態(tài)頁面時(shí),客戶端向業(yè)務(wù)服務(wù)器發(fā)送頁面數(shù)據(jù)請求,在頁面數(shù)據(jù)請求中包括所請求頁面的標(biāo)識(shí)。
業(yè)務(wù)服務(wù)器提取頁面數(shù)據(jù)請求中的頁面標(biāo)識(shí),向規(guī)則服務(wù)器查詢該頁面的規(guī)則配置。規(guī)則服務(wù)器將該頁面標(biāo)識(shí)對(duì)應(yīng)的規(guī)則配置返回給業(yè)務(wù)服務(wù)器。
頁面的規(guī)則配置中包括每個(gè)可能在該頁面使用的子模板、以及其中部分或全部子模板的選用規(guī)則。選用規(guī)則包括included(入選規(guī)則)、excluded(排除規(guī)則)和ignore(強(qiáng)制規(guī)則)三種類型。
頁面的規(guī)則配置的格式采用json(javascriptobjectnotation,java腳本對(duì)象標(biāo)記)結(jié)構(gòu)。一種示例性的結(jié)構(gòu)如下:
其中,page1和page2是兩個(gè)頁面的頁面標(biāo)識(shí),block1和block2是兩個(gè)子模板的標(biāo)識(shí),ruletype用來定義規(guī)則類型,key1、key2和key3為規(guī)則特征參數(shù),value1、value2和value3為規(guī)則特征參數(shù)的取值。其中,規(guī)則特征參數(shù)及其取值定義了匹配條件,而ruletype定義了規(guī)則類型,匹配條件和規(guī)則類型相結(jié)合,來確定所屬的子模板是否為該頁面模板集合的成員,即該頁面是否采用該子模板。
上述規(guī)則配置示例的含義為:對(duì)頁面標(biāo)識(shí)為page1的頁面,當(dāng)規(guī)則特征參數(shù)key1的值為value1或value2、規(guī)則特征參數(shù)key2的值為value1或value2、并且規(guī)則特征參數(shù)key3的值為value3或value2時(shí),page1頁面的模板集合中包括子模板block1、不包括子模板block2;否則page1頁面的模板集合中不包括子模板block1、包括子模板block2。對(duì)頁面標(biāo)識(shí)為page2的頁面,子模板block1適用ignore強(qiáng)制規(guī)則,不論是否對(duì)子模板block1定義了其他規(guī)則,page2頁面的模板集合中都包括子模板block1。
業(yè)務(wù)服務(wù)器按照客戶端所請求頁面的規(guī)則配置中采用的規(guī)則特征參數(shù),獲取該客戶端的這些規(guī)則特征參數(shù)的值,將其應(yīng)用于規(guī)則配置中各個(gè)子模板的選用規(guī)則,決定該頁面的模板集合中包括哪個(gè)或哪些子模板。
設(shè)客戶端頁面的規(guī)則特征參數(shù)包括:userlist(用戶賬戶名稱)、areacodelist(客戶端所在城市)、bizidlist(業(yè)務(wù)類型)、clientostypelist(操作系統(tǒng)名稱)、clientversionlist(客戶端版本號(hào))五個(gè),在規(guī)則配置中采用上述5個(gè)規(guī)則特征參數(shù)來設(shè)置子模板選用規(guī)則的匹配條件,則對(duì)于每一個(gè)子模板,可以根據(jù)圖3所示的流程來判斷是否將該子模板作為模板集合的成員:
步驟302,提取一個(gè)子模板的選用規(guī)則;
步驟304,判斷選用規(guī)則中是否包括ignore類型,如果包括,則將該子模板的標(biāo)識(shí)寫入模板集合中,流程結(jié)束;否則執(zhí)行步驟306;
步驟306,判斷客戶端userlist的值是否符合userlist的匹配條件,如果符合,執(zhí)行步驟308,否則轉(zhuǎn)步驟318;
步驟308,判斷客戶端areacodelist的值是否符合areacodelist的匹配條件,如果符合,執(zhí)行步驟310,否則轉(zhuǎn)步驟318;
步驟310,判斷客戶端bizidlist的值是否符合bizidlist的匹配條件,如果符合,執(zhí)行步驟312,否則轉(zhuǎn)步驟318;
步驟312,判斷客戶端clientostypelist的值是否符合clientostypelist的匹配條件,如果符合,執(zhí)行步驟314,否則轉(zhuǎn)步驟318;
步驟314,判斷客戶端clientversionlist的值是否符合clientversionlist的匹配條件,如果符合,執(zhí)行步驟316,否則轉(zhuǎn)步驟318;
步驟316,判斷該子模板的規(guī)則類型,如果是included,則將該子模板的標(biāo)識(shí)寫入模板集合中,流程結(jié)束;
步驟318,判斷該子模板的規(guī)則類型,如果是excluded,則將該子模板的標(biāo)識(shí)寫入模板集合中,流程結(jié)束。
設(shè)頁面標(biāo)識(shí)為home_page的頁面、頁面標(biāo)識(shí)為shop_page的頁面的規(guī)則配置如下:
根據(jù)上述規(guī)則配置,對(duì)于home_page頁面,如果客戶端的規(guī)則特征參數(shù)areacode為810000、或820000、或匹配392.*,bizid為1111或2222,客戶端操作系統(tǒng)為android或ios,userlist匹配123[45].*,則子模板homeblock1會(huì)成為該客戶端的home_page頁面的模板集合成員;否則該客戶端的home_page頁面不使用子模板homeblock1;
對(duì)于home_page頁面,如果客戶端的規(guī)則特征參數(shù)areacode為810000、或820000、或匹配392.*,bizid為1111或2222,客戶端操作系統(tǒng)為android或ios,userlist匹配123[45].*,則該客戶端的home_page頁面不使用子模板homeblock2;否則子模板homeblock2會(huì)成為該客戶端的home_page頁面的模板集合成員;
對(duì)于shop_page頁面,由于子模板shopblock1設(shè)置了ignore規(guī)則,則對(duì)子模板shopblock1設(shè)置的其他規(guī)則忽略,子模板shopblock1會(huì)成為該客戶端的shop_page頁面的模板集合成員。
在確定適用于該客戶端所請求頁面的模板集合后,業(yè)務(wù)服務(wù)器按照模板集合中每個(gè)子模板所需的業(yè)務(wù)數(shù)據(jù),向數(shù)據(jù)服務(wù)器發(fā)起業(yè)務(wù)數(shù)據(jù)查詢請求。數(shù)據(jù)服務(wù)器將被請求的業(yè)務(wù)數(shù)據(jù)返回給業(yè)務(wù)服務(wù)器。為了加快對(duì)客戶端的響應(yīng)速度,業(yè)務(wù)服務(wù)器可以采用多個(gè)進(jìn)程或線程來獲取業(yè)務(wù)數(shù)據(jù)。
業(yè)務(wù)服務(wù)器將模板集合、業(yè)務(wù)數(shù)據(jù)按照預(yù)定格式封裝為頁面數(shù)據(jù),將頁面數(shù)據(jù)響應(yīng)中發(fā)送給客戶端。
客戶端從頁面數(shù)據(jù)響應(yīng)中提取出模板集合和業(yè)務(wù)數(shù)據(jù),按照模板集合中各個(gè)子模板的標(biāo)識(shí),向模板服務(wù)器發(fā)起模板文件請求。模板服務(wù)器將具有這些標(biāo)識(shí)的子模板的模板文件返回給客戶端。
客戶端將模板文件與業(yè)務(wù)數(shù)據(jù)相結(jié)合后,進(jìn)行頁面呈現(xiàn)。
與上述流程實(shí)現(xiàn)對(duì)應(yīng),本說明書的實(shí)施例還提供了一種動(dòng)態(tài)頁面的實(shí)現(xiàn)裝置。該裝置可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為邏輯意義上的裝置,是通過運(yùn)行本說明書實(shí)施例的設(shè)備的cpu(centralprocessunit,中央處理器)將對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,除了圖4所示的cpu、內(nèi)存以及存儲(chǔ)器之外,動(dòng)態(tài)頁面的實(shí)現(xiàn)裝置所在的設(shè)備通常還包括用于進(jìn)行無線信號(hào)收發(fā)的芯片等其他硬件,和/或用于實(shí)現(xiàn)網(wǎng)絡(luò)通信功能的板卡等其他硬件。
圖5所示為本說明書實(shí)施例提供的一種動(dòng)態(tài)頁面的實(shí)現(xiàn)裝置,包括規(guī)則配置獲取單元、模板集合確定單元和頁面數(shù)據(jù)生成單元,其中:規(guī)則配置獲取單元用于在收到客戶端的頁面數(shù)據(jù)請求后,獲取所請求頁面的規(guī)則配置,所述規(guī)則配置中包括若干個(gè)子模板、以及至少一個(gè)子模板的選用規(guī)則;模板集合確定單元用于獲取所述客戶端的規(guī)則特征參數(shù),根據(jù)規(guī)則特征參數(shù)和子模板的選用規(guī)則,確定所請求頁面的模板集合中的子模板;頁面數(shù)據(jù)生成單元用于采用所述模板集合生成下發(fā)給所述客戶端的頁面數(shù)據(jù)。
一個(gè)例子中,所述子模板的選用規(guī)則的類型包括:入選規(guī)則和排除規(guī)則中的至少一種;所述入選規(guī)則為:當(dāng)客戶端的一個(gè)到多個(gè)規(guī)則特征參數(shù)滿足所述子模板的預(yù)定入選條件時(shí),將所述子模板作為模板集合的成員;所述排除規(guī)則為:當(dāng)客戶端的一個(gè)到多個(gè)規(guī)則特征參數(shù)滿足所述子模板的預(yù)定排除條件時(shí),不將所述子模板作為模板集合的成員。
上述例子中,所述子模板的選用規(guī)則的類型還包括:強(qiáng)制規(guī)則,當(dāng)子模板的選用規(guī)則包括強(qiáng)制規(guī)則時(shí),將所述子模板作為模板集合的成員。
可選的,所述模板集合確定單元根據(jù)規(guī)則特征參數(shù)和子模板的選用規(guī)則,確定所請求頁面的模板集合中的子模板,包括:將所請求頁面的規(guī)則配置中不具有選用規(guī)則的子模板作為所請求頁面模板集合的成員;將所述客戶端的規(guī)則特征參數(shù)與子模板的選用規(guī)則相匹配,根據(jù)匹配結(jié)果和選用規(guī)則的類型確定是否將具有所述選用規(guī)則的子模板作為所請求頁面模板集合的成員。
一種實(shí)現(xiàn)方式中,所述規(guī)則特征參數(shù)包括以下一項(xiàng)到多項(xiàng):地理位置參數(shù)、操作系統(tǒng)屬性參數(shù)、客戶端屬性參數(shù)、用戶屬性參數(shù)、業(yè)務(wù)屬性參數(shù)。
上述實(shí)現(xiàn)方式中,所述地理位置參數(shù)包括:所在的城市;所述操作系統(tǒng)參數(shù)包括:操作系統(tǒng)的名稱;所述客戶端屬性參數(shù)包括:客戶端版本。
可選的,所述頁面數(shù)據(jù)生成單元具體用于:獲取所述模板集合中每個(gè)子模板對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù),采用模板集合和所獲取的業(yè)務(wù)數(shù)據(jù)生成頁面數(shù)據(jù)下發(fā)給所述客戶端,供所述客戶端根據(jù)模板集合獲取作為其成員的子模板的模板文件,按照模板文件和業(yè)務(wù)數(shù)據(jù)進(jìn)行頁面呈現(xiàn)。
本說明書的實(shí)施例提供了一種計(jì)算機(jī)設(shè)備,該計(jì)算機(jī)設(shè)備包括存儲(chǔ)器和處理器。其中,存儲(chǔ)器上存儲(chǔ)有能夠由處理器運(yùn)行的計(jì)算機(jī)程序;處理器在運(yùn)行存儲(chǔ)的計(jì)算機(jī)程序時(shí),執(zhí)行本說明書實(shí)施例中動(dòng)態(tài)頁面的實(shí)現(xiàn)方法的各個(gè)步驟。對(duì)動(dòng)態(tài)頁面的實(shí)現(xiàn)方法的各個(gè)步驟的詳細(xì)描述請參見之前的內(nèi)容,不再重復(fù)。
本說明書的實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,這些計(jì)算機(jī)程序在被處理器運(yùn)行時(shí),執(zhí)行本說明書實(shí)施例中動(dòng)態(tài)頁面的實(shí)現(xiàn)方法的各個(gè)步驟。對(duì)動(dòng)態(tài)頁面的實(shí)現(xiàn)方法的各個(gè)步驟的詳細(xì)描述請參見之前的內(nèi)容,不再重復(fù)。
以上所述僅為本說明書的較佳實(shí)施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護(hù)的范圍之內(nèi)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本說明書的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本說明書的實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本說明書的實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。