本發(fā)明涉及信息處理技術(shù)領(lǐng)域,具體而言涉及一種頁面渲染和驗(yàn)證的方法和裝置。
背景技術(shù):
在初始業(yè)務(wù)頁面根據(jù)不同業(yè)務(wù)場景不斷演變的過程中,該頁面的開發(fā)往往需要針對業(yè)務(wù)進(jìn)行相應(yīng)的調(diào)整,每種衍生業(yè)務(wù)之間除了通用的配置外還存在著一些較小的差異,這些較小的差異還不足觸發(fā)將該衍生業(yè)務(wù)變?yōu)楠?dú)立業(yè)務(wù)的條件,故在開發(fā)實(shí)現(xiàn)上往往將衍生業(yè)務(wù)差異的渲染及輸入驗(yàn)證邏輯添加至該初始業(yè)務(wù)頁面,導(dǎo)致該頁面JavaScript過于臃腫,不利于后續(xù)人員調(diào)試和維護(hù)
若采用與上述相反的開發(fā)方式,每種衍生業(yè)務(wù)獨(dú)立新增和維護(hù)衍生業(yè)務(wù)頁面渲染及輸入驗(yàn)證邏輯則會產(chǎn)生大量重復(fù)代碼,在更改通用業(yè)務(wù)配置時則需修改多個文件,往往會遺漏或產(chǎn)生錯誤,同時帶來更多的重復(fù)功能的測試工作量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種頁面渲染和驗(yàn)證的方法和裝置,以改善上述技術(shù)問題。
本發(fā)明實(shí)施例提供了一種頁面渲染和驗(yàn)證的方法,其包括:
S1)基于初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間的異同,提取通用業(yè)務(wù)配置和衍生業(yè)務(wù)配置;
S2)將通用業(yè)務(wù)配置進(jìn)行封裝,同時將一種或多種衍生業(yè)務(wù)配置分出各自的屬性邏輯和驗(yàn)證邏輯并且各自分別封裝,其中將通用業(yè)務(wù)的封裝和衍生業(yè)務(wù)的封裝分別保存至相應(yīng)的頁面配置文件中,并且每一種衍生業(yè)務(wù)對應(yīng)一個頁面配置文件;
S3)根據(jù)用戶選擇的衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,并在通用業(yè)務(wù)的頁面配置文件中綁定一個表單驗(yàn)證方法;
S4)渲染過程中先加載通用業(yè)務(wù)數(shù)據(jù)再加載衍生業(yè)務(wù)數(shù)據(jù),頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù),然后校驗(yàn)衍生業(yè)務(wù)數(shù)據(jù)。
優(yōu)選的,在步驟S1中,將初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間相同的業(yè)務(wù)數(shù)據(jù)提取為通用業(yè)務(wù)配置數(shù)據(jù),將衍生業(yè)務(wù)頁面不同于初始業(yè)務(wù)頁面的業(yè)務(wù)數(shù)據(jù)提取為衍生業(yè)務(wù)配置數(shù)據(jù)。
優(yōu)選的,在步驟S2中,將通用業(yè)務(wù)配置封裝在$(document).ready初始化方法里并且將該初始化方法和通用業(yè)務(wù)配置信息一起保存在第一頁面配置文件中,將一個衍生業(yè)務(wù)配置的屬性邏輯封裝在$(document).ready方法里,將該衍生業(yè)務(wù)配置的驗(yàn)證邏輯封裝在jQuery.validation驗(yàn)證方法,并且將該衍生業(yè)務(wù)配置的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在第二頁面配置文件中,在有多種衍生業(yè)務(wù)時以此方式將每種衍生業(yè)務(wù)的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在各自對應(yīng)的頁面配置文件中。
優(yōu)選的,在步驟S3中,使用頁面標(biāo)簽語言判斷用戶選擇的衍生業(yè)務(wù)類型,根據(jù)不同衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,在通用業(yè)務(wù)的頁面配置文件中在表單提交按鈕上綁定表單驗(yàn)證方法,該表單驗(yàn)證方法在處理通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證后執(zhí)行衍生業(yè)務(wù)配置的驗(yàn)證邏輯。
優(yōu)選的,在步驟S4中,首先加載通用業(yè)務(wù)的頁面配置文件中保存的初始化方法,然后執(zhí)行衍生業(yè)務(wù)的頁面配置文件中保存的初始化方法,在頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù)的有效性,然后根據(jù)加載到通用業(yè)務(wù)的頁面配置文件中的衍生業(yè)務(wù)的頁面配置文件中保存的驗(yàn)證方法來校驗(yàn)與其對應(yīng)的衍生業(yè)務(wù)數(shù)據(jù)的有效性。
本發(fā)明實(shí)施例還提供了一種頁面渲染和驗(yàn)證的裝置,其包括:
業(yè)務(wù)配置提取單元,用于基于初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間的異同,提取通用業(yè)務(wù)配置和衍生業(yè)務(wù)配置;
封裝和保存單元,用于將通用業(yè)務(wù)配置進(jìn)行封裝,同時將一種或多種衍生業(yè)務(wù)配置分出各自的屬性邏輯和驗(yàn)證邏輯并且各自分別封裝,其中將通用業(yè)務(wù)的封裝和衍生業(yè)務(wù)的封裝分別保存至相應(yīng)的頁面配置文件中,并且每一種衍生業(yè)務(wù)對應(yīng)一個頁面配置文件;
加載和綁定單元,用于根據(jù)用戶選擇的衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,并在通用業(yè)務(wù)的頁面配置文件中綁定一個表單驗(yàn)證方法;
渲染和驗(yàn)證單元,用于渲染過程中先加載通用業(yè)務(wù)數(shù)據(jù)再加載衍生業(yè)務(wù)數(shù)據(jù),頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù),然后校驗(yàn)衍生業(yè)務(wù)數(shù)據(jù)。
優(yōu)選的,所述業(yè)務(wù)配置提取單元用于將初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間相同的業(yè)務(wù)數(shù)據(jù)提取為通用業(yè)務(wù)配置數(shù)據(jù),將衍生業(yè)務(wù)頁面不同于初始業(yè)務(wù)頁面的業(yè)務(wù)數(shù)據(jù)提取為衍生業(yè)務(wù)配置數(shù)據(jù)。
優(yōu)選的,所述封裝和保存單元用于將通用業(yè)務(wù)配置封裝在$(document).ready初始化方法里并且將該初始化方法和通用業(yè)務(wù)配置信息一起保存在第一頁面配置文件中,將一個衍生業(yè)務(wù)配置的屬性邏輯封裝在$(document).ready方法里,將該衍生業(yè)務(wù)配置的驗(yàn)證邏輯封裝在jQuery.validation驗(yàn)證方法,并且將該衍生業(yè)務(wù)配置的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在第二頁面配置文件中,在有多種衍生業(yè)務(wù)時以此方式將每種衍生業(yè)務(wù)的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在各自對應(yīng)的頁面配置文件中。
優(yōu)選的,所述加載和綁定單元使用頁面標(biāo)簽語言判斷用戶選擇的衍生業(yè)務(wù)類型,根據(jù)不同衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,在通用業(yè)務(wù)的頁面配置文件中在表單提交按鈕上綁定表單驗(yàn)證方法,該表單驗(yàn)證方法在處理通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證后執(zhí)行衍生業(yè)務(wù)配置的驗(yàn)證邏輯。
優(yōu)選的,所述渲染和驗(yàn)證單元用于首先加載通用業(yè)務(wù)的頁面配置文件中保存的初始化方法,然后執(zhí)行衍生業(yè)務(wù)的頁面配置文件中保存的初始化方法,在頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù)的有效性,然后根據(jù)加載到通用業(yè)務(wù)的頁面配置文件中的衍生業(yè)務(wù)的頁面配置文件中保存的驗(yàn)證方法來校驗(yàn)與其對應(yīng)的衍生業(yè)務(wù)數(shù)據(jù)的有效性。
根據(jù)本發(fā)明的頁面渲染和驗(yàn)證的方法和裝置,將通用業(yè)務(wù)和衍生業(yè)務(wù)分開,將屬性邏輯和驗(yàn)證邏輯剝離開,可以解決下面問題:
1.避免衍生業(yè)務(wù)復(fù)用方案中多方業(yè)務(wù)邏輯集成在同個頁面,有利于后續(xù)人員維護(hù);
2.避免衍生業(yè)務(wù)獨(dú)立方案中對應(yīng)業(yè)務(wù)頁面間存在大量重復(fù)代碼,修改通用屬性時容易遺漏,從而減少測試人員的繁重測試工作量;
3.避免最終輸出至瀏覽器的html及JavaScript代碼過于臃腫,有利于開發(fā)人員調(diào)試。
附圖說明
圖1是本發(fā)明提供的一種頁面渲染和驗(yàn)證的方法的流程圖;
圖2是本發(fā)明提供的一種頁面渲染和驗(yàn)證的裝置的示意框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例和附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是本發(fā)明提供的一種頁面渲染和驗(yàn)證的方法的流程圖。如圖1所示,本發(fā)明的頁面渲染和驗(yàn)證的方法包括以下步驟:
S1)基于初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間的異同,提取通用業(yè)務(wù)配置和衍生業(yè)務(wù)配置。
應(yīng)用程序的開發(fā)商經(jīng)常對應(yīng)用程序進(jìn)行版本升級,這些升級除了修補(bǔ)存在的bug之外,更多情況是給應(yīng)用程序擴(kuò)展更多的新功能。這樣,初始版本顯示的頁面與具有擴(kuò)展功能的升級版本顯示的頁面就存在著相同內(nèi)容和不同內(nèi)容。本發(fā)明實(shí)施例提供的方法的第一步就是基于初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間的異同,提取通用業(yè)務(wù)配置和衍生業(yè)務(wù)配置。具體而言,將初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間相同的業(yè)務(wù)數(shù)據(jù)提取為通用業(yè)務(wù)配置數(shù)據(jù),將衍生業(yè)務(wù)頁面不同于初始業(yè)務(wù)頁面的業(yè)務(wù)數(shù)據(jù)提取為衍生業(yè)務(wù)配置數(shù)據(jù)。
下面通過一個具體例子來詳細(xì)介紹。
初始版本提供的初始業(yè)務(wù):普通消息推送,該推送需填寫的內(nèi)容如下:
消息樣式、消息通道、應(yīng)用消息直接下載、所屬應(yīng)用、應(yīng)用是否靜默下載、有效起始時間、有效結(jié)束時間、純圖上傳、消息名稱、主標(biāo)題、消息正文、輔標(biāo)題、生效時間、防干擾時間、推送內(nèi)容類型、跳轉(zhuǎn)類型、指定返回頁面、下發(fā)渠道、客戶端版本、預(yù)約推送時間。
當(dāng)升級后的新版本在初始業(yè)務(wù)的基礎(chǔ)上推出衍生業(yè)務(wù)時,該衍生業(yè)務(wù)推出新功能:專題消息:專題投放人群;則該衍生業(yè)務(wù)所衍生的配置:定向人群消息:定向投放人群、發(fā)布設(shè)置,定向用戶消息:上傳人群文件、是否彈窗。即,升級后的新版本除了初始業(yè)務(wù)需要填寫的內(nèi)容之外,還要包括衍生業(yè)務(wù)給出的業(yè)務(wù)配置。
這樣針對新版本的業(yè)務(wù)頁面渲染,首先需要將初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間相同的業(yè)務(wù)數(shù)據(jù)提取為通用業(yè)務(wù)配置數(shù)據(jù),將衍生業(yè)務(wù)頁面不同于初始業(yè)務(wù)頁面的業(yè)務(wù)數(shù)據(jù)提取為衍生業(yè)務(wù)配置數(shù)據(jù)。
S2)將通用業(yè)務(wù)配置進(jìn)行封裝,同時將一種或多種衍生業(yè)務(wù)配置分出各自的屬性邏輯和驗(yàn)證邏輯并且各自分別封裝,其中將通用業(yè)務(wù)的封裝和衍生業(yè)務(wù)的封裝分別保存至相應(yīng)的頁面配置文件中,并且每一種衍生業(yè)務(wù)對應(yīng)一個頁面配置文件。
具體而言,將通用業(yè)務(wù)配置封裝在jQuery的$(document).ready初始化方法里并且將該初始化方法和通用業(yè)務(wù)配置信息一起保存在第一頁面配置文件中,將一個衍生業(yè)務(wù)配置的屬性邏輯封裝在jQuery的$(document).ready方法里,將該衍生業(yè)務(wù)配置的驗(yàn)證邏輯封裝在jQuery.validation驗(yàn)證方法,并且將該衍生業(yè)務(wù)配置的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在第二頁面配置文件中,在有多種衍生業(yè)務(wù)時以此方式將每種衍生業(yè)務(wù)的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在各自對應(yīng)的頁面配置文件中。
另外,每種衍生業(yè)務(wù)在創(chuàng)建和編輯時都有一個標(biāo)記來說明業(yè)務(wù)類型,這樣在有多種衍生業(yè)務(wù)的情況下,便于后面的操作中識別執(zhí)行哪個衍生業(yè)務(wù)。
在本步驟中,$(document).ready初始化了通用業(yè)務(wù)數(shù)據(jù)需初始化的工作,例如所屬應(yīng)用文本框在配置時需要根據(jù)運(yùn)營人員輸入的應(yīng)用名來模糊查詢出相關(guān)應(yīng)用列表,這個控件的初始化就是在通用的$(document).ready中完成封裝。將該初始化方法與通用業(yè)務(wù)配置數(shù)據(jù)一起保存在一個頁面配置文件中,例如命名為create.html的頁面配置文件。同理,$(document).ready也可以初始化衍生業(yè)務(wù)的屬性數(shù)據(jù)需初始化的工作,用validation驗(yàn)證方法執(zhí)行衍生業(yè)務(wù)的驗(yàn)證邏輯,將衍生業(yè)務(wù)配置的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在另一個頁面配置文件中,例如命名為spice.html的頁面配置文件。
因?yàn)橐粋€衍生業(yè)務(wù)需要的字段跟通用業(yè)務(wù)的字段之間、以及不同衍生業(yè)務(wù)的字段之間差別很大,所以通用業(yè)務(wù)數(shù)據(jù)和衍生業(yè)務(wù)數(shù)據(jù)需要單獨(dú)封裝,而且也需要單獨(dú)為每個衍生業(yè)務(wù)封裝對應(yīng)的$(document).ready初始化方法和jQuery.validation驗(yàn)證方法,將對每個衍生業(yè)務(wù)的封裝保存在對應(yīng)的一個頁面配置文件中,例如假設(shè)有3個衍生業(yè)務(wù),則按照上述方法對這3個衍生業(yè)務(wù)分別獨(dú)立封裝,然后將每個封裝(包含有衍生業(yè)務(wù)的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法)保存在對應(yīng)的一個頁面配置文件中,共計(jì)有3個不同的頁面配置文件,即每一種衍生業(yè)務(wù)對應(yīng)一個頁面配置文件。
S3)根據(jù)用戶選擇的衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,并在通用業(yè)務(wù)的頁面配置文件中綁定一個表單驗(yàn)證方法。
其中使用頁面標(biāo)簽語言判斷用戶選擇的衍生業(yè)務(wù)類型,根據(jù)不同衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,在通用業(yè)務(wù)的頁面配置文件中在表單提交按鈕上綁定表單驗(yàn)證方法,該表單驗(yàn)證方法在處理通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證后執(zhí)行衍生業(yè)務(wù)配置的驗(yàn)證邏輯。
具體而言,因?yàn)槊糠N衍生業(yè)務(wù)在創(chuàng)建和編輯時都有一個標(biāo)記來說明業(yè)務(wù)類型,用戶根據(jù)需要點(diǎn)擊相應(yīng)的衍生業(yè)務(wù),例如上面舉例的專題消息的投放,后臺使用頁面標(biāo)簽語言(例如jsp、struts、spring、Groovy等)判斷用戶選擇的衍生業(yè)務(wù)類型,根據(jù)不同衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件(例如spice.html)加載到通用業(yè)務(wù)的頁面配置文件(例如create.html)中,在通用業(yè)務(wù)的頁面配置文件中在表單提交按鈕上綁定一個表單驗(yàn)證方法(例如validateForm方法),該表單驗(yàn)證方法將會在后面的驗(yàn)證步驟中先處理通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證(例如日期有效性校驗(yàn)),通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證通過后執(zhí)行validation驗(yàn)證方法,因?yàn)榧虞d到通用業(yè)務(wù)的頁面配置文件中的衍生業(yè)務(wù)的頁面配置文件中的validation驗(yàn)證方法重新定義了通用業(yè)務(wù)的頁面配置文件中的validation驗(yàn)證方法,所以即執(zhí)行衍生業(yè)務(wù)配置的驗(yàn)證邏輯。
以下通過一個簡單例程來說明如何實(shí)現(xiàn)處理通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證后再執(zhí)行衍生業(yè)務(wù)配置的驗(yàn)證邏輯。
在所述通用業(yè)務(wù)的頁面配置文件create.html中保存validateForm()和spiceValidation(),而create.html中保存的spiceValidation()是一個空函數(shù),不執(zhí)行任何事情,具體的驗(yàn)證由validateForm()執(zhí)行,并且在驗(yàn)證通過后執(zhí)行調(diào)用spiceValidation()。例如以下偽代碼所示:
通用業(yè)務(wù)的create.html中保存的validateForm驗(yàn)證方法:
通過使用頁面標(biāo)簽語言將spice.html加載到create.html尾部,則衍生業(yè)務(wù)的頁面配置文件中保存的validation驗(yàn)證方法的代碼保存在create.html中,故輸出至瀏覽器的實(shí)際html代碼是:
根據(jù)瀏覽器特性,將會實(shí)現(xiàn)對不同衍生業(yè)務(wù)的定制驗(yàn)證的目的。
S4)渲染過程中先加載通用業(yè)務(wù)數(shù)據(jù)再加載衍生業(yè)務(wù)數(shù)據(jù),頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù),然后校驗(yàn)衍生業(yè)務(wù)數(shù)據(jù)。
其中首先加載通用業(yè)務(wù)的頁面配置文件中保存的初始化方法,然后執(zhí)行衍生業(yè)務(wù)的頁面配置文件中保存的初始化方法,在頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù)的有效性,然后根據(jù)加載到通用業(yè)務(wù)的頁面配置文件中的衍生業(yè)務(wù)的頁面配置文件中保存的驗(yàn)證方法來校驗(yàn)與其對應(yīng)的衍生業(yè)務(wù)數(shù)據(jù)的有效性。
具體而言,利用可在頁面多處執(zhí)行JavaScript腳本的特點(diǎn),在渲染頁面時,首先加載通用業(yè)務(wù)的頁面配置文件中保存的$(document).ready初始化方法,執(zhí)行至頁面底部后接著執(zhí)行衍生業(yè)務(wù)的頁面配置文件中保存的$(document).ready初始化方法,以實(shí)現(xiàn)頁面的定制渲染。
在頁面提交時需要進(jìn)行數(shù)據(jù)驗(yàn)證,先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù)的有效性,然后校驗(yàn)衍生業(yè)務(wù)數(shù)據(jù)的有效性。如在上面通過簡單例程進(jìn)行舉例說明的那樣,在驗(yàn)證時,綁定的表單驗(yàn)證方法(例如validateForm方法)會在處理完通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證(例如日期有效性校驗(yàn)),經(jīng)校驗(yàn)有效后將執(zhí)行validation驗(yàn)證方法。因?yàn)榧虞d到通用業(yè)務(wù)的頁面配置文件中的衍生業(yè)務(wù)的頁面配置文件(例如spice.html)中的validation驗(yàn)證方法重新定義了通用業(yè)務(wù)的頁面配置文件(例如create.html)中的validation驗(yàn)證方法,所以即執(zhí)行對衍生業(yè)務(wù)數(shù)據(jù)的驗(yàn)證,從而實(shí)現(xiàn)了可以對不同的衍生業(yè)務(wù)執(zhí)行不同的校驗(yàn)的目的。正如上面的例程所示,執(zhí)行create.html中的validateForm(),對通用業(yè)務(wù)數(shù)據(jù)校驗(yàn)有效后,執(zhí)行return spiceValidation(),由此調(diào)用加載到create.html中的spice.html文件記錄的function spiceValidation(),由此實(shí)現(xiàn)了頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù),然后校驗(yàn)衍生業(yè)務(wù)數(shù)據(jù)。
當(dāng)從衍生業(yè)務(wù)頁面提取出多種衍生業(yè)務(wù)后,按照上面的相關(guān)步驟描述,后臺判斷出用戶通過點(diǎn)擊選擇的一個衍生業(yè)務(wù)類型,將html返回給瀏覽器時會根據(jù)每種衍生業(yè)務(wù)的標(biāo)記來導(dǎo)入相應(yīng)衍生業(yè)務(wù)的spice.html,即只有一個spice.html被導(dǎo)入到create.html的尾部,而且不同衍生業(yè)務(wù)的spice.html之間是互斥的,這樣即便從衍生業(yè)務(wù)頁面提取出多種衍生業(yè)務(wù),因?yàn)槊看沃挥幸粋€spice.html被導(dǎo)入到create.html的尾部,所以多種衍生業(yè)務(wù)的驗(yàn)證也不會發(fā)生沖突。
根據(jù)本發(fā)明的頁面渲染和驗(yàn)證的方法,將通用業(yè)務(wù)和衍生業(yè)務(wù)分開,將屬性邏輯和驗(yàn)證邏輯剝離開,渲染過程中先加載通用業(yè)務(wù)數(shù)據(jù),然后加載衍生業(yè)務(wù)數(shù)據(jù),先驗(yàn)證通用業(yè)務(wù)數(shù)據(jù),然后驗(yàn)證衍生業(yè)務(wù)數(shù)據(jù),避免衍生業(yè)務(wù)復(fù)用方案中多方業(yè)務(wù)邏輯集成在同個頁面,避免衍生業(yè)務(wù)獨(dú)立方案中對應(yīng)業(yè)務(wù)頁面間存在大量重復(fù)代碼,避免最終輸出至瀏覽器的html及JavaScript代碼過于臃腫,有利于后續(xù)人員維護(hù)、開發(fā)人員調(diào)試和減少測試人員的測試工作量。
圖2是本發(fā)明提供的一種頁面渲染和驗(yàn)證的裝置的示意框圖。如圖2所示,本發(fā)明的頁面渲染和驗(yàn)證的裝置,其包括:
業(yè)務(wù)配置提取單元,用于基于初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間的異同,提取通用業(yè)務(wù)配置和衍生業(yè)務(wù)配置;
封裝和保存單元,用于將通用業(yè)務(wù)配置進(jìn)行封裝,同時將一種或多種衍生業(yè)務(wù)配置分出各自的屬性邏輯和驗(yàn)證邏輯并且各自分別封裝,其中將通用業(yè)務(wù)的封裝和衍生業(yè)務(wù)的封裝分別保存至相應(yīng)的頁面配置文件中,并且每一種衍生業(yè)務(wù)對應(yīng)一個頁面配置文件;
加載和綁定單元,用于根據(jù)用戶選擇的衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,并在通用業(yè)務(wù)的頁面配置文件中綁定一個表單驗(yàn)證方法;
渲染和驗(yàn)證單元,用于渲染過程中先加載通用業(yè)務(wù)數(shù)據(jù)再加載衍生業(yè)務(wù)數(shù)據(jù),頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù),然后校驗(yàn)衍生業(yè)務(wù)數(shù)據(jù)。
優(yōu)選的,所述業(yè)務(wù)配置提取單元用于將初始業(yè)務(wù)頁面和衍生業(yè)務(wù)頁面之間相同的業(yè)務(wù)數(shù)據(jù)提取為通用業(yè)務(wù)配置數(shù)據(jù),將衍生業(yè)務(wù)頁面不同于初始業(yè)務(wù)頁面的業(yè)務(wù)數(shù)據(jù)提取為衍生業(yè)務(wù)配置數(shù)據(jù)。
優(yōu)選的,所述封裝和保存單元用于將通用業(yè)務(wù)配置封裝在$(document).ready初始化方法里并且將該初始化方法和通用業(yè)務(wù)配置信息一起保存在第一頁面配置文件中,將一個衍生業(yè)務(wù)配置的屬性邏輯封裝在$(document).ready方法里,將該衍生業(yè)務(wù)配置的驗(yàn)證邏輯封裝在jQuery.validation驗(yàn)證方法,并且將該衍生業(yè)務(wù)配置的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在第二頁面配置文件中,在有多種衍生業(yè)務(wù)時以此方式將每種衍生業(yè)務(wù)的屬性邏輯信息和初始化方法、驗(yàn)證邏輯信息和驗(yàn)證方法一起保存在各自對應(yīng)的頁面配置文件中。
優(yōu)選的,所述加載和綁定單元使用頁面標(biāo)簽語言判斷用戶選擇的衍生業(yè)務(wù)類型,根據(jù)不同衍生業(yè)務(wù)類型將對應(yīng)的頁面配置文件加載到通用業(yè)務(wù)的頁面配置文件中,在通用業(yè)務(wù)的頁面配置文件中在表單提交按鈕上綁定表單驗(yàn)證方法,該表單驗(yàn)證方法在處理通用業(yè)務(wù)數(shù)據(jù)驗(yàn)證后執(zhí)行衍生業(yè)務(wù)配置的驗(yàn)證邏輯。
優(yōu)選的,所述渲染和驗(yàn)證單元用于首先加載通用業(yè)務(wù)的頁面配置文件中保存的初始化方法,然后執(zhí)行衍生業(yè)務(wù)的頁面配置文件中保存的初始化方法,在頁面提交時先校驗(yàn)通用業(yè)務(wù)數(shù)據(jù)的有效性,然后根據(jù)加載到通用業(yè)務(wù)的頁面配置文件中的衍生業(yè)務(wù)的頁面配置文件中保存的驗(yàn)證方法來校驗(yàn)與其對應(yīng)的衍生業(yè)務(wù)數(shù)據(jù)的有效性。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,前述方法實(shí)施例中列舉的例子,同樣適用于解釋裝置的工作過程,在此不再重復(fù)描述。
根據(jù)本發(fā)明的頁面渲染和驗(yàn)證的裝置,將通用業(yè)務(wù)和衍生業(yè)務(wù)分開,將屬性邏輯和驗(yàn)證邏輯剝離開,渲染過程中先加載通用業(yè)務(wù)數(shù)據(jù),然后加載衍生業(yè)務(wù)數(shù)據(jù),先驗(yàn)證通用業(yè)務(wù)數(shù)據(jù),然后驗(yàn)證衍生業(yè)務(wù)數(shù)據(jù),避免衍生業(yè)務(wù)復(fù)用方案中多方業(yè)務(wù)邏輯集成在同個頁面,避免衍生業(yè)務(wù)獨(dú)立方案中對應(yīng)業(yè)務(wù)頁面間存在大量重復(fù)代碼,避免最終輸出至瀏覽器的html及JavaScript代碼過于臃腫,有利于后續(xù)人員維護(hù)、開發(fā)人員調(diào)試和減少測試人員的測試工作量。
本發(fā)明實(shí)施例所提供的頁面渲染和驗(yàn)證的方法的計(jì)算機(jī)程序產(chǎn)品,包括存儲了程序代碼的計(jì)算機(jī)可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),平板電腦,智能手機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。