本申請涉及計算機
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)獲取方法及裝置。
背景技術(shù):
:軟件開發(fā),可分為包括前端開發(fā)和后端開發(fā)。其中,前端,是指用于實現(xiàn)前端功能的功能模塊。這里所說的前端功能,具體可以包括但不限界面的結(jié)構(gòu)實現(xiàn),界面的外觀視覺表現(xiàn)以及界面層面的交互實現(xiàn)中的至少一種。前端開發(fā),主要是指前端開發(fā)人員對前端進行開發(fā)。后端,是指用于實現(xiàn)后端功能的功能模塊。這里所說的后端功能,具體可以包括但不限于界面的一些功能實現(xiàn)等,比如,通過界面觸發(fā)的業(yè)務(wù)處理邏輯實現(xiàn),就屬于后端功能。后端開發(fā),主要是指后端開發(fā)人員對后端進行開發(fā)。目前,在軟件開發(fā)過程中,前、后端開發(fā)人員視實際需求,有可能需要進行前后端聯(lián)調(diào)。在進行聯(lián)調(diào)時,為實現(xiàn)前端的某些功能,可能會發(fā)生數(shù)據(jù)交互,通過進行數(shù)據(jù)交互,前端可以獲取到實現(xiàn)其功能所需要的數(shù)據(jù)。在實際開發(fā)中,由于前、后端對于數(shù)據(jù)獲取方式的需求不一致,例如,寫入到前端JS代碼中的數(shù)據(jù)獲取方式的實現(xiàn)邏輯,可能與后端期望采用的數(shù)據(jù)獲取方式不匹配。此時,為了保證數(shù)據(jù)的順利獲取,需要前端人員對JS代碼中的數(shù)據(jù)獲取方式的實現(xiàn)邏輯修改。然而,采用修改JS代碼中的數(shù)據(jù)獲取方式的實現(xiàn)邏輯的方式,會存在效率低下的問題,進而降低了聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率。技術(shù)實現(xiàn)要素:本申請實施例提供一種數(shù)據(jù)獲取方法,用于解決由于對于數(shù)據(jù)獲取方式的 需求不一致,而可能導(dǎo)致聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率較低的問題。本申請實施例還提供一種數(shù)據(jù)獲取裝置,用于解決由于對于數(shù)據(jù)獲取方式的需求不一致,而可能導(dǎo)致聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率較低的問題。本申請實施例采用下述技術(shù)方案:一種數(shù)據(jù)獲取方法,包括:前端接收數(shù)據(jù)獲取指令;響應(yīng)于所述指令,確定預(yù)先設(shè)置的方式信息;根據(jù)方式信息與相應(yīng)的數(shù)據(jù)獲取方式的預(yù)設(shè)映射關(guān)系,確定所述預(yù)先設(shè)置的方式信息所映射的數(shù)據(jù)獲取方式;采用確定出的數(shù)據(jù)獲取方式,獲取數(shù)據(jù)。一種數(shù)據(jù)獲取裝置,應(yīng)用于前端,包括:指令接收單元,用于接收數(shù)據(jù)獲取指令;信息確定單元,用于響應(yīng)于指令接收單元接收的所述指令,確定預(yù)先設(shè)置的方式信息;方式確定單元,用于根據(jù)方式信息與相應(yīng)的數(shù)據(jù)獲取方式的預(yù)設(shè)映射關(guān)系,確定信息確定單元確定的方式信息所映射的數(shù)據(jù)獲取方式;數(shù)據(jù)獲取單元,用于采用方式確定單元確定出的數(shù)據(jù)獲取方式,獲取數(shù)據(jù)。本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:由于可以支持通過預(yù)先設(shè)置方式信息,來表征應(yīng)該采用哪種數(shù)據(jù)獲取方式,從而即便前、后端開發(fā)人員對于數(shù)據(jù)獲取方式的需求不一致,也可以簡單地通過修改該方式信息,達到改變數(shù)據(jù)獲取方式的目的,無需前端開發(fā)人員修改JS代碼中的數(shù)據(jù)獲取方式的實現(xiàn)邏輯。從而相對于現(xiàn)有技術(shù)而言,可以提高聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率。附圖說明此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部 分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:圖1為本申請實施例提供的一種數(shù)據(jù)獲取方法的實現(xiàn)流程示意圖;圖2a為在基于VM的方式的數(shù)據(jù)獲取邏輯中,加入“適配層”的示意圖;圖2b為本申請實施例提供的數(shù)據(jù)獲取方法在實際中的一種應(yīng)用流程示意圖;圖2c為當(dāng)BUI控件對前端獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用Select展示”時,本申請實施例中的適配層所實現(xiàn)的邏輯示意圖;圖2d為當(dāng)BUI控件對前端獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用菜單欄Menu展示”時,本申請實施例中的適配層所實現(xiàn)的邏輯示意圖;圖2e為當(dāng)BUI控件對前端獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用表格Table展示”時,本申請實施例中的適配層所實現(xiàn)的邏輯示意圖;圖3為本申請實施例提供的數(shù)據(jù)獲取方法在實際中的另一種應(yīng)用流程示意圖;圖4為本申請實施例提供的一種數(shù)據(jù)獲取裝置的具體結(jié)構(gòu)示意圖。具體實施方式為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。以下結(jié)合附圖,詳細說明本申請各實施例提供的技術(shù)方案。實施例1為了解決由于對于數(shù)據(jù)獲取方式的需求不一致,而可能導(dǎo)致聯(lián)調(diào)過程中前 端的數(shù)據(jù)獲取效率較低的問題,本申請實施例1提供一種數(shù)據(jù)獲取方法。該方法的具體實現(xiàn)流程圖如圖1所示,包括如下步驟:步驟11,前端接收數(shù)據(jù)獲取指令;前端是指用于實現(xiàn)前端功能的功能模塊。這里所說的前端功能,具體可以包括但不限于界面的結(jié)構(gòu)實現(xiàn),界面的外觀視覺表現(xiàn)以及界面層面的交互實現(xiàn)中的至少一種。比如用戶能通過PC端界面看到的網(wǎng)頁頁面,就是前端的一種,當(dāng)用戶瀏覽網(wǎng)頁時,點擊網(wǎng)頁上的信息,如文字,圖片等數(shù)據(jù)時,可以觸發(fā)數(shù)據(jù)獲取指令。在前、后端聯(lián)調(diào)過程中,前端開發(fā)人員也可以通過其他方式,比如向前端輸入用于觸發(fā)該數(shù)據(jù)獲取指令的代碼的方式,使得前端接收到該數(shù)據(jù)獲取指令。步驟12,響應(yīng)于執(zhí)行步驟11接收到的數(shù)據(jù)獲取指令,確定預(yù)先設(shè)置的方式信息;具體地,響應(yīng)于該數(shù)據(jù)獲取指令,前端往往會調(diào)用并運行界面(如網(wǎng)頁)源文件中的JS文件。其中,此處所述的源文件是指,是指由該界面的源代碼構(gòu)成的,源文件中一般會包含由JS代碼構(gòu)成的JS文件。本申請實施例中,可以但不限于采用兩種方式,確定預(yù)先設(shè)置的方式信息。其中,第一種方式可以包括:前端響應(yīng)于數(shù)據(jù)獲取指令,查找數(shù)據(jù)獲取指令所調(diào)用的JS文件中的指定字段(為與后文所述的其他字段相區(qū)分,該指定字段可稱為第一指定字段);前端根據(jù)查找結(jié)果,確定預(yù)先設(shè)置的方式信息。比如,若查找結(jié)果為查找到第一指定字段,則將第一指定字段不為空的狀態(tài),確定為所述預(yù)先設(shè)置的方式信息;若查找結(jié)果為未查找到第一指定字段,則將第一指定字段為空的狀態(tài),確定為所述預(yù)先設(shè)置的方式信息。本申請實施例中所涉及的數(shù)據(jù)獲取方式,包括但不限于以下兩種:1、基于遠程過程調(diào)用協(xié)議(RemoteProcedureCallProtocol,RPC)的調(diào)用方式。該方式的實現(xiàn)原理為:前端通過向后端發(fā)送RPC請求,而獲得后端根據(jù)該RPC請求反饋的數(shù)據(jù)。比如,前端可以采用阿賈克斯(AsynchronousJavaScriptAndXML,AJAX)技術(shù),向后端發(fā)送用于獲得數(shù)據(jù)的RPC請求,從而獲得后端根據(jù)該RPC請求反饋的數(shù)據(jù)。2、基于Velocity模板(VelocityModule,VM)的方式該方式的實現(xiàn)原理為:前端通過VM的模板引擎,以及相應(yīng)的模板語言,直接訪問java對象,從而獲得寫入到j(luò)ava對象中的數(shù)據(jù)。目前,在前端開發(fā)中,JavaScript(簡稱JS)是一種直譯式腳本語言,是被廣泛用于前端開發(fā)的腳本語言,可用來在前端頁面中添加交互行為。在一些相關(guān)技術(shù)中,前端開發(fā)人員可以通過將上述數(shù)據(jù)獲取方式之一的實現(xiàn)邏輯編譯為JS代碼,并設(shè)置在前端的JS文件中,可以使得前端通過運行該JS代碼,實現(xiàn)采用相應(yīng)的數(shù)據(jù)獲取方式獲取數(shù)據(jù)。本申請實施例中,可以由前端開發(fā)人員在獲知后端開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式后,對數(shù)據(jù)獲取指令所調(diào)用的所述JS文件中的第一指定字段進行設(shè)置(如設(shè)置為空或者不為空),達到預(yù)先設(shè)置方式信息的目的。具體地,當(dāng)后端開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于RPC的調(diào)用方式時,可以將該第一指定字段設(shè)置為空;而在開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于VM的方式時,可以將該第一指定字段設(shè)置為不為空。又或者,當(dāng)后端開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于RPC的調(diào)用方式時,可以將該第一指定字段設(shè)置為不為空;而在開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于VM的方式時,可以將該第一指定字段設(shè)置為空。對于第一指定字段的具體設(shè)置方式,可以視實際情況而定,本申請實施例對此不作限定。本申請實施例中所述的第一指定字段,比如可以是queryUri字段。以下進一步介紹第二種方式。該第二種方式可以包括:前端響應(yīng)于數(shù)據(jù)獲取指令,確定設(shè)置的開關(guān)狀態(tài); 根據(jù)確定結(jié)果,確定預(yù)先設(shè)置的方式信息。具體而言,在確定結(jié)果為開關(guān)處于開啟狀態(tài)時,將開關(guān)處于開啟狀態(tài),確定為所述預(yù)先設(shè)置的方式信息;在確定結(jié)果為開關(guān)處于關(guān)閉狀態(tài)時,將開關(guān)處于關(guān)閉狀態(tài),確定為所述預(yù)先設(shè)置的方式信息。本申請實施例中,可以以某JS文件的某配置項作為該“開關(guān)”,由前端開發(fā)人員對該配置項的值進行設(shè)置,達到預(yù)先設(shè)置方式信息的目的。比如,該配置項的值若設(shè)置為0,表示開關(guān)處于開啟狀態(tài);該值若設(shè)置為1,則表示開關(guān)處于關(guān)閉狀態(tài)。具體地,前端開發(fā)人員可以是在獲知后端開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式后,對該配置項的值進行設(shè)置。比如,當(dāng)后端開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于RPC的調(diào)用方式時,可以將該配置項的值設(shè)置為0;而在開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于VM的方式時,可以將該配置項的值設(shè)置為1。又或者,當(dāng)后端開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于RPC的調(diào)用方式時,可以將該配置項的值設(shè)置為1;而在開發(fā)人員期望前端采用的數(shù)據(jù)獲取方式為基于VM的方式時,可以將該配置項的值設(shè)置為0。對于第一指定字段的具體設(shè)置方式,可以視實際情況而定,本申請實施例對此不作限定。步驟13,根據(jù)方式信息與相應(yīng)的數(shù)據(jù)獲取方式的預(yù)設(shè)映射關(guān)系,確定所述預(yù)先設(shè)置的方式信息所映射的數(shù)據(jù)獲取方式;比如,繼續(xù)沿用上文的第一種方式和第二種方式的示例,預(yù)先設(shè)置的不同方式信息與相應(yīng)的數(shù)據(jù)獲取方式的映射關(guān)系可以如下表所示。其中,表1為第一種方式對應(yīng)的映射關(guān)系,表2為第二種方式對應(yīng)的映射關(guān)系。表1:預(yù)先設(shè)置的方式信息數(shù)據(jù)獲取方式第一指定字段不為空的狀態(tài)基于RPC的調(diào)用方式第一指定字段為空的狀態(tài)基于VM的方式表2:預(yù)先設(shè)置的方式信息數(shù)據(jù)獲取方式開關(guān)處于開啟狀態(tài)基于RPC的調(diào)用方式開關(guān)處于關(guān)閉狀態(tài)基于VM的方式步驟14,采用確定出的數(shù)據(jù)獲取方式,獲取數(shù)據(jù)。繼續(xù)沿用上文的第一種方式和第二種方式的示例,若確定出的數(shù)據(jù)獲取方式為基于RPC的調(diào)用方式,則可以通過向后端發(fā)送RPC請求的方式,獲得后端根據(jù)該RPC請求反饋的數(shù)據(jù)。由于基于RPC的調(diào)用方式獲得數(shù)據(jù)的方案,已是現(xiàn)有技術(shù)中比較成熟的技術(shù),本申請實施例對該方式的具體實現(xiàn)過程不再贅述。需要說明的是,若確定出的數(shù)據(jù)獲取方式為基于VM的方式,則可以通過VM的模板引擎,以及相應(yīng)的模板語言,直接訪問java對象,從而獲得寫入到j(luò)ava對象中的數(shù)據(jù)。本申請實施例中,為了使用戶能夠直觀地獲知通過執(zhí)行步驟14,在步驟14執(zhí)行完畢后,所述方法還可以包括步驟:對獲取到的數(shù)據(jù)進行展現(xiàn)。具體地,本申請實施例中,可以采用嵌入式用戶界面(BuildInUserInterface,BUI)控件,對獲取到的數(shù)據(jù)進行展現(xiàn)。需要說明的是,當(dāng)采用RPC的調(diào)用方式獲取數(shù)據(jù)時,由于可以在發(fā)送的RPC請求中,攜帶數(shù)據(jù)展示方式(該方式比如可以是下拉框、菜單欄或者表格等可以由BUI實現(xiàn)的方式)信息,從而可以獲得后端反饋的、格式與所述數(shù)據(jù)展示方式匹配的數(shù)據(jù),從而采用該方式獲得的數(shù)據(jù),可以直接由BUI控件進行展示。而針對基于VM的方式而言,若采用現(xiàn)有技術(shù)中提供的基于VM的方式,其獲得的數(shù)據(jù)的格式,往往不支持由BUI控件直接進行展示,而是支持采用比較原生的方式進行展示。本申請實施例中,考慮到采用BUI控件展示數(shù)據(jù)的方式,往往使得數(shù)據(jù)的展現(xiàn)更為直觀和美觀,因此,采用基于VM的方式獲得數(shù)據(jù)的過程,可以采用 下述子步驟實現(xiàn),以使得獲取到的數(shù)據(jù)能夠支持由BUI控件直接進行展示。子步驟Ⅰ:前端查找VM中的指定字段(后稱該指定字段為第二指定字段),若查找到,則執(zhí)行子步驟Ⅱ;否則,則執(zhí)行子步驟Ⅲ;子步驟Ⅱ:獲取第二指定字段中的數(shù)據(jù);需要說明的是,若能夠查找到第二指定字段,則該第二指定字段中包含的數(shù)據(jù),即為前端接收到的數(shù)據(jù)獲取指令所對應(yīng)的數(shù)據(jù)。該數(shù)據(jù)可以是由后端開發(fā)人員預(yù)先設(shè)置在該第二指定字段中的。具體地,后端開發(fā)人員在設(shè)置第二指定字段中的數(shù)據(jù)時,可以設(shè)置支持直接由BUI控件展示的數(shù)據(jù),從而前端采用基于VM的方式獲取到的該第二指定字段中的數(shù)據(jù),可以直接由BUI控件來展示。本申請實施例中,所述的第二指定字段,可以是指VM中的下拉框(Select)元素中指定字段(該字段的名稱比如可以為data-item)的屬性值、菜單欄(Menu)對象中指定字段(該字段的名稱比如可以為data)的屬性值,表格(Table)元素中指定字段(該字段的名稱比如可以為date-item)的屬性值。上述的各種第二指定字段,均是與預(yù)定的數(shù)據(jù)展示方式有關(guān)的字段。因此,本申請實施例中,前端查找VM中的第二指定字段,具體可以包括:前端根據(jù)預(yù)定的數(shù)據(jù)展示方式,確定第二指定字段的標(biāo)識;在VM中,查找第二指定字段的標(biāo)識所對應(yīng)的第二指定字段。具體地,當(dāng)數(shù)據(jù)展示方式為“利用Select展示”時,第二指定字段的標(biāo)識為Select元素中指定字段的標(biāo)識。從而前端獲取第二指定字段中的數(shù)據(jù),包括:前端獲取Select元素中指定字段的屬性值。類似地,當(dāng)數(shù)據(jù)展示方式為“利用菜單欄Menu展示”時,第二指定字段的標(biāo)識為Menu對象中指定字段的標(biāo)識。從而前端獲取第二指定字段中的數(shù)據(jù),包括:獲取Menu對象中指定字段的屬性值。類似地,當(dāng)數(shù)據(jù)展示方式為“利用表格Table展示”時,第二指定字段的標(biāo)識為Table對象中指定字段的標(biāo)識。前端獲取第二指定字段中的數(shù)據(jù),包括: 獲取Table對象中指定字段的屬性值。子步驟Ⅲ:抓取超文本標(biāo)記語言(HyperTextMarkupLanguage,HTML)元素的數(shù)據(jù)。本申請實施例中,抓取HTML元素的數(shù)據(jù),比如具體可以是由通過文檔對象模型(DocumentObjectModel,DOM)來實現(xiàn)的。一般地,要改變HTML頁面的某個內(nèi)容,就需要獲得對HTML頁面中所有元素(即HTML元素)進行訪問的入口。這個入口,連同對HTML元素進行添加、移動、改變或移除的方法和屬性,都是通過DOM來獲得的。由于通過DOM來獲取HTML元素的數(shù)據(jù),已是一種比較成熟的現(xiàn)有技術(shù),本申請實施例不再進行贅述。本申請實施例中,通過DOM獲取的HTML元素的數(shù)據(jù),一般可以直接由BUI控件進行展示。采用本申請實施例提供的方法,由于可以支持通過預(yù)先設(shè)置方式信息,來表征應(yīng)該采用哪種數(shù)據(jù)獲取方式,從而即便前、后端開發(fā)人員對于數(shù)據(jù)獲取方式的需求不一致,也可以簡單地通過修改該方式信息,達到改變數(shù)據(jù)獲取方式的目的,無需前端開發(fā)人員修改JS代碼中的數(shù)據(jù)獲取方式的實現(xiàn)邏輯。從而相對于現(xiàn)有技術(shù)而言,可以提高聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率。實施例2實施例2中,主要介紹本申請實施例1提供的數(shù)據(jù)獲取方法在實際中的一種應(yīng)用流程。實施例2中,考慮到采用BUI控件對前端獲取到的數(shù)據(jù)來進行展示,可以讓用戶直觀地獲知獲取到的數(shù)據(jù)的具體內(nèi)容,因此在基于VM的方式的數(shù)據(jù)獲取邏輯中,加入了如圖2a所示的“適配層”。其中,該“適配層”的作用,主要是使得前端基于VM的方式獲得的數(shù)據(jù),能夠直接支持采用BUI控件進行展示。以下結(jié)合圖2b,具體介紹實施例2提供的該應(yīng)用流程包含的各步驟。步驟21,前端接收數(shù)據(jù)獲取指令;步驟22,前端響應(yīng)于所述指令,查找所述指令所調(diào)用的JS代碼中的queryUri字段,并判斷該queryUri字段是否為空,若不為空,則執(zhí)行步驟23,若為空,則執(zhí)行步驟24;其中,所述的queryUri字段,用于表示異步請求地址。若該字段為空,則說明不存在異步請求地址,也就是采用的數(shù)據(jù)獲取方式不是基于RPC的調(diào)用方式,而是基于VM的方式;反之,則說明采用的數(shù)據(jù)獲取方式是基于RPC的調(diào)用方式。步驟23,前端向后端發(fā)送用于請求獲取數(shù)據(jù)的RPC請求,并在成功接收到后端響應(yīng)于該RPC請求反饋的數(shù)據(jù)后,流程結(jié)束;步驟24,前端確定將要采用的、對獲取的數(shù)據(jù)進行展現(xiàn)的方式(可根據(jù)采用的BUI控件來確定該方式),并根據(jù)該方式確定第二指定字段,進而確定是否能夠在VM中查找到第二指定字段;若查找到,則執(zhí)行步驟25,否則,執(zhí)行步驟26;步驟25,前端獲取第二指定字段中的數(shù)據(jù),并利用BUI控件對獲取到的數(shù)據(jù)進行展示,流程結(jié)束;需要說明的是,當(dāng)BUI控件對獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用Select展示”時,第二指定字段為Select元素中指定字段。從而前端獲取第二指定字段中的數(shù)據(jù),包括:前端獲取Select元素中指定字段的屬性值。類似地,當(dāng)所述方式為“利用菜單欄Menu展示”時,第二指定字段的標(biāo)識為Menu對象中指定字段的標(biāo)識。從而前端獲取第二指定字段中的數(shù)據(jù),包括:獲取Menu對象中指定字段的屬性值。類似地,當(dāng)所述方式為“利用表格Table展示”時,第二指定字段的標(biāo)識為Table對象中指定字段的標(biāo)識。前端獲取第二指定字段中的數(shù)據(jù),包括:獲取Table對象中指定字段的屬性值。步驟26,通過DOM,獲取HTML元素的數(shù)據(jù),并利用BUI控件對獲取 到的數(shù)據(jù)進行展示,流程結(jié)束。需要說明的是,步驟22~步驟26,均可以為如圖2a所示的適配層所實現(xiàn)的邏輯。具體而言,當(dāng)BUI控件對前端獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用Select展示”時,適配層所實現(xiàn)的邏輯如圖2c所示。類似地,當(dāng)BUI控件對前端獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用菜單欄Menu展示”時,適配層所實現(xiàn)的邏輯如圖2d所示。類似地,當(dāng)BUI控件對前端獲取的數(shù)據(jù)進行展現(xiàn)的方式為“利用表格Table展示”時,適配層所實現(xiàn)的邏輯如圖2e所示。通過對實施例2描述的上述流程包含的邏輯進行封裝,可以得到統(tǒng)一的、用于獲取數(shù)據(jù)的方法(該方法比如可以命名為getData)?;谠摲椒ǎ岸碎_發(fā)人員無需再關(guān)心前端采用的是怎樣的數(shù)據(jù)獲取方式,可以直接通過調(diào)用該方法來獲得及展現(xiàn)數(shù)據(jù),避免了聯(lián)調(diào)中由于前、后端開發(fā)人員對于數(shù)據(jù)獲取方式的需求不一致,從而產(chǎn)生的代碼變更成本。實施例3實施例3中,主要介紹本申請實施例1提供的數(shù)據(jù)獲取方法在實際中的另一種應(yīng)用流程。以下結(jié)合圖3,具體介紹實施例3提供的該應(yīng)用流程包含的各步驟。步驟31,前端接收數(shù)據(jù)獲取指令;步驟32,前端響應(yīng)于數(shù)據(jù)獲取指令,調(diào)用封裝好的RPC組件;需要說明的是,所述RPC組件中,封裝有用于實現(xiàn)開關(guān)的配置項、基于RPC的調(diào)用方式的實現(xiàn)邏輯,以及對于獲取到數(shù)據(jù)進行展示時所需要的渲染邏輯。步驟33,前端判斷所述組件中封裝的、用于實現(xiàn)開關(guān)的配置項的值是否為1;若為1,則確定開關(guān)處于開啟狀態(tài),從而執(zhí)行步驟34;否則,則確定開關(guān)處于關(guān)閉狀態(tài),從而執(zhí)行步驟35;步驟34,前端運行所述RPC組件中封裝的基于RPC的調(diào)用方式的實現(xiàn)邏輯以及所述渲染邏輯,實現(xiàn)通過發(fā)送RPC請求的方式獲取數(shù)據(jù)并對數(shù)據(jù)進行展示,流程結(jié)束;步驟35,前端采用基于VM的方式獲取數(shù)據(jù)并展示,流程結(jié)束。通過實施例3提供的上述流程,前端開發(fā)人員僅需要對所述組件中的配置項的值進行更改,即可實現(xiàn)對數(shù)據(jù)獲取方式的更改,不需要再像現(xiàn)有技術(shù)一樣要對JS代碼中數(shù)據(jù)獲取方式的實現(xiàn)邏輯進行修改,因此可以避免聯(lián)調(diào)中由于前、后端開發(fā)人員對于數(shù)據(jù)獲取方式的需求不一致,從而產(chǎn)生的代碼變更成本。實施例4為解決由于對于數(shù)據(jù)獲取方式的需求不一致,而可能導(dǎo)致聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率較低的問題,出于與實施例~實施例3相同的發(fā)明構(gòu)思,本申請實施例4提供一種數(shù)據(jù)獲取裝置。該裝置可以就是一種前端,也可以是前端所包含的一種功能模塊。具體地,該裝置的結(jié)構(gòu)示意圖如圖4所示,包括如下功能單元:指令接收單元41,用于接收數(shù)據(jù)獲取指令;信息確定單元42,用于響應(yīng)于指令接收單元41接收的數(shù)據(jù)獲取指令,確定預(yù)先設(shè)置的方式信息;方式確定單元43,用于根據(jù)方式信息與相應(yīng)的數(shù)據(jù)獲取方式的預(yù)設(shè)映射關(guān)系(后稱所述映射關(guān)系),確定信息確定單元42確定的方式信息所映射的數(shù)據(jù)獲取方式;數(shù)據(jù)獲取單元44,用于采用方式確定單元43確定出的數(shù)據(jù)獲取方式,獲取數(shù)據(jù)。在一種實施方式中,若所述數(shù)據(jù)獲取指令為調(diào)用JS代碼的指令,則可以采用適配模式,確定所述預(yù)先設(shè)置的方式信息。具體地,信息確定單元42可以響應(yīng)于所述數(shù)據(jù)獲取指令,查找數(shù)據(jù)獲取指令所調(diào)用的JS代碼中的第一指 定字段;并根據(jù)查找結(jié)果,確定預(yù)先設(shè)置的方式信息。比如,信息確定單元42若查找到第一指定字段,則將第一指定字段不為空的狀態(tài),確定為所述預(yù)先設(shè)置的方式信息;若未查找到第一指定字段,則將第一指定字段為空的狀態(tài),確定為所述預(yù)先設(shè)置的方式信息?;蛘?,在一種實施方式中,可以采用開關(guān)模式,確定所述預(yù)先設(shè)置的方式信息。具體地,信息確定單元42可以用于響應(yīng)于所述數(shù)據(jù)獲取指令,確定設(shè)置的開關(guān)的狀態(tài);并根據(jù)確定結(jié)果,確定預(yù)先設(shè)置的方式信息。比如,信息確定單元42在確定出所述開關(guān)處于開啟狀態(tài)時,將開關(guān)處于開啟狀態(tài),確定為所述預(yù)先設(shè)置的方式信息;在確定出所述開關(guān)處于關(guān)閉狀態(tài)時,將開關(guān)處于關(guān)閉狀態(tài),確定為所述預(yù)先設(shè)置的方式信息。當(dāng)采用適配模式時,方式確定單元43,可以用于當(dāng)將第一指定字段不為空的狀態(tài),確定為所述預(yù)先設(shè)置的方式信息時,根據(jù)所述映射關(guān)系,確定信息確定單元42確定的方式信息映射的數(shù)據(jù)獲取方式,為基于RPC的調(diào)用方式(或基于VM的方式);當(dāng)將第一指定字段為空的狀態(tài),確定為所述預(yù)先設(shè)置的方式信息時,根據(jù)所述映射關(guān)系,確定信息確定單元42確定的方式信息映射的數(shù)據(jù)獲取方式,為基于VM的方式(或基于RPC的調(diào)用方式)。當(dāng)采用開關(guān)模式時,方式確定單元43,可以用于當(dāng)將開關(guān)處于開啟狀態(tài),確定為所述預(yù)先設(shè)置的方式信息時,根據(jù)所述映射關(guān)系,確定所述映射的數(shù)據(jù)獲取方式為基于RPC的調(diào)用方式(或基于VM的方式);當(dāng)將開關(guān)處于關(guān)閉狀態(tài),確定為所述預(yù)先設(shè)置的方式信息時,根據(jù)所述映射關(guān)系,確定所述映射的數(shù)據(jù)獲取方式為基于VM的方式(或基于RPC的調(diào)用方式)。無論是采用適配模式還是開關(guān)模式,數(shù)據(jù)獲取單元44均可以用于:當(dāng)根據(jù)所述映射關(guān)系,確定所述映射的數(shù)據(jù)獲取方式為基于VM的方式時,查找VM模板語言中的第二指定字段;若查找到第二指定字段,則獲取第二指定字段中的數(shù)據(jù);若未查找到第二指定字段,則抓取HTML元素的數(shù)據(jù)。無論是采用適配模式還是開關(guān)模式,數(shù)據(jù)獲取單元44均可以用于:根據(jù) 預(yù)定的數(shù)據(jù)展示方式,確定第二指定字段的標(biāo)識;在VM中,查找第二指定字段的標(biāo)識所對應(yīng)的第二指定字段。在一種實施方式中,數(shù)據(jù)獲取單元44根據(jù)預(yù)定的數(shù)據(jù)展示方式,確定第二指定字段的標(biāo)識的方式可以包括:當(dāng)所述數(shù)據(jù)展示方式為利用下拉框Select展示時,獲取Select元素的data-item屬性值;當(dāng)所述數(shù)據(jù)展示方式為利用菜單欄Menu展示時,獲取Menu對象的data值;當(dāng)所述數(shù)據(jù)展示方式為利用表格Table展示時,獲取Table對象的data-item屬性值。在一種實施方式中,數(shù)據(jù)獲取單元44可以用于:若未查找到第二指定字段,則抓取HTML頁面中DOM元素的數(shù)據(jù)。在一種實施方式中,為了便于用戶直觀地查看獲取到的數(shù)據(jù),本申請實施例提供的該裝置還可以包括:呈現(xiàn)單元,用于利用BUI組件,呈現(xiàn)數(shù)據(jù)獲取單元44獲取的數(shù)據(jù)。采用本申請實施例提供的方案,由于可以支持通過預(yù)先設(shè)置方式信息,來表征應(yīng)該采用哪種數(shù)據(jù)獲取方式,從而即便前、后端開發(fā)人員對于數(shù)據(jù)獲取方式的需求不一致,也可以簡單地通過修改該方式信息,達到改變數(shù)據(jù)獲取方式的目的,無需前端開發(fā)人員修改JS代碼中的數(shù)據(jù)獲取方式的實現(xiàn)邏輯。從而相對于現(xiàn)有技術(shù)而言,可以提高聯(lián)調(diào)過程中前端的數(shù)據(jù)獲取效率。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn) 品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。當(dāng)前第1頁1 2 3