專利名稱:一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于web應(yīng)用領(lǐng)域,具體涉及一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
在常規(guī)的網(wǎng)頁異步交互應(yīng)用中,其基本原理就是客戶端向服務(wù)器端發(fā)送一個異步請求,服務(wù)器端調(diào)用業(yè)務(wù)處理方法,將經(jīng)過處理的數(shù)據(jù)返回給客戶端,然后通過javascipt 和ess對頁面進行更新,以實現(xiàn)在頁面不刷新的情況下更新顯示內(nèi)容的目的,更好的提高了用戶體驗。在現(xiàn)有方法的過程中,相對麻煩的就是返回的數(shù)據(jù)內(nèi)容在頁面的解析問題。對于只是簡單的返回類型,例如數(shù)字或字符串,返回字符串就可達到目的。但當返回的數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜時,使用字符串返回就需要編寫更多的腳本方法用于拆分字符串并將拆分的結(jié)果賦值到相應(yīng)的位置,這種做法,不僅加大了程序開發(fā)的工作量,同時加重了瀏覽器解析 javascript代碼的負擔(dān),而且會使得代碼丑陋,難以維護。若使用xml或json格式返回會稍好一些,但這樣的數(shù)據(jù)結(jié)構(gòu)仍然在前端需要一定的解析處理,并沒有有效的解決問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中的問題,本發(fā)明的目的是提供一種數(shù)據(jù)處理方法,利用已定義的模板,對客戶端請求的數(shù)據(jù)進行渲染,然后將渲染好的模板數(shù)據(jù)直接寫回到客戶端,有效減少了頁面解析的代碼量,提高了數(shù)據(jù)的解析性能和可維護性。本發(fā)明提供一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,步驟如下1)客戶端向服務(wù)器端發(fā)送異步數(shù)據(jù)請求;2)服務(wù)器端接收請求后,將相應(yīng)的異步數(shù)據(jù)進行封裝;3)服務(wù)器端將經(jīng)封裝的異步數(shù)據(jù)和預(yù)定義的模板發(fā)送到數(shù)據(jù)處理引擎;4)數(shù)據(jù)處理引擎基于模板處理異步數(shù)據(jù),生成網(wǎng)頁瀏覽器能夠直接顯示處理的字符串,并將字符串返回給客戶端;5)客戶端接收返回的字符串,將其寫入頁面指定位置,實現(xiàn)頁面的局部刷新。所述服務(wù)器端將數(shù)據(jù)封裝為對象。所述模板是具有固定格式和固定語法的文檔,其中占位符標識的內(nèi)容可被動態(tài)數(shù)據(jù)替換。所述占位符是特殊字符開始和結(jié)尾的字符串,中間的內(nèi)容為占位符標識的內(nèi)容。所述模板是由偽html語言生成,其布局格式采用XML格式規(guī)范。模板一份已經(jīng)寫好了基本內(nèi)容,有著固定格式、固定語法的文檔,其中用占位符標識的內(nèi)容,由使用者來填充,不同的使用者給出的數(shù)據(jù)是不同的。在模板中的占位符,在模板運行時,由數(shù)據(jù)處理引擎來解析模板,并采用動態(tài)數(shù)據(jù)替換占位符部分的內(nèi)容。所述第4)步驟的具體方法為
A、數(shù)據(jù)處理引擎讀取模板;B、將模板以文本形式加載到內(nèi)存中;C、將加載到內(nèi)存中的模板文本解析為html代碼的文本,在解析過程中遇到模板的占位符時,將占位符標識的內(nèi)容替換為經(jīng)封裝的數(shù)據(jù)。D、將解析生成的文本轉(zhuǎn)換為字符串。本發(fā)明的核心功能和業(yè)務(wù)都由數(shù)據(jù)處理引擎完成。開發(fā)人員需要做的僅僅是接收用戶的請求數(shù)據(jù),根據(jù)業(yè)務(wù)需要進行數(shù)據(jù)封裝,并按照業(yè)務(wù)要求的展現(xiàn)形式編寫簡單的模板。然后將數(shù)據(jù)與模板同時提交到數(shù)據(jù)處理引擎。最后,接收引擎返回的數(shù)據(jù),并將其寫入頁面指定位置即可。在此過程中,開發(fā)人員只需關(guān)注業(yè)務(wù)和頁面的展現(xiàn),而不需再為異步調(diào)用后復(fù)雜返回值的解析耗費大量的精力編寫處理方法。而客戶端接收數(shù)據(jù)后即可用于顯示,提高了顯示速度,增強了用戶體驗。數(shù)據(jù)處理引擎用java語言編寫的數(shù)據(jù)處理類,基于模板來生成文本輸出。本發(fā)明還提供一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理系統(tǒng),包括客戶端、服務(wù)器端和數(shù)據(jù)處理引擎,客戶端發(fā)送異步數(shù)據(jù)請求給服務(wù)器端,服務(wù)器端根據(jù)請求將相應(yīng)的異步數(shù)據(jù)和模板發(fā)送給數(shù)據(jù)處理引擎,數(shù)據(jù)處理引擎基于模板處理異步數(shù)據(jù)并生成字符串發(fā)送給客戶端。所述服務(wù)器端設(shè)置有接收模塊和數(shù)據(jù)封裝模塊,接收模塊接收客戶端的請求,數(shù)據(jù)封裝模塊將異步數(shù)據(jù)封裝為對象。本發(fā)明優(yōu)點如下1.本發(fā)明與Web容器無關(guān),可用于任何web系統(tǒng)的表現(xiàn)層實現(xiàn),徹底分離表現(xiàn)層和業(yè)務(wù)邏輯層。2.開發(fā)人員只需關(guān)注業(yè)務(wù)和頁面的展現(xiàn),不用為返回值解析編寫代碼,提高了開發(fā)效率。3.客戶端收到返回數(shù)據(jù)可直接寫入頁面進行顯示,提高了顯示速度,增強了用戶體驗。
附圖是本發(fā)明的數(shù)據(jù)處理方法流程圖。
具體實施例方式本發(fā)明的加速網(wǎng)頁交互的異步數(shù)據(jù)處理系統(tǒng),包括客戶端、服務(wù)器端和數(shù)據(jù)處理引擎,客戶端發(fā)送異步數(shù)據(jù)請求給服務(wù)器端,服務(wù)器端根據(jù)請求將相應(yīng)的異步數(shù)據(jù)和模板發(fā)送給數(shù)據(jù)處理引擎,數(shù)據(jù)處理引擎基于模板處理異步數(shù)據(jù)并生成字符串發(fā)送給客戶端。所述服務(wù)器端設(shè)置有接收模塊和數(shù)據(jù)封裝模塊,接收模塊接收客戶端的請求,數(shù)據(jù)封裝模塊將異步數(shù)據(jù)封裝為對象。下面結(jié)合附圖,詳細的說明本發(fā)明的系統(tǒng)利用模板處理異步調(diào)用返回值的流程。本發(fā)明的數(shù)據(jù)處理方法,如圖所示1.客戶端發(fā)出異步數(shù)據(jù)請求。2.服務(wù)器端調(diào)用接收模塊接收客戶端請求,根據(jù)請求中的參數(shù)值調(diào)用數(shù)據(jù)封裝模塊,將需要返回給客戶端的數(shù)據(jù)封裝成對象,此對象可以是任何形式,如List,Map, Object 等。生成對象后,將對象提交到數(shù)據(jù)處理引擎。3.數(shù)據(jù)處理引擎通過讀取模板文件,以約定的規(guī)則,對模板進行解析。其基本原理如下首先,將模板以文本形式加載到內(nèi)存中。如果加載成功,則進行以下流程;否則進入錯誤處理模塊,向客戶端返回錯誤提示信息,流程結(jié)束。模板的定義語法是一種偽html語言,其布局格式仿照靜態(tài)頁面實現(xiàn)。要求其嚴格遵守XML格式規(guī)范,通過父節(jié)點、子節(jié)點、同級節(jié)點等規(guī)則的定義實現(xiàn)頁面布局。在標簽命名不沖突的情況下,可以復(fù)用html中的大部分基礎(chǔ)標簽,這樣降低了解析時需要轉(zhuǎn)換的數(shù)據(jù)量。解析時根據(jù)其節(jié)點間的關(guān)系,生成對應(yīng)邏輯關(guān)系的html代碼。對于需要在模板解析過程中用異步數(shù)據(jù)來動態(tài)替換的內(nèi)容,使用占位符標識。占位符支持不同的異步數(shù)據(jù)類型, 如整型、字符串、集合、哈希表等;用戶也可以根據(jù)業(yè)務(wù)需要擴展現(xiàn)有占位符類別,以適應(yīng)自定義數(shù)據(jù)類型。在模板解析過程中,如果遇到占位符,則根據(jù)其唯一標識,從傳入的對象中提取相同名稱的對象屬性值進行內(nèi)容替換。此方法利用面向頁面編程的原理,替換工作始終貫穿模板解析的全過程。當模板解析完成后,對應(yīng)的占位符已替換為客戶端所要展現(xiàn)的最新內(nèi)容,數(shù)據(jù)處理流程同時結(jié)束。最后,將數(shù)據(jù)處理引擎生成的文本以字符串的形式返回客戶端,將其寫入頁面指定位置。盡管為說明目的公開了本發(fā)明的具體實施例和附圖,其目的在于幫助理解本發(fā)明的內(nèi)容并據(jù)以實施,但是本領(lǐng)域的技術(shù)人員可以理解在不脫離本發(fā)明及所附的權(quán)利要求的精神和范圍內(nèi),各種替換、變化和修改都是可能的。本發(fā)明不應(yīng)局限于本說明書最佳實施例和附圖所公開的內(nèi)容,本發(fā)明要求保護的范圍以權(quán)利要求書界定的范圍為準。
權(quán)利要求
1.一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,包括如下步驟1)客戶端向服務(wù)器端發(fā)送異步數(shù)據(jù)請求;2)服務(wù)器端根據(jù)請求封裝相應(yīng)的異步數(shù)據(jù);3)服務(wù)器端將經(jīng)封裝的異步數(shù)據(jù)和預(yù)定義的模板發(fā)送到數(shù)據(jù)處理引擎;4)數(shù)據(jù)處理引擎基于模板對異步數(shù)據(jù)進行處理,生成字符串返回客戶端;5)客戶端接收返回的字符串,將其寫入頁面指定位置。
2.根據(jù)權(quán)利要求1所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于所述服務(wù)器端將數(shù)據(jù)封裝為對象。
3.根據(jù)權(quán)利要求1所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于所述模板是具有固定格式和固定語法的文檔,其中占位符標識的內(nèi)容可被動態(tài)數(shù)據(jù)替換。
4.根據(jù)權(quán)利要求3所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于所述占位符是特殊字符開始和結(jié)尾的字符串,中間的內(nèi)容為占位符標識的內(nèi)容。
5.根據(jù)權(quán)利要求1所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于所述模板是由偽html語言生成,其布局格式采用XML格式規(guī)范。
6.根據(jù)權(quán)利要求3所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于所述第4)步驟解析異步數(shù)據(jù)的方法為;A、數(shù)據(jù)處理引擎讀取模板;B、將模板加載到內(nèi)存中;C、將加載到內(nèi)存中的模板解析為html代碼的文本,在解析過程中遇到模板的占位符時,將占位符標識的內(nèi)容替換為經(jīng)封裝的數(shù)據(jù);D、將解析生成的文本轉(zhuǎn)換為字符串。
7.根據(jù)權(quán)利要求6所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于解析模板的方法為根據(jù)模板內(nèi)各節(jié)點間的關(guān)系,生成對應(yīng)邏輯關(guān)系的html代碼。
8.根據(jù)權(quán)利要求6所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于封裝的數(shù)據(jù)為對象。
9.根據(jù)權(quán)利要求7所述的加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法,其特征在于根據(jù)占位符標識,從對象中提取與標識名稱相同的對象屬性替換占位符標識的內(nèi)容。
10.一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理系統(tǒng),其特征在于包括客戶端、服務(wù)器端和數(shù)據(jù)處理引擎,客戶端發(fā)送異步數(shù)據(jù)請求給服務(wù)器端,服務(wù)器端設(shè)有接收模塊和數(shù)據(jù)封裝模塊, 接收模塊接收請求,服務(wù)器端調(diào)用數(shù)據(jù)封裝模塊將相應(yīng)的異步數(shù)據(jù)封裝為對象,并將模板和對象發(fā)送給數(shù)據(jù)處理引擎,數(shù)據(jù)處理引擎基于模板處理異步數(shù)據(jù)并生成字符串發(fā)送給客戶端。
全文摘要
本發(fā)明公開了一種加速網(wǎng)頁交互的異步數(shù)據(jù)處理方法及系統(tǒng),其方法為1)客戶端向服務(wù)器端發(fā)送異步數(shù)據(jù)請求;2)服務(wù)器端根據(jù)請求封裝相應(yīng)的異步數(shù)據(jù);3)服務(wù)器端將經(jīng)封裝的異步數(shù)據(jù)和預(yù)定義的模板發(fā)送到數(shù)據(jù)處理引擎;4)數(shù)據(jù)處理引擎基于模板對異步數(shù)據(jù)進行處理,生成字符串返回客戶端;5)客戶端接收返回的字符串,將其寫入頁面指定位置。其系統(tǒng)包括客戶端、服務(wù)器端和數(shù)據(jù)處理引擎。本發(fā)明的方法和系統(tǒng)可用于任何web系統(tǒng)的表現(xiàn)層,徹底分離表現(xiàn)層和業(yè)務(wù)邏輯層,運用本發(fā)明的方法開發(fā)人員不用為返回值解析編寫代碼,提高開發(fā)效率高;而客戶端可將接收的數(shù)據(jù)直接寫入頁面,提高了顯示速度,增強了用戶體驗。
文檔編號H04L29/06GK102510377SQ20111033808
公開日2012年6月20日 申請日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者李艷紅 申請人:北京銳安科技有限公司