TW201541350A - 基於標籤的程式開發方法、頁面請求回應方法及其裝置 - Google Patents
基於標籤的程式開發方法、頁面請求回應方法及其裝置 Download PDFInfo
- Publication number
- TW201541350A TW201541350A TW103132974A TW103132974A TW201541350A TW 201541350 A TW201541350 A TW 201541350A TW 103132974 A TW103132974 A TW 103132974A TW 103132974 A TW103132974 A TW 103132974A TW 201541350 A TW201541350 A TW 201541350A
- Authority
- TW
- Taiwan
- Prior art keywords
- tag
- entity
- label
- page
- identifier
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明實施例公開了一種基於標籤的程式開發方法和裝置,以及基於標籤的頁面回應方法和裝置。基於標籤的程式開發方法包括:根據頁面對應的業務需求對業務功能進行分解,將分解得到的業務功能封裝為標籤實體,建立所述標籤實體與標籤標識之間的對應關係;以及,在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據所述標籤標識能夠獲取對應的標籤實體,運行所述標籤實體能夠得到標籤標識位置所需要的資料層資料。本發明實施例可以提高開發效率,降低維護成本。
Description
本發明涉及資訊技術領域,特別涉及一種基於標籤的程式開發方法、基於標籤的頁面請求回應方法及其裝置。
傳統的J2EE開發主要基於三層架構模型進行(在某些複雜的系統開發中,可能會將三層中的某個邏輯層拆分為多層,但其均屬於三層模型體系),即表現層UIL(User Interface Layer)、業務邏輯層BLL(Business Logic Layer)和資料訪問層DAL(Data Access Layer),其中:表現層用於向使用者提供展現介面(比如,使用者介面),通常採用JSP或者velocity、freemarker等範本引擎,最終以html頁面(包括JS、CSS等)的方式體現出來;業務邏輯層用於對資料業務邏輯進行處理,在該業務邏輯層的業務邏輯實體只對其相應的資料訪問層實體負責,通常,一個業務邏輯實體會根據業務邏輯需要多次調用資料訪問層;資料訪問層用於直接進行資料操作,比如進行資料的增添、刪除、修改、更新、查找等事務。基於
上述的三層架構模型的程式開發,通常分為前端開發和後端開發,前端開發實現表現層功能,後端開發實現業務邏輯層和資料層功能。在開發過程中,由於業務邏輯僅對其當前的頁面負責,使前端開發和後端開發需要協同工作,如果前端頁面進行了調整,通常後端的程式碼也需要進行相應調整。比如,當前端頁面需要增加資料時,就必須修改業務邏輯層代碼,以增加對資料訪問層的訪問,當前端頁面減少資料時,由於基於引用的冗餘數據會造成性能浪費,也需要修改業務邏輯層代碼,以減少對資料訪問層的調用。這種前端和後端開發的強耦合性,降低了開發速度。此外,基於這種開發方式產生的頁面響應過程運行效率也較低。
為解決上述技術問題,本發明實施例提供了一種基於標籤的程式開發方法及裝置,以及基於標籤的頁面請求回應方法及裝置,以降低前端開發和後端開發的強耦合性,提高開發速度,提高頁面回應效率。
本發明實施例的基於標籤的程式開發方法包括:根據頁面對應的業務需求對業務功能進行分解,將分解得到的業務功能封裝為標籤實體,建立所述標籤實體與標籤標識之間的對應關係;在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據所述標籤標識能夠獲取對應的標籤實體,運行所
述標籤實體能夠得到標籤標識位置所需要的資料層資料。
較佳地,在封裝為標籤實體後,將所述標籤實體註冊到標籤實體池,註冊到標籤實體池時建立標籤實體與標籤標識之間的對應關係。
與上述基於標籤的程式開發方法對應,本發明實施例還提供了一種基於標籤的程式開發裝置,該裝置包括:業務功能分解單元、標籤實體封裝單元、關係建立單元和標籤標識設置單元,其中:所述業務功能分解單元,用於根據頁面對應的業務需求對業務功能進行分解;所述標籤實體封裝單元,用於將分解得到的業務功能封裝為標籤實體;所述關係建立單元,用於建立所述標籤實體與標籤標識之間的對應關係;所述標籤標識設置單元,用於在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據所述標籤標識能夠獲取對應的標籤實體,運行所述標籤實體能夠得到標籤標識位置所需要的資料層資料。
較佳地,所述裝置還包括註冊單元,用於在封裝為標籤實體後,將所述標籤實體註冊到標籤實體池,註冊到標籤實體池時調用所述關係建立單元建立標籤實體與標籤標識之間的關係。
本發明還提供了一種基於標籤的頁面請求回應方法,該方法包括:
接收頁面請求;識別所述頁面請求指向的頁面中的標籤標識,所述標籤標識所在位置需要獲取資料層的資料;根據所述標籤標識獲取對應的標籤實體,運行所述標籤實體,將運行的結果填充到所述標籤標識所在位置,所述標籤實體由根據頁面對應的業務需求對業務功能進行分解,並對分解得到的業務功能進行封裝得到;發送渲染完成的頁面以回應所述頁面請求。
較佳地,在接收頁面請求之後,對頁面請求指向的頁面中標籤標識以外的部分進行渲染,在將運行的結果填充到所述標籤標識所在位置時對所述標籤標識所在位置進行渲染。
較佳地,根據所述標籤標識獲取對應的標籤實體具體包括:根據標籤標識查找標籤標識與標籤實體對應表,從標籤實體池中獲取標籤標識對應的標籤實體,所述標籤標識與標籤實體對應表為將標籤實體註冊到標籤實體池時所建立。
較佳地,所述識別所述頁面請求指向的頁面中的標籤標識具體包括:解析所述頁面請求指向的頁面的各個頁面元素,形成DOM樹;從所述DOM樹中識別出標籤標識。
本發明實施例還提供了一種基於標籤的頁面請求回應
裝置。該裝置包括:請求接收單元、標籤標識識別單元、標籤實體獲取單元、標籤實體運行單元、結果填充單元和頁面發送單元,其中:所述請求接收單元,用於接收頁面請求;所述標籤標識識別單元,用於識別所述頁面請求指向的頁面中的標籤標識,所述標籤標識所在位置需要獲取資料層的資料;所述標籤實體獲取單元,用於根據所述標籤標識獲取對應的標籤實體,所述標籤實體由根據頁面對應的業務需求對業務功能進行分解,並對分解得到的業務功能進行封裝得到;所述標籤實體運行單元,用於運行所述標籤實體;所述結果填充單元,用於將運行的結果填充到所述標籤標識所在位置;所述頁面發送單元,用於發送渲染完成的頁面以回應所述頁面請求。
較佳地,所述裝置包括渲染單元,用於在接收頁面請求之後,對頁面請求指向的頁面中標籤標識以外的部分進行渲染,在將運行的結果填充到所述標籤標識所在位置時對所述標籤標識所在位置進行渲染。
較佳地,所述標籤標識獲取單元包括查找子單元和獲取子單元,所述查找子單元,用於據標籤標識查找標籤標識與標籤實體對應表,所述標籤標識與標籤實體對應表為將標籤實體註冊到標籤實體池時所建立;所述獲取子單
元,用於從標籤實體池中獲取標籤標識對應的標籤實體。
較佳地,所述標籤標識識別單元包括分解子單元和識別子單元,所述解析子單元,用於解析所述頁面請求指向的頁面的各個頁面元素,形成DOM樹;所述識別子單元,用於從所述DOM樹中識別出標籤標識。
本發明實施例一方面將業務邏輯實體進行分解封裝為標籤實體,建立標籤實體與標籤標識之間的關係,另一方面在頁面中設置標籤標識,這種開發方式將現有的三層模型中的業務邏輯層公有化,開發出公共業務邏輯,將公共業務邏輯封裝為標籤實體,使前端頁面在進行頁面渲染時可直接調用相應的標籤實體獲取到相應的資料。這種基於標籤的程式開發方式改變了原來的開發分層結構,從而使得前端開發與後端開發之間的強耦合性得到降低,有利於提高開發的速度。而且,由於去掉了原先的僅僅面向當前頁面的業務邏輯層,減少了重複業務導致的業務代碼冗餘,代碼數量精簡化,維護成本也得到降低。此外,由於前端頁面渲染的方式由調用業務邏輯層改變為調用相應的標籤實體,而標籤實體可在不同的相同業務類型中共用,從而提高了代碼的複用率。
U31‧‧‧業務功能分解單元
U32‧‧‧標籤實體封裝單元
U33‧‧‧關係建立單元
U34‧‧‧標籤標識設置單元
U51‧‧‧請求接收單元
U52‧‧‧標籤標識識別單元
U521‧‧‧解析子單元
U522‧‧‧識別子單元
U53‧‧‧標籤實體獲取單元
U531‧‧‧查找子單元
U532‧‧‧獲取子單元
U54‧‧‧標籤實體運行單元
U55‧‧‧結果填充單元
U56‧‧‧頁面發送單元
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖
式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖式獲得其他的圖式。
圖1為本發明的基於標籤的程式開發方法的實施例的流程圖;圖2(a)為按照現有技術的做法進行程式開發的設計流程圖;圖2(b)為根據本發明實施例的方法進行程式開發的設計流程圖;圖3為本發明的基於標籤的程式開發裝置的實施例的組成方塊圖;圖4為本發明的基於標籤的頁面請求回應方法實施例的流程圖;圖5為本發明的基於標籤的頁面請求回應裝置的實施例的組成方塊圖。
為了使本技術領域的人員更好地理解本發明中的技術方案,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當
屬於本發明保護的範圍。
參見圖1,該圖示出了本發明的基於標籤的程式開發方法的一個實施例的流程,該流程包括:
步驟S11:根據頁面對應的業務需求對業務功能進行分解,將分解得到的業務功能封裝為標籤實體,建立所述標籤實體與標籤標識之間的對應關係;該步驟中的“頁面對應的業務需求”是多種多樣的,但無論何種業務需求,均可透過業務功能的方式來實現。“業務功能”可以在不同層面上理解,既可以將一個業務需求作為整體看成一個業務功能,也可以將為完成一個業務需求而按照某種標準對其進行細化得到的多個基本業務功能單位的組合看成一個業務功能。在前者情況下,業務功能相當於現有技術中的業務邏輯實體,其強調了頁面的某個業務需求與業務邏輯層中的某個業務邏輯實體之間的唯一對應性,在後者情況下,強調了業務功能的可分性,本步驟對這樣的業務功能進行分解,使得整體的業務功能被劃分為一個一個的基本功能單位,然後對這些基本功能單位進行封裝。當然,這裡的基本功能單位可以考慮各種實際因素來確定其深度。比如,考慮代碼再使用性的大小,即對業務功能的分解要盡可能地提高代碼的可重用率,使劃分出來的基本功能單位成為最小細微性的原子單位。
步驟S12:在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據所述標籤標識能夠獲取對應的標籤實
體,運行所述標籤實體能夠得到標籤標識位置所需要的資料層資料。
透過上述兩個步驟實際上將程式開發分為兩個方面:一是基於後臺的開發。該開發過程對業務功能進行分解,劃分出業務功能的基本單位,然後將這些分解的單元封裝為標籤實體,並為這些標籤實體建立標籤實體與標籤標識之間的對應的關係。二是基於前端頁面的程式開發。該開發過程僅需要在頁面中需要獲取資料層資料的位置設置標籤標識。由於後臺開發是基於業務需要對業務功能的基本單元進行的,可以不再如現有技術那樣將業務邏輯實體的開發與某個前端頁面的開發完全對應起來,而是割斷了業務邏輯層(資料層)與前端頁面之間的關聯性,從而後臺開發可以獨立的進行。同樣的道理,對於前端頁面而言,僅需要在前端頁面中嵌入標籤標識,而不再如現有技術那樣將前端頁面與某個邏輯實體關聯起來,使得前端頁面的開發不必依賴後臺開發。由此可見,透過本發明實施例的方式可以將後臺開發和前端開發“解耦”,使後臺開發的人員的開發進度與前端頁面開發的進度沒有牽制性,從而提高了整體的開發速度。
在現有技術中,前端頁面與業務邏輯是相互關聯的,即業務邏輯只對其當前對應的頁面的業務需求而不能對其他頁面的業務需求負責,當前頁面也僅能調用其預先設定好的業務邏輯實體而不能是其他業務邏輯實體,也就是說,業務邏輯實體和前端頁面之間各自之于對方均是私有
化的。但是,在實際的網站業務中,許多資料是多個頁面複用的,按照現有技術的處理方式,需要在每個頁面對應的各自業務邏輯實體中嵌套相同的程式碼,進行重複的業務邏輯計算,既耗費時間也導致代碼冗餘。本實施例根據頁面對應的業務需求對業務功能進行分解,分解後的功能被封裝為標籤實體,如果存在需要相同資料的情形,不同的前端頁面可以調用相同的標籤實體進行運算處理,得到需要的資料,也就是說,對於一個標籤實體而言,可以被不同的前端頁面共用,實現了公有化,這樣在進行程式開發時,僅需要在前端頁面中置入相同的頁面標籤即可,而不用開發兩次相同的程式碼,從而節約了代碼量,降低了維護成本。舉例說明如下:假設有四個前端頁面A、B、C、D,頁面A、頁面B、頁面C均需要資料層中資料實體DAL2內的資料。參見圖2(a),該圖示出了按照現有技術的做法進行程式開發的設計流程。在程式開發過程,頁面A、B、C均分別唯一地與其業務邏輯實體BLL1、BLL2、BLL3關聯,由於頁面A、B、C都需要獲取DAL2內的資料,因此,在BLL1業務邏輯實體中具有從DAL2中獲取其需要資料的程式碼,同樣地,在BLL2、BLL3中也具有相應的程式碼,也就是說,在N個不同頁面中獲取相同的資料,需要編寫N次相同的程式碼,使得程式碼的複用率較低,增加了維護成本。
參見圖2(b),該圖示出了按照本發明實施例的方
法進行程式開發的設計流程。在程式開發過程中,頁面A、B、C不再唯一地與某個業務邏輯實體BLL1、BLL2、BLL3關聯,而僅需要先確定在頁面中需要資料層中的資料的標籤標識,由於頁面A、B、C需要獲取資料層中相同的資料,因此,在頁面中具有相同的標籤標識(如圖中所示的tag2,注:在該圖中未示出其他頁面與標籤實體之間的調用關係以及其他標籤實體對資料層的訪問關係),確定好標籤標識後即根據標籤標識調用相應的標籤實體,運行相同的標籤實體即得到需要的資料。由此可以看出,整個程式開發中可以僅具有一個標籤實體,從而節約了程式碼,降低了維護成本。
針對上述實施例還需要說明的是,雖然該實施例涉及到一種“方法”,包括S11、S12兩個步驟,在前述描述中將S11步驟描述在S12步驟之前,但是,這僅僅是描寫順序上的安排,並不代表在實際應用過程中必須先執行步驟S11,再執行步驟S12。實際上,由於步驟S11涉及後臺開發,S12涉及前端頁面的開發,而且如前述內容所示,這兩個步驟具有低耦合性的特點,因此,在實際應用過程中完全可以是步驟S12位於步驟S11之前,或者兩者同時進行。
上述實施例中提及在後臺開發過程中可以根據頁面對應的業務需求對業務功能分解後封裝得到標籤實體,以便前端頁面在需要時獲取這些標籤實體得到需要的資料。在實際應用過程中,封裝標籤實體後,還可以將這些標籤實
體註冊到一個專門的標籤實體池之中,這樣,在前端頁面需要使用標籤實體時,則可以根據前端頁面中標籤標識到該標籤實體池中獲取相應的標籤實體,並運行該標籤實體得到需要的資料。也就是說,不同的前端頁面的多個標籤標識,或者同一前端頁面的多個標籤標識,無論這些標籤標識相同還是不同,均會依據標籤標識到標籤實體池中去尋找相應的標籤實體。由此,標籤實體池實際上形成了一個新的邏輯層,該邏輯層對於其上層的表現層而言,是“公有化”和“透明化”的,公有化體現在表現層的前端頁面無論什麼類型均可根據需要調用相應的標籤實體,透明化體現在標籤實體透過訪問資料層獲取表現層需要的資料的過程對於表現層不可見。
在這種公有化和透明化機制之下,對後續調整業務極為便利:(1)當需要在前端頁面中增加新的資料實現新業務時,可能出現兩種情形:一是現有標籤實體池中已具有獲取該新資料的標籤實體,這種情形下可僅僅在前端頁面中設置相應的標籤即可實現該新的業務,二是現有標籤實體池中沒有實現該新業務的對應標籤實體,這種情形下可在標籤實體池中獨立地註冊新的標籤實體實現該新的業務,而且,在這種情況下,新標籤實體的註冊並不會影響到其他標籤實體和前端頁面中的標籤設置。而對於現有技術而言,當需要在前端頁面中增加了新的資料實現新業務,該前端頁面對應的業務邏輯必然發生變化,進而必須修改業務邏輯層的相應代碼,以增加對資料訪問層的訪
問。(2)當需要在前端頁面中減少有關資料實現新業務時,減少有關資料意味著前端頁面不再需要資料,那麼前端頁面中則不需要設置標籤標識,即僅需要在前端頁面中去掉相應的標籤標識即可,由於前端頁面中沒有相應的標籤標識,那麼該標籤標識對應的標籤實體將不再被調用,進而不會被運行,不會導致資源浪費。而對於現有技術而言,針對這種前端頁面發生減少資料的變化,雖然可以不用修改(比如,刪除)幕後程式代碼,但是,如果不進行修改(刪除),由於前端頁面與業務邏輯實體對應,前端頁面不變化,對應的業務邏輯實體也不變化,每次前端頁面的業務邏輯實體在運行時,相應的代碼同樣會被編譯執行,然而,這部分程式的執行將不會產生任何有意義結果,反倒浪費了系統資源,影響性能的提升。
總之,上述這種由於基於標籤的程式開發過程中具有的公有化和透明化的特點,可以不斷地且容易地擴展新的業務。進一步地,如果透過長時間的累積,標籤實體池內能夠實現基本功能的標籤實體將越來越多,繼續產生新業務但不需要添加新的標籤實體的可能性也將越來越大,將出現即便搭建新的頁面,僅僅開發前端頁面本身即可,而不再需要後臺開發,從而極大提高了開發效率。
為了更直觀地理解本發明的標籤機制,下面示例性地描述標籤實體的創建和註冊過程。標籤實體是可運行的功能實體,在實際應用過程中,可以採用XML來書寫標籤實體,形成XML檔。比如,一個示例性的標籤實體代碼
如下:
在創建了標籤實體檔後,可以採用XML檔的解析程式來進行XML檔的解析,比如可以為DOM和DOM4j,將標籤實體檔解析成標籤實體後,將其封裝成一個帶有KEY(用於標識標籤標識)和VALUE(用於表示標籤實體)的對應表,這個對應關係表即是標籤標識與標籤實體之間的對應關係表。在上例中,標籤標識為tags.member.memberId,標籤實體為$this.memberInfo.memberId。建立對應關係表後即完成標籤實體的註冊。
上述實施例詳細描述了基於標籤的程式開發方法,與該方法相適應地,本發明還提供了基於標籤的程式開發裝置的實施例。參見圖3,該圖示出了基於標籤的程式開發裝置的一個實施例的組成結構。該裝置包括業務功能分解單元U31、標籤實體封裝單元U32、關係建立單元U33和標籤標識設置單元U34,其中:業務功能分解單元U31,用於根據頁面對應的業務需求對業務功能進行分解;標籤實體封裝單元U32,用於將分解得到的業務功能
封裝為標籤實體;關係建立單元U33,用於建立所述標籤實體與標籤標識之間的關係;標籤標識設置單元U34,用於在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據所述標籤標識能夠獲取對應的標籤實體,運行所述標籤實體能夠得到標籤標識位置所需要的資料層資料。
上述裝置實施例儘管包括多個功能單元,但這些功能單元可以劃分為兩大類別,一個是與程式後臺開關相關的類別,包括業務邏輯分解單元、標籤實體封裝單元和關係建立單元,一個是與前端頁面開發相關的類別,包括標籤標識設置單元,這兩個類別的功能單元的共同作用,可實現本發明的基於標籤的程式開發,提高開發速度。需要說明的是,儘管基於標籤的程式開發裝置將按照前述的分類方式劃分的兩個大類位於一個裝置之中,但是並不意味著它們是不可分割的整體,實際上,由於上述的兩大類功能單元一個針對後臺開發,一個針對前端頁面開發,具有低耦合性,它們完全可以根據需要位於不同的地方,以整體“系統”的形式存在。
上述內容描述了基於標籤的程式開發方法和裝置,在實施這種開發方法和裝置的基礎之上,可以形成一種基於標籤的頁面請求回應方法。該方法在使用者發起頁面請求的情況下,向使用者返回請求的頁面。參見圖4,該圖示出了本發明提供的一種基於標籤的頁面請求回應方法的實
施例,該方法包括:
S41:接收頁面請求;頁面請求是頁面訪問者向伺服器發送的請求,該請求的目的是希望伺服器能夠根據請求中所標識的位址將對應的頁面返回給頁面訪問者。但是,頁面並非預先已經完整地存儲在伺服器中,而是根據頁面請求進行渲染得到的。對頁面進行渲染主要可以包括兩個類別:一是一般性的文字描述部分的渲染,二是需要進行運算處理的部分進行渲染,前者往往針對每個訪問請求均是相同的,後者則可能在每次訪問過程中發生變化,即需要訪問的時刻對應的資料層的資料。比如,一個頁面請求中需要渲染這樣的頁面“Hello!****(姓名),歡迎光臨本店,今天我們的特價款是****(衣服名)”,在這個頁面中兩處帶星號的部分是變數,針對不同的訪問者,其姓名資料不同,針對不同的訪問日期,特價款衣服名不同,對於除此之外的文字部分則對於每位元訪問者、每個時刻的訪問均是相同,對變數資料的渲染則需要進行資料處理,對於文字部分的渲染則按照常規選擇進行即可。
S42:識別所述頁面請求指向的頁面中的標籤標識,所述標籤標識所在位置需要獲取資料層的資料;由於頁面之中可能設置有,也可能沒有設置標籤標識,當接收到頁面請求後,便會針對頁面請求所指向的頁面進行分析,從中找出是否存在標籤標識,如前所述,有標籤標識和沒有標籤標識對應的處理方式不同。本發明在
頁面中設置的標籤標識代表一個變數,即需要在該處填充需要的資料。如前例所示,在“****(姓名)”處設置有一個標籤標識,在“****(衣服名)”處設置有一個標籤標識,兩個標籤標識處均需要獲取資料層中的相應資料,具體而言,可以是從頁面訪問者預先註冊的姓名庫中獲取“姓名”資料,從本店設置的特價款衣服庫中獲取“衣服名”資料。
S43:根據所述標籤標識獲取對應的標籤實體,運行所述標籤實體,將運行的結果填充到所述標籤標識所在位置,所述標籤實體由根據頁面對應的業務需求對業務功能進行分解,並對分解得到的業務功能進行封裝得到;從頁面請求指向的頁面中解析出標籤標識後,即可根據標籤標識獲取到對應的標籤實體,然後運行該標籤實體,得到需要的資料。運行標籤實體的過程即是透過標籤中的程式指令實現從資料層中獲取資料的過程。就前例而言,根據姓名處的標籤標識可以獲取到能夠得到姓名資料的標籤實體,運行該標籤實體,該標籤實體即從姓名資料庫中查找“姓名”,並返回“姓名”,根據衣服名處的標籤標識可以獲取到能夠得到衣服名資料的標籤實體,運行該標籤實體,該標籤實體即從衣服名資料庫中查找“衣服名”,並返回“衣服名”。
S44:發送渲染完成的頁面以回應所述頁面請求。
透過前述步驟可以獲得請求頁面需要獲得的相應資料,在此基礎之上完成對整個頁面的渲染,渲染完成後即
可將該頁面發送給頁面請求者,實現對頁面請求者頁面請求的回應。
儘管上述實施例可以實現本發明的發明目的,但在實際應用過程中,基於不同的實際情況可以採取不同的具體措施實現上述方法的各個步驟。比如,對於S42步驟,為了識別出頁面中的標籤標識,可以有多種方法,本發明較佳採取這樣的方式來實現,即先將頁面請求指向的頁面各個頁面元素進行分解,形成一個抽象的語法樹,比如DOM樹,然後基於預先對標籤標識的定義,從DOM樹攔截標籤標識,從而識別出標籤標識。對於S43步驟,為了根據標籤標識獲取對應的標籤實體,可以根據在標籤實體註冊時間離的標籤標識與標籤實體之間的對應關係表查找到標籤實體,然後將標籤實體從標籤實體池中調取出來。
對於步驟S44而言,儘管明確該步驟需要將渲染完成的頁面發送出去以回應頁面請求,但並未限定渲染工作具體完成的時間。如前所述,在訪問者請求訪問的頁面中可能存在兩種類別:一種是一般的文字性內容,另一種是需要獲取資料的內容,對於前者,其渲染的過程可以在接收到請求到返回渲染完成的頁面的時間段內的任何時候,對於後者,則需要在透過運行標籤實體獲得相應的資料後完成渲染,但是,值得說明是,這兩類渲染在本發明的實施例中既可以獨立進行,也可以關聯性的進行,具體可以表現為三種典型方式:一是在頁面上需要獲取的資料獲取完成後才對兩類內容同時進行渲染;二是先對第一類內容進
行渲染,當渲染過程中識別到標籤標識時,根據該標籤標識獲取並運行標籤實體得到需要的資料,然後對其進行渲染,再接著對第一類內容進行渲染,以此迴圈直至整個頁面被渲染完成;三是頁面上兩類內容的渲染彼此互不干擾,並行地進行渲染。而在現有技術中,由於前端頁面與某個業務邏輯實體相關聯,只能等到業務邏輯處理完成後才能進行整體頁面的渲染,即必須先獲取資料再進行渲染,而在本發明中,由於頁面與業務邏輯實體之間的關係變化為頁面中的標籤與標籤實體之間的關係,後者具有極大的靈活性,因此,可以根據實際需要選擇不同的渲染方式,通常而言,第二、三種渲染方式較好,它可以一開始即對請求頁面進行渲染,需要時才進行標籤內容的渲染,提高了渲染效率。
還需要說明的是,本發明實施例在實施過程中可以以JAVA程式設計語言作為開發語言,部署在linux系統環境,也可以以其他語言或環境為開發語言和部署環境,不受語言和系統環境的限制。
與上述基於標籤的頁面請求回應方法對應,本發明還提供了一種基於標籤的頁面請求回應裝置的實施例。參見圖5,該圖示出了基於標籤的頁面請求回應裝置實施例的組成結構。該裝置包括:請求接收單元U51、標籤標識識別單元U52、標籤實體獲取單元U53、標籤實體運行單元U54、結果填充單元U55和頁面發送單元U56,其中:請求接收單元U51,用於接收頁面請求;
標籤標識識別單元U52,用於識別所述頁面請求指向的頁面中的標籤標識,所述標籤標識所在位置需要獲取資料層的資料;標籤實體獲取單元U53,用於根據所述標籤標識獲取對應的標籤實體,所述標籤實體由根據頁面對應的業務需求對業務功能進行分解,並對分解得到的業務功能進行封裝得到;標籤實體運行單元U54,用於運行所述標籤實體;結果填充單元U55,用於將運行的結果填充到所述標籤標識所在位置;頁面發送單元U56,用於發送渲染完成的頁面以回應所述頁面請求。
該裝置實施例能夠取得與前述的方法實施例相同或類似的技術效果,為避免重複,這裡不再贅述。
在上述裝置實施例中,可以包括渲染單元,用於在接收頁面請求之後,對頁面請求指向的頁面中標籤標識以外的部分進行渲染,在將運行的結果填充到所述標籤標識所在位置時對所述標籤標識所在位置進行渲染。
上述裝置實施例基於不同的實際應用,各個組成部分可以具有不同的具體組成結構。比如,對於標籤實體獲取單元U53而言,其可以進一步包括查找子單元U531和獲取子單元U532,其中:查找子單元U531,用於據標籤標識查找標籤標識與標籤實體對應表,所述標籤標識與標籤實體對應表為將標籤實體註冊到標籤實體池時所建立;所
述獲取子單元U532,用於從標籤實體池中獲取標籤標識對應的標籤實體。同理,對於標籤標識識別單元U52而言,可以進一步包括解析子單元U521和識別子單元U522,其中:所述解析子單元U521,用於解析所述頁面請求指向的頁面的各個頁面元素,形成DOM樹;所述識別子單元U522,用於從所述DOM樹中識別出標籤標識。
需要說明的是:為了敘述的簡便,本說明書的上述實施例以及實施例的各種變形實現方式重點說明的都是與其他實施例或變形方式的不同之處,各個情形之間相同相似的部分互相參見即可。尤其,對於裝置實施例的幾個改進方式而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例的各單元可以是或者也可以不是物理上分開的,既可以位於一個地方,或者也可以分佈到多個網路環境下。在實際應用過程中,可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的,本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上所述僅是本發明的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。
Claims (12)
- 一種基於標籤的程式開發方法,其特徵在於,包括:根據頁面對應的業務需求對業務功能進行分解,將分解得到的業務功能封裝為標籤實體,建立該標籤實體與標籤標識之間的對應關係;以及,在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據該標籤標識能夠獲取對應的標籤實體,運行該標籤實體能夠得到標籤標識位置所需要的資料層資料。
- 根據請求項1所述的方法,其中,在封裝為標籤實體後,將該標籤實體註冊到標籤實體池,註冊到標籤實體池時建立標籤實體與標籤標識之間的對應關係。
- 一種基於標籤的程式開發裝置,其特徵在於,該裝置包括:業務功能分解單元、標籤實體封裝單元、關係建立單元和標籤標識設置單元,其中:該業務功能分解單元,用於根據頁面對應的業務需求對業務功能進行分解;該標籤實體封裝單元,用於將分解得到的業務功能封裝為標籤實體;該關係建立單元,用於建立該標籤實體與標籤標識之間的對應關係;該標籤標識設置單元,用於在頁面中需要獲取資料層資料的位置設置標籤標識,以便根據該標籤標識能夠獲取對應的標籤實體,運行該標籤實體能夠得到標籤標識位置 所需要的資料層資料。
- 根據請求項3所述的裝置,其中,該裝置還包括註冊單元,用於在封裝為標籤實體後,將該標籤實體註冊到標籤實體池,註冊到標籤實體池時調用該關係建立單元建立標籤實體與標籤標識之間的對應關係。
- 一種基於標籤的頁面請求回應方法,其特徵在於,該方法包括:接收頁面請求;識別該頁面請求指向的頁面中的標籤標識,該標籤標識所在位置需要獲取資料層的資料;根據該標籤標識獲取對應的標籤實體,運行該標籤實體,將運行的結果填充到該標籤標識所在位置,該標籤實體由根據頁面對應的業務需求對業務功能進行分解,並對分解得到的業務功能進行封裝得到;發送渲染完成的頁面以回應該頁面請求。
- 根據請求項5所述的方法,其中,在接收頁面請求之後,對頁面請求指向的頁面中標籤標識以外的部分進行渲染,在將運行的結果填充到該標籤標識所在位置時對該標籤標識所在位置進行渲染。
- 根據請求項5所述的方法,其中,根據該標籤標識獲取對應的標籤實體具體包括:根據標籤標識查找標籤標識與標籤實體對應表,從標籤實體池中獲取標籤標識對應的標籤實體,該標籤標識與標籤實體對應表為將標籤實體註冊到標籤實體池時所建 立。
- 根據請求項5所述的方法,其中,該識別該頁面請求指向的頁面中的標籤標識具體包括:解析該頁面請求指向的頁面的各個頁面元素,形成DOM樹;從該DOM樹中識別出標籤標識。
- 一種基於標籤的頁面請求回應裝置,其特徵在於,該裝置包括:請求接收單元、標籤標識識別單元、標籤實體獲取單元、標籤實體運行單元、結果填充單元和頁面發送單元,其中:該請求接收單元,用於接收頁面請求;該標籤標識識別單元,用於識別該頁面請求指向的頁面中的標籤標識,該標籤標識所在位置需要獲取資料層的資料;該標籤實體獲取單元,用於根據該標籤標識獲取對應的標籤實體,該標籤實體由根據頁面對應的業務需求對業務功能進行分解,並對分解得到的業務功能進行封裝得到;該標籤實體運行單元,用於運行該標籤實體;該結果填充單元,用於將運行的結果填充到該標籤標識所在位置;該頁面發送單元,用於發送渲染完成的頁面以回應該頁面請求。
- 根據請求項9所述的裝置,其中,該裝置包括渲 染單元,用於在接收頁面請求之後,對頁面請求指向的頁面中標籤標識以外的部分進行渲染,在將運行的結果填充到該標籤標識所在位置時對該標籤標識所在位置進行渲染。
- 根據請求項9所述的裝置,其中,該標籤標識獲取單元包括查找子單元和獲取子單元,該查找子單元,用於據標籤標識查找標籤標識與標籤實體對應表,該標籤標識與標籤實體對應表為將標籤實體註冊到標籤實體池時所建立;該獲取子單元,用於從標籤實體池中獲取標籤標識對應的標籤實體。
- 根據請求項9所述的裝置,其中,該標籤標識識別單元包括解析子單元和識別子單元,其中:該解析子單元,用於解析該頁面請求指向的頁面的各個頁面元素,形成DOM樹;該識別子單元,用於從該DOM樹中識別出標籤標識。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201410160709.8 | 2014-04-21 | ||
CN201410160709.8A CN105094754B (zh) | 2014-04-21 | 2014-04-21 | 基于标签的程序开发方法、页面请求响应方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201541350A true TW201541350A (zh) | 2015-11-01 |
TWI671681B TWI671681B (zh) | 2019-09-11 |
Family
ID=54322211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103132974A TWI671681B (zh) | 2014-04-21 | 2014-09-24 | 基於標籤的程式開發方法、頁面請求回應方法及其裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150302110A1 (zh) |
CN (1) | CN105094754B (zh) |
TW (1) | TWI671681B (zh) |
WO (1) | WO2015164108A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293808B (zh) * | 2016-07-26 | 2019-10-29 | 北京北森云计算股份有限公司 | 多语言云编译实现系统功能动态拦截扩展的方法及系统 |
CN108304190A (zh) * | 2016-09-22 | 2018-07-20 | 百度在线网络技术(北京)有限公司 | 网络店铺生成方法及装置 |
US11516300B2 (en) * | 2016-11-30 | 2022-11-29 | Hughes Network Systems, Llc | System, method and program for localizing web page interfaces via asynchronous data and automatic binding |
US10268381B1 (en) * | 2017-10-31 | 2019-04-23 | EMC IP Holding Company LLC | Tagging write requests to avoid data-log bypass and promote inline deduplication during copies |
CN109981322B (zh) * | 2017-12-28 | 2022-04-26 | 北京京东尚科信息技术有限公司 | 基于标签的云资源管理的方法和装置 |
CN108664239B (zh) * | 2018-05-21 | 2021-08-03 | 中信百信银行股份有限公司 | 一种基于微服务的跨技术栈web前端开发系统及方法 |
KR102638377B1 (ko) * | 2018-08-14 | 2024-02-20 | 주식회사 케이티 | 가상 현실 컨텐츠를 제공하는 서버, 방법 및 사용자 단말 |
CN109271157B (zh) * | 2018-09-07 | 2021-09-07 | 深圳市东微智能科技股份有限公司 | 软件开发方法、设备及计算机可读存储介质 |
CN109582534B (zh) * | 2018-11-01 | 2022-05-17 | 创新先进技术有限公司 | 系统的操作入口的确定方法、装置和服务器 |
CN110517079B (zh) * | 2019-08-23 | 2022-11-08 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN111008014A (zh) * | 2019-12-26 | 2020-04-14 | 珠海金山网络游戏科技有限公司 | 一种红点的条件处理方法和装置 |
CN111459503B (zh) * | 2020-03-30 | 2023-09-29 | 北京顺达同行科技有限公司 | web前端项目部署方法、装置、服务器及存储介质 |
CN113761415A (zh) * | 2020-11-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种页面展示方法和装置 |
CN113741900B (zh) * | 2021-08-31 | 2024-03-19 | 广州数励科技有限公司 | 一种前端页面应用的开发方法、装置及相关设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826594B1 (en) * | 2000-07-15 | 2004-11-30 | Commission Junction | Method and system for remote content management of a designated portion of a web page |
US7089330B1 (en) * | 2000-09-28 | 2006-08-08 | I2 Technologies Us, Inc. | System and method for transforming custom content generation tags associated with web pages |
US7000185B1 (en) * | 2001-04-30 | 2006-02-14 | General Electric Capital Corporation | Method and system for customization of a program |
US7458019B2 (en) * | 2004-01-20 | 2008-11-25 | International Business Machines Corporation | System and method for creating and rendering client-side user interfaces via custom tags |
US20090241092A1 (en) * | 2008-03-24 | 2009-09-24 | Nokia Corporation | Apparatus, methods, and computer program products providing improved application development for electronic devices |
CN101645013A (zh) * | 2009-09-07 | 2010-02-10 | 中兴通讯股份有限公司 | 综合业务管理平台插件式业务管理系统及方法 |
TWI435262B (zh) * | 2011-04-22 | 2014-04-21 | Wistron Corp | 使用者介面之呈現及運作方法、程式產品及系統 |
CN102306163A (zh) * | 2011-08-01 | 2012-01-04 | 烟台杰瑞网络商贸有限公司 | 一种基于b2b平台的动态集成技术 |
CN103677789B (zh) * | 2012-09-25 | 2017-11-24 | 深圳市金正方科技股份有限公司 | 基于grid组件的列表数据展现方法及系统 |
CN103500098B (zh) * | 2013-09-29 | 2017-03-29 | 迈普通信技术股份有限公司 | 封装jsp页面下标签组件的方法和系统 |
-
2014
- 2014-04-21 CN CN201410160709.8A patent/CN105094754B/zh active Active
- 2014-09-24 TW TW103132974A patent/TWI671681B/zh active
-
2015
- 2015-04-10 US US14/683,526 patent/US20150302110A1/en not_active Abandoned
- 2015-04-13 WO PCT/US2015/025515 patent/WO2015164108A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20150302110A1 (en) | 2015-10-22 |
TWI671681B (zh) | 2019-09-11 |
WO2015164108A1 (en) | 2015-10-29 |
CN105094754A (zh) | 2015-11-25 |
CN105094754B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI671681B (zh) | 基於標籤的程式開發方法、頁面請求回應方法及其裝置 | |
Brown et al. | Implementation patterns for microservices architectures | |
WO2018000998A1 (zh) | 界面生成方法、装置和系统 | |
CN103631596B (zh) | 业务对象数据录入及更新规则的配置装置和配置方法 | |
KR20130126610A (ko) | 스타일 시트를 위한 식별자 | |
CN109460220A (zh) | 报文预定义代码生成方法、装置、电子设备和存储介质 | |
CN101493825A (zh) | 一种gis中间件配置管理方法 | |
CN105743955A (zh) | 一种扩展JavaScript对象方法 | |
CN115934855A (zh) | 一种全链路字段级血缘解析方法、系统、设备及存储介质 | |
CN102902546A (zh) | 一种通用报表列表组件 | |
CN102426612A (zh) | 条件对象查询方法及系统 | |
CN111240644B (zh) | 一种基于vueJS开发web管理平台架构的方法 | |
CN109614084A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
CN115168166A (zh) | 业务数据变更的记录方法、装置、设备及存储介质 | |
CN109151095A (zh) | 用于网络通信的方法和装置 | |
CN104182228A (zh) | 一种创建网络应用的方法和系统 | |
CN107133036A (zh) | 一种模块的管理方法及装置 | |
CN110443880A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN113918669A (zh) | 一种自然资源国土空间规划一张图系统的实现装置及方法 | |
CN104391845A (zh) | 一种生成数据库脚本的方法及装置 | |
CN106570017A (zh) | 一种数据缓存方法及系统 | |
TWI579782B (zh) | 一種服務管理的方法 | |
CN109710604A (zh) | 数据处理方法、装置、系统、计算机可读存储介质 | |
US20220236968A1 (en) | Optimized data resolution for web components | |
CN111581578B (zh) | 接口请求处理方法和装置 |