專利名稱:一種基于對象的自定義擴(kuò)展信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子商務(wù)平臺領(lǐng)域,具體涉及對表單進(jìn)行自定義擴(kuò)展處理的方法。
背景技術(shù):
如今,不管是在WEB應(yīng)用程序,還是在本地應(yīng)用程序中,數(shù)據(jù)表單都已經(jīng)是一個非常重要的組成部分。它為用戶提供可視化的交互界面,促進(jìn)用戶的輸入,使得各種程序從用戶那里收集數(shù)據(jù)成為可能,而用戶的輸入正是業(yè)務(wù)流程的關(guān)鍵所在,在實(shí)際情況中幾乎所有軟件系統(tǒng)的開發(fā)都需要創(chuàng)建一個或多個數(shù)據(jù)表單來展示數(shù)據(jù)并收集用戶的輸入。同時,在實(shí)際情況中,應(yīng)用程序常常需要運(yùn)行在各種不同類型的終端上,比如傳統(tǒng)的PC機(jī),以及各種移動終端等,這就需要對數(shù)據(jù)表單界面進(jìn)行針對性的設(shè)計(jì),從而使得開發(fā)人員需要為同一個數(shù)據(jù)表單界面設(shè)計(jì)并開發(fā)多個對應(yīng)不同類型終端的版本,導(dǎo)致大量的重復(fù)設(shè)計(jì)工作,費(fèi)時費(fèi)力。因此,如何快速、高效地對數(shù)據(jù)表單進(jìn)行描述及展現(xiàn)已成為開發(fā)人員關(guān)注的焦點(diǎn)。在許多領(lǐng)域中,常使用XML來存儲和傳輸數(shù)據(jù)信息。例如Web技術(shù)中的XForms,它被W3C組織制定為HTML表單的替代標(biāo)準(zhǔn),其數(shù)據(jù)模型便以XML作為存儲和操作數(shù)據(jù)的對象,并通過XML在網(wǎng)絡(luò)上傳輸數(shù)據(jù)。XML是指可擴(kuò)展標(biāo)記語言(Extensible MarkupLanguage),類似于HTML,它是一種標(biāo)記語言。與主要用于表現(xiàn)和展示數(shù)據(jù)的HTML語言不同的是,XML被設(shè)計(jì)用來傳送及攜帶數(shù)據(jù)。XML于1998年2月發(fā)布為W3C標(biāo)準(zhǔn),已被廣泛應(yīng)用于信息存儲和描述領(lǐng)域。圍繞XML技術(shù)而實(shí)現(xiàn)的WEB技術(shù),一般是通過將自定義的表單信息用XML標(biāo)記語言進(jìn)行描述、存儲、解析,然后生成HTML表單。該技術(shù)雖然能直接描述HTML元素,但對表單元素的輸入控制與內(nèi)容合法驗(yàn)證、事件處理、組合表單元素的表達(dá)等都需要比較復(fù)雜的實(shí)現(xiàn)過程。另外,對于客戶端界面主要由JavaScript (簡稱JS)代碼動態(tài)生成的系統(tǒng)來說,采用上述的XML方式,實(shí)現(xiàn)復(fù)雜,效率也不高,且在要求動態(tài)生成的基礎(chǔ)信息和自定義擴(kuò)展信息在同一界面上顯示時,需要較為復(fù)雜的處理。例如一篇授權(quán)公告日為2012. 01. 11、授權(quán)公告號為CN 101661512 B的發(fā)明專利,
公開了一種識別傳統(tǒng)表單信息并創(chuàng)建對應(yīng)Web表單的系統(tǒng)及方法,其方法主要包括以下步驟⑴讀入傳統(tǒng)表單信息;(2)識別及分析;(3)修正與設(shè)定;⑷發(fā)送及存儲;(5)解析。該方法重點(diǎn)在于將紙質(zhì)的傳統(tǒng)表單通過一系列處理轉(zhuǎn)換成數(shù)字形式的Web表單,并不具備能自動適應(yīng)用戶應(yīng)用需求變化的特點(diǎn)。再例如申請公布日為2012. 02. 01、申請公布號為CN 102339314 A的發(fā)明專利,公開了一種基于XML的跨終端的數(shù)據(jù)表單描述與展現(xiàn)方法,該方法通過界面描述文件對數(shù)據(jù)表單界面的全局、局部樣式,如顏色、字體、層次關(guān)系、對齊方式、換行方式等進(jìn)行定義,對數(shù)據(jù)表單界面元素與數(shù)據(jù)字段間的綁定關(guān)系,如數(shù)據(jù)的類型、可見性、只讀性、校檢規(guī)則以及數(shù)據(jù)字段的編輯器類型等進(jìn)行定義,針對不同類型的終端,實(shí)現(xiàn)特定的界面描述解析器,解析界面描述文件,獲取對應(yīng)終端上的數(shù)據(jù)表單界面的布局方式及數(shù)據(jù)綁定關(guān)系,通過一次定義界面描述文件,實(shí)現(xiàn)同一數(shù)據(jù)表單在不同終端上的不同界面展現(xiàn)形式。該方法只實(shí)現(xiàn)了界面的相對靈活性,后臺業(yè)務(wù)數(shù)據(jù)的處理需要單獨(dú)編碼實(shí)現(xiàn)。當(dāng)業(yè)務(wù)發(fā)生變化時,需要進(jìn)行復(fù)雜的配置修改,同時后臺數(shù)據(jù)的業(yè)務(wù)邏輯處理也需要修改大量代碼。再例如申請公布日為2012. 04. 25、申請公布號為CN 102426549 A的發(fā)明專利,公開了一種高效的WEB的表單校驗(yàn)方法及其框架,其通過配置文件轉(zhuǎn)換插件,把服務(wù)器端校驗(yàn)規(guī)則配置文件(XML格式文件)一鍵轉(zhuǎn)換成客戶端校驗(yàn)規(guī)則配置文件(JSON格式文件),既負(fù)責(zé)服務(wù)器端的數(shù)據(jù)校驗(yàn),又負(fù)責(zé)了客戶端的數(shù)據(jù)校驗(yàn),保證了服務(wù)器端和客戶端校驗(yàn)規(guī)則的邏輯一致,從而消除了服務(wù)器端和客戶端校驗(yàn)邏輯之間的不統(tǒng)一,并減小了重復(fù)開發(fā)工作量,提高了代碼質(zhì)量,提升了電子商務(wù)平臺的性能和穩(wěn)定性。該方法提出的數(shù)據(jù)校驗(yàn)也只適用于對用戶輸入內(nèi)容的一般性規(guī)則驗(yàn)證,并且該方法設(shè)計(jì)的配置文件與業(yè)務(wù)相關(guān),不適用于自定義表單。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種基于對象的自定義擴(kuò)展信息的方法,充分結(jié)合當(dāng)前流行的JavaScript對象技術(shù),將自定義的表單字段按對象方式進(jìn)行組織設(shè)計(jì)、定義、存儲及查詢顯示,實(shí)現(xiàn)基礎(chǔ)信息與用戶自定義擴(kuò)展信息的方便、快捷、靈活的統(tǒng)一展現(xiàn),以解決現(xiàn)有技術(shù)之不足。為了解決上述技術(shù)問題,本發(fā)明的一種基于對象的自定義擴(kuò)展信息的方法,該方法中,首先新建一個通用對象模板,對該通用對象模板的對象屬性(例如字段名稱、類型編碼、字段長度、關(guān)聯(lián)數(shù)據(jù)表名稱和關(guān)聯(lián)字段名稱、是否可見或必填等屬性)進(jìn)行設(shè)置,并將通用對象模板的信息以應(yīng)用程序可識別的格式(例如JSON格式)存儲為通用對象,再將通用對象存儲至對象數(shù)據(jù)庫中,應(yīng)用程序加載該通用對象模板;該通用對象模板包括客戶端和服務(wù)器端;其數(shù)據(jù)處理過程如下
步驟1:用戶通過客戶端輸入數(shù)據(jù);
步驟2 :客戶端對用戶輸入的數(shù)據(jù)進(jìn)行處理,該處理包括將輸入的數(shù)據(jù)分類為表單數(shù)據(jù)和請求信息對表單數(shù)據(jù)進(jìn)行校驗(yàn)、將校驗(yàn)后的數(shù)據(jù)發(fā)送至服務(wù)器端;將請求信息發(fā)送至服務(wù)器端,并接收服務(wù)器端返回的處理結(jié)果;其中,校驗(yàn)是通過預(yù)先編寫的校驗(yàn)文件進(jìn)行校驗(yàn),具體的,校驗(yàn)直接由相應(yīng)的JS組件,結(jié)合自定義表單對象類型對應(yīng)的正則表達(dá)式等特殊驗(yàn)證規(guī)則,對用戶的操作進(jìn)行控制和提示;
步驟3 :服務(wù)器端對客戶端發(fā)送來的數(shù)據(jù)進(jìn)行處理,該處理包括接收客戶端發(fā)來的數(shù)據(jù),將接收來的數(shù)據(jù)進(jìn)行分類、對分類數(shù)據(jù)使用JavaScript進(jìn)行封裝、對封裝后的數(shù)據(jù)及數(shù)據(jù)形成的關(guān)聯(lián)關(guān)系進(jìn)行存儲、處理用戶提交的請求信息(例如查詢、搜索)并將處理結(jié)果顯示在客戶端頁面;其中,數(shù)據(jù)包括若干個數(shù)據(jù)元素,每個數(shù)據(jù)元素包括數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容和數(shù)據(jù)屬性。進(jìn)一步的,為了提高表單的顯示效率,建立二級緩存機(jī)制,即步驟3還包括解析客戶端發(fā)送來的請求信息,并將解析后得到的處理結(jié)果進(jìn)行緩存的步驟,具體過程如下當(dāng)服務(wù)器端接收到客戶端發(fā)送的請求信息時,首先判斷該請求信息是否是首次接收,如果是首次接收,則服務(wù)器端解析該請求信息并返回處理結(jié)果,然后對處理結(jié)果進(jìn)行標(biāo)記,同時存儲到服務(wù)器端的緩存內(nèi);如果不是首次接收的請求信息,即之前有接收到同樣的請求信息時,則服務(wù)器端直接從緩存內(nèi)取出對應(yīng)處理結(jié)果,并返回給客戶端。更進(jìn)一步的,步驟2中客戶端對用戶輸入的數(shù)據(jù)進(jìn)行處理,還包括對服務(wù)器端返回的處理結(jié)果進(jìn)行緩存的步驟,具體過程如下當(dāng)客戶端發(fā)送請求信息時,首先判斷該請求信息是否是首次發(fā)送,如果是首次發(fā)送,則將該請求信息發(fā)送至服務(wù)器端,等待服務(wù)器端返回處理結(jié)果,當(dāng)接收到服務(wù)器端返回的處理結(jié)果時,客戶端首先建立緩存對象哈希表,并將該處理結(jié)果存儲進(jìn)去;如果不是首次發(fā)送的請求信息,即之前有發(fā)送過同樣的請求信息時,客戶端直接讀取緩存對象哈希表,并將該處理結(jié)果顯示出來,不再需要發(fā)送請求至服務(wù)器端。該方案中,客戶端為處理結(jié)果建立緩存對象哈希表,可大大減少客戶端重復(fù)請求,加快顯示效果。其中,步驟3中,服務(wù)器端將接收來的數(shù)據(jù)進(jìn)行分類,首先分為常規(guī)表單數(shù)據(jù)和用戶自定義表單數(shù)據(jù)兩大類;常規(guī)表單是客戶端界面上原有的表單,常規(guī)表單數(shù)據(jù)是用戶填寫常規(guī)表單而獲得的表單數(shù)據(jù);用戶自定義表單是客戶端界面上沒有的表單,用戶擴(kuò)展的自定義表單,用戶自定義表單數(shù)據(jù)是用戶填寫該自定義表單而獲得的表單數(shù)據(jù)。然后分別對常規(guī)表單數(shù)據(jù)和用戶自定義表單數(shù)據(jù)再進(jìn)行第二次分類,根據(jù)數(shù)據(jù)類型和數(shù)據(jù)內(nèi)容細(xì)分為文本輸入框(單行文本輸入框/多行文本輸入框)、數(shù)字輸入框、電話傳真輸入框、日期、時間、單選按鈕、單選下拉框、復(fù)選框。還可根據(jù)實(shí)際需要將表單數(shù)據(jù)進(jìn)行組合。每個表單數(shù)據(jù)包含數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容(名稱、內(nèi)容等)和數(shù)據(jù)屬性(是否可見、是否必填等)。對分類數(shù)據(jù)使用JavaScript進(jìn)行封裝,具體是使用上述分類后,用JavaScript封裝成面向?qū)ο蟮幕A(chǔ)組件,同時包含了對各類數(shù)據(jù)的輸入驗(yàn)證和控制、事件處理等。對封裝后的數(shù)據(jù)及數(shù)據(jù)形成的關(guān)聯(lián)關(guān)系進(jìn)行存儲,包括對常規(guī)表單數(shù)據(jù)的存儲和用戶自定義表單數(shù)據(jù)的存儲;其中對于常規(guī)表單數(shù)據(jù)的存儲,是將數(shù)據(jù)類型和屬性存儲為一張表,將數(shù)據(jù)內(nèi)容存儲至另外一張表,并設(shè)置兩張表之間的關(guān)聯(lián)關(guān)系;對用戶自定義表單數(shù)據(jù)的存儲,具體過程如下用戶自定義表單數(shù)據(jù)包括擴(kuò)展字段的界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)和數(shù)據(jù)本身兩部分。數(shù)據(jù)本身包括數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容和數(shù)據(jù)屬性。其中界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)的描述設(shè)計(jì)是關(guān)鍵,它影響到信息解析組裝的復(fù)雜度和表單界面展現(xiàn)的速度。本方法中,每個自定義表單的字段的界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)采用JavaScript對象方式,在數(shù)據(jù)庫中以JSON格式的字符串形式進(jìn)行存儲,將該界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)存儲至一張表中,存儲的內(nèi)容主要包括字段名稱、類型編碼、字段長度、關(guān)聯(lián)數(shù)據(jù)表名稱和關(guān)聯(lián)字段名稱、是否可見或必填等屬性信息;將每個字段的數(shù)據(jù)內(nèi)容以字符形式存儲與另一張表,兩張表的字段信息采用相同的列名,并一一對應(yīng),兩張表通過擴(kuò)展信息對應(yīng)基礎(chǔ)表名和用戶ID建立關(guān)聯(lián)關(guān)系。擴(kuò)展字段的數(shù)據(jù)記錄通過基礎(chǔ)數(shù)據(jù)記錄的ID建立關(guān)聯(lián)關(guān)系。通過這種特殊關(guān)系,在進(jìn)行數(shù)據(jù)查詢時可大大提高查詢效率。步驟3中,處理用戶提交的請求信息并將處理結(jié)果顯示在客戶端頁面,具體包括以下過程
過程1:當(dāng)客戶端發(fā)送自定義擴(kuò)展信息顯示請求時,服務(wù)器端解析請求參數(shù),根據(jù)基礎(chǔ)表表名和用戶ID獲取對應(yīng)結(jié)構(gòu)信息記錄;
過程2 :自定義信息邏輯處理模塊根據(jù)類型編碼解析處理,并組裝成客戶端可直接使用的對象;
過程3 :服務(wù)器將各對象進(jìn)行組合,以JSON格式的字符串形式輸出給客戶端。這種格式數(shù)據(jù)易于理解和檢查,非常有利于編碼和測試;
過程4 客戶端獲取服務(wù)器的應(yīng)答數(shù)據(jù),將JSON格式字符串轉(zhuǎn)換成對象,直接提取表單對象數(shù)組集合,使用JSON動態(tài)構(gòu)建表單對象,通過封裝的JavaScript組件的Form類的Add()方法,將擴(kuò)展字段信息和基礎(chǔ)表各字段按順序添加到同一個表單的子集中;
過程5 :客戶端JavaScript組件對表單對象進(jìn)行處理,根據(jù)子集對象的各種屬性,動態(tài)創(chuàng)建HTML表單元素,按布局設(shè)置的字段順序輸出至頁面。網(wǎng)頁中基礎(chǔ)字段和自定義字段以相同方式展現(xiàn)。本發(fā)明采用了一種獨(dú)特的JavaScript對象方式來描述自定義擴(kuò)展信息,將客戶端對象轉(zhuǎn)換成JSON格式字符串存儲在數(shù)據(jù)庫中。應(yīng)用時服務(wù)器獲取數(shù)據(jù)后進(jìn)行解析,直接按客戶端表單對象對應(yīng)的文檔格式輸出,客戶端無需轉(zhuǎn)換處理即可識別對象,并與基礎(chǔ)表單一起集成。這種方法充分利用了 JSON的特性,和XML格式存儲和表現(xiàn)表單結(jié)構(gòu)相比,既可減少數(shù)據(jù)傳輸量,提高傳輸效率,又可減少解析的復(fù)雜度,用JSON解析器可以快速解析。使用JSON動態(tài)構(gòu)建表單對象,不必通過類來進(jìn)行實(shí)例化,大大提高了編碼效率和靈活度。該方法適用于由客戶端腳本動態(tài)生成復(fù)雜生動的交互界面的Web管理系統(tǒng),實(shí)現(xiàn)了基礎(chǔ)表單與自定義擴(kuò)展信息的無縫展現(xiàn),大大增強(qiáng)了系統(tǒng)應(yīng)用的靈活性,有效的滿足了多用戶在信息顯示方面的個性化需求。而采用本方法中的基于對象的設(shè)計(jì),充分利用JSON格式的特性,則可將自定義擴(kuò)展信息以簡單高效方式實(shí)現(xiàn),并達(dá)到基礎(chǔ)信息與自定義擴(kuò)展信息的無縫集成顯示效果。另外,本發(fā)明只需一次編碼(建立一個通用對象模板),通過修改通用對象模板的配置即可滿足各種用戶的個性化需求,大大減少了系統(tǒng)二次開發(fā)工作量;實(shí)現(xiàn)了業(yè)務(wù)基礎(chǔ)信息和自定義擴(kuò)展信息在界面上的無縫集成顯示;將自定義擴(kuò)展字段按客戶端組件可直接識別的對象形式進(jìn)行組織,以JSON格式存儲和傳輸,既可減少數(shù)據(jù)傳輸量,提高傳輸效率,又可減少解析的復(fù)雜度。編碼簡單而且非常靈活。在表單數(shù)據(jù)查詢中,通過巧妙的設(shè)計(jì),針對客戶端分頁請求僅提取需要展現(xiàn)的基礎(chǔ)信息對應(yīng)的自定義字段數(shù)據(jù),減少了解析過程和數(shù)據(jù)傳輸量,大大提高了服務(wù)器數(shù)據(jù)查詢效率和客戶端數(shù)據(jù)展現(xiàn)效率,增強(qiáng)用戶體驗(yàn)效果。該方法與用XML格式存儲自定義表單信息相比,更適用于客戶端腳本動態(tài)生成復(fù)雜生動的交互界面的富客戶端Web管理系統(tǒng)。
圖1是本發(fā)明的流程圖。
具體實(shí)施例方式現(xiàn)結(jié)合附圖和具體實(shí)施方式
對本發(fā)明進(jìn)一步說明。本發(fā)明基于對象設(shè)計(jì),充分利用JSON格式的特性,則可將自定義擴(kuò)展信息以簡單高效方式實(shí)現(xiàn),并達(dá)到基礎(chǔ)信息與自定義擴(kuò)展信息的無縫集成顯示效果。其設(shè)計(jì)思路如下
1.1首先新建一個表單自定義字段設(shè)計(jì)器(通用對象模板),對該表單自定義字段設(shè)計(jì)器的對象屬性進(jìn)行設(shè)置,并將其信息以JOSN格式存儲為通用對象,再將通用對象存儲至對象數(shù)據(jù)庫中,應(yīng)用程序加載該通用對象模板;該表單自定義字段設(shè)計(jì)器包括客戶端的處理程序和服務(wù)器端的處理程序。該表單自定義字段設(shè)計(jì)器,可靈活擴(kuò)展當(dāng)前業(yè)務(wù),滿足多用戶的個性化需求。用戶根據(jù)業(yè)務(wù)需要,可在基礎(chǔ)表單已實(shí)現(xiàn)的字段基礎(chǔ)上,定義其他非同名的字段。字段類型可以為文本輸入框(單行文本輸入框/多行文本輸入框)、數(shù)字輸入框、電話傳真輸入框、日期、時間、單選按鈕、單選下拉框、復(fù)選框等。對于復(fù)雜業(yè)務(wù),可設(shè)計(jì)獨(dú)立的組件類型供用戶選擇??烧{(diào)整各字段的排列順序進(jìn)行表單布局設(shè)置。用戶設(shè)置完自定義字段信息后,系統(tǒng)會根據(jù)不同字段類型,按系統(tǒng)設(shè)計(jì)的對象格式,將每個字段對應(yīng)的類型和屬性信息存儲于自定義字段數(shù)據(jù)結(jié)構(gòu)表中。對象的內(nèi)容主要包括字段名稱、類型編碼、字段長度、關(guān)聯(lián)數(shù)據(jù)表名稱和關(guān)聯(lián)字段名稱、是否可見或必填等屬性信息。自定義字段數(shù)據(jù)結(jié)構(gòu)表的設(shè)計(jì)如下表
權(quán)利要求
1.一種基于對象的自定義擴(kuò)展信息的方法,首先新建一個通用對象模板,對該通用對象模板的對象屬性進(jìn)行設(shè)置,并將通用對象模板的信息以應(yīng)用程序可識別的格式存儲為通用對象,再將通用對象存儲至對象數(shù)據(jù)庫中,應(yīng)用程序加載該通用對象模板;該通用對象模板包括客戶端和服務(wù)器端;其數(shù)據(jù)處理過程包括:步驟1:用戶通過客戶端輸入數(shù)據(jù);步驟2:客戶端對用戶輸入的數(shù)據(jù)進(jìn)行處理,該處理包括將輸入的數(shù)據(jù)分類為表單數(shù)據(jù)和請求信息:對表單數(shù)據(jù)進(jìn)行校驗(yàn)、將校驗(yàn)后的數(shù)據(jù)發(fā)送至服務(wù)器端;將請求信息發(fā)送至服務(wù)器端,并接收服務(wù)器端返回的處理結(jié)果;其中,校驗(yàn)是通過預(yù)先編寫的校驗(yàn)文件進(jìn)行校驗(yàn);步驟3:服務(wù)器端對客戶端發(fā)送來的數(shù)據(jù)進(jìn)行處理,該處理包括接收客戶端發(fā)來的數(shù)據(jù),將接收來的數(shù)據(jù)進(jìn)行分類、對分類數(shù)據(jù)使用JavaScript進(jìn)行封裝、對封裝后的數(shù)據(jù)及數(shù)據(jù)形成的關(guān)聯(lián)關(guān)系進(jìn)行存儲、處理用戶提交的請求信息并將處理結(jié)果顯示在客戶端頁面;其中,數(shù)據(jù)包括若干個數(shù)據(jù)元素,每個數(shù)據(jù)元素包括數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容和數(shù)據(jù)屬性。
2.根據(jù)權(quán)利要求1所述的一種基于對象的自定義擴(kuò)展信息的方法,其特征在于:步驟3中服務(wù)器端對客戶端發(fā)送來的數(shù)據(jù)進(jìn)行處理,還包括解析客戶端發(fā)送來的請求信息,并將解析后得到的處理結(jié)果進(jìn)行緩存的步驟,具體過程如下:當(dāng)服務(wù)器端接收到客戶端發(fā)送的請求信息時,首先判斷該請求信息是否是首次接收,如果是首次接收,則服務(wù)器端解析該請求信息并返回處理結(jié)果,然后對處理結(jié)果進(jìn)行標(biāo)記,同時存儲到服務(wù)器端的緩存內(nèi);如果不是首次接收的請求信息,即之前有接收到同樣的請求信息時,則服務(wù)器端直接從緩存內(nèi)取出對應(yīng)處理結(jié)果,并返回給客戶端。
3.根據(jù)權(quán)利要求2所述的一種基于對象的自定義擴(kuò)展信息的方法,其特征在于:步驟2中客戶端對用戶輸入的數(shù)據(jù)進(jìn)行處理,還包括對服務(wù)器端返回的處理結(jié)果進(jìn)行緩存的步驟,具體過程如下:當(dāng)客戶端發(fā)送請求信息時,首先判斷該請求信息是否是首次發(fā)送,如果是首次發(fā)送,則將該請求信息發(fā)送至服務(wù)器端,等待服務(wù)器端返回處理結(jié)果,當(dāng)接收到服務(wù)器端返回的處理結(jié)果時,客戶 端首先建立緩存對象哈希表,并將該處理結(jié)果存儲進(jìn)去;如果不是首次發(fā)送的請求信息,即之前有發(fā)送過同樣的請求信息時,客戶端直接讀取緩存對象哈希表,并將該處理結(jié)果顯示出來。
4.根據(jù)權(quán)利要求1所述的一種基于對象的自定義擴(kuò)展信息的方法,其特征在于:步驟3中,服務(wù)器端將接收來的數(shù)據(jù)進(jìn)行分類,首先分為常規(guī)表單數(shù)據(jù)和用戶自定義表單數(shù)據(jù)兩大類;然后分別對常規(guī)表單數(shù)據(jù)和用戶自定義表單數(shù)據(jù)再進(jìn)行第二次分類,具體是根據(jù)數(shù)據(jù)類型和數(shù)據(jù)內(nèi)容來劃分。
5.根據(jù)權(quán)利要求4所述的一種基于對象的自定義擴(kuò)展信息的方法,其特征在于:對封裝后的數(shù)據(jù)及數(shù)據(jù)形成的關(guān)聯(lián)關(guān)系進(jìn)行存儲,包括對常規(guī)表單數(shù)據(jù)的存儲和用戶自定義表單數(shù)據(jù)的存儲;其中對于常規(guī)表單數(shù)據(jù)的存儲,是將數(shù)據(jù)類型和屬性存儲為一張表,將數(shù)據(jù)內(nèi)容存儲至另外一張表,并設(shè)置兩張表之間的關(guān)聯(lián)關(guān)系;對用戶自定義表單數(shù)據(jù)的存儲,具體過程如下:過程1:用戶自定義表單數(shù)據(jù)包括擴(kuò)展字段的界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)和數(shù)據(jù)本身兩部分;數(shù)據(jù)本身包括數(shù)據(jù)類型、數(shù)據(jù)內(nèi)容和數(shù)據(jù)屬性;將每個自定義表單的字段的界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)采用JavaScript對象方式,在數(shù)據(jù)庫中以JSON格式的字符串形式進(jìn)行存儲,將該界面展現(xiàn)結(jié)構(gòu)數(shù)據(jù)存儲至一張表中;過程2:將每個字段的數(shù)據(jù)內(nèi)容以字符形式存儲與另一張表;兩張表的字段信息采用相同的列名,并--對應(yīng);過程3:兩張表建立關(guān)聯(lián)關(guān)系:具體是通過擴(kuò)展信息對應(yīng)主表表名和用戶ID建立關(guān)聯(lián)關(guān)系,擴(kuò)展字段的數(shù)據(jù)記錄通過主表數(shù)據(jù)記錄的ID建立關(guān)聯(lián)關(guān)系。
6.根據(jù)權(quán)利要求1所述的一種基于對象的自定義擴(kuò)展信息的方法,其特征在于:步驟3中,處理用戶提交的請求信息并將處理結(jié)果顯示在客戶端頁面,具體包括以下過程:過程1:當(dāng)客戶端發(fā)送自定義擴(kuò)展信息顯示請求信息時,服務(wù)器端解析請求信息參數(shù),根據(jù)基礎(chǔ)表表名和用戶ID獲取對應(yīng)結(jié)構(gòu)信息記錄;過程2:根據(jù)類型編碼解析處理,并組裝成客戶端可直接使用的JavaScript對象;過程3:服務(wù)器端將各JavaScript對象進(jìn)行組合,以JSON格式的字符串形式輸出給客戶端;過程4:客戶端獲取服務(wù)器端的應(yīng)答數(shù)據(jù),將JSON格式字符串轉(zhuǎn)換成對象,直接提取表單對象數(shù)組集合,使用JSON動態(tài)構(gòu)建表單對象,通過封裝的JavaScript組件將擴(kuò)展字段信息和基礎(chǔ)表各字段添加到同一個表單的子集中;過程5:客戶端JavaScript組件對表單對象進(jìn)行處理,根據(jù)子集對象的各種屬性,動態(tài)創(chuàng)建HTML表單元素, 按布局設(shè)置的字段順序輸出至頁面。
全文摘要
本發(fā)明涉及電子商務(wù)平臺領(lǐng)域,具體涉及對表單進(jìn)行自定義擴(kuò)展處理的方法。一種基于對象的自定義擴(kuò)展信息的方法,首先新建一個通用對象模板,該通用對象模板包括客戶端和服務(wù)器端;其處理過程包括步驟1用戶通過客戶端輸入數(shù)據(jù);步驟2客戶端對用戶輸入的數(shù)據(jù)進(jìn)行處理,該處理包括將輸入的數(shù)據(jù)分類為表單數(shù)據(jù)和請求信息;步驟3服務(wù)器端對客戶端發(fā)送來的數(shù)據(jù)進(jìn)行處理,該處理包括接收客戶端發(fā)來的數(shù)據(jù),將接收來的數(shù)據(jù)進(jìn)行分類、對分類數(shù)據(jù)使用JavaScript進(jìn)行封裝、對封裝后的數(shù)據(jù)及數(shù)據(jù)形成的關(guān)聯(lián)關(guān)系進(jìn)行存儲、處理用戶提交的請求信息并將處理結(jié)果顯示在客戶端頁面。本發(fā)明應(yīng)用于在WEB技術(shù)中,提高對表單進(jìn)行自定義擴(kuò)展處理的效率。
文檔編號G06F9/44GK103077185SQ201210549919
公開日2013年5月1日 申請日期2012年12月18日 優(yōu)先權(quán)日2012年12月18日
發(fā)明者曲建云, 余建成, 傅建記, 張嶼 申請人:廈門雅迅網(wǎng)絡(luò)股份有限公司