本申請涉及客戶端數(shù)據(jù)顯示技術(shù),尤其涉及界面展示數(shù)據(jù)的方法和裝置。
背景技術(shù):
應(yīng)用程序客戶端的界面框架通常是采用原生代碼編寫的,界面框架根據(jù)業(yè)務(wù)需求預(yù)先指定后是固定不變的,每個界面的框架和樣式是與所對應(yīng)的業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)相適應(yīng)的。如果需要根據(jù)業(yè)務(wù)變更改變界面框架,或者為了增加新業(yè)務(wù)數(shù)據(jù)而增加新的界面框架,通常需要重新編譯應(yīng)用程序客戶端,并重新下載安裝應(yīng)用程序客戶端,如果用戶不更新客戶端,則變更或增加的業(yè)務(wù)數(shù)據(jù)將無法呈現(xiàn)給用戶。
技術(shù)實(shí)現(xiàn)要素:
本申請?zhí)峁┙缑嬲故緮?shù)據(jù)的方法和裝置,能夠動態(tài)更新客戶端的界面。
根據(jù)本申請實(shí)施例的第一方面,提供一種界面展示數(shù)據(jù)的方法,運(yùn)行于客戶端,該方法包括步驟:
將服務(wù)端下發(fā)的界面模板的結(jié)構(gòu)化數(shù)據(jù)解析成虛擬視圖節(jié)點(diǎn),所述界面模板的結(jié)構(gòu)化數(shù)據(jù)由服務(wù)端對通用協(xié)議標(biāo)記語言編寫的界面模板數(shù)據(jù)解析后生成,所述界面模板數(shù)據(jù)包括用于描述控件的通用標(biāo)簽;
將業(yè)務(wù)數(shù)據(jù)和所述虛擬視圖節(jié)點(diǎn)綁定;
根據(jù)綁定業(yè)務(wù)數(shù)據(jù)后的虛擬視圖節(jié)點(diǎn)計(jì)算所述控件的位置信息;
根據(jù)所述控件的位置信息渲染視圖。
根據(jù)本申請實(shí)施例的第二方面,提供一種界面展示數(shù)據(jù)的方法,運(yùn)行于 服務(wù)端,該方法包括步驟:
將通用協(xié)議標(biāo)記語言編寫的界面模板數(shù)據(jù)解析成結(jié)構(gòu)化數(shù)據(jù);所述界面模板數(shù)據(jù)包括用于描述控件的通用標(biāo)簽;
將所述結(jié)構(gòu)化數(shù)據(jù)下發(fā)給客戶端,以使所述客戶端將所述控件渲染成視圖。
根據(jù)本申請實(shí)施例的第三方面,提供一種界面展示數(shù)據(jù)的裝置,位于客戶端,包括:
解析引擎模塊,用于將服務(wù)器下發(fā)的界面模板的結(jié)構(gòu)化數(shù)據(jù)解析成虛擬視圖節(jié)點(diǎn),所述界面模板的結(jié)構(gòu)化數(shù)據(jù)由服務(wù)端對通用協(xié)議標(biāo)記語言編寫的界面模板數(shù)據(jù)解析后生成,所述界面模板數(shù)據(jù)包括用于描述控件的通用標(biāo)簽;
綁定模塊,用于將業(yè)務(wù)數(shù)據(jù)和所述虛擬視圖節(jié)點(diǎn)綁定;
布局引擎模塊,用于根據(jù)綁定業(yè)務(wù)數(shù)據(jù)后的虛擬視圖節(jié)點(diǎn)計(jì)算所述控件的位置信息;
渲染引擎模塊,用于根據(jù)所述控件的位置信息渲染視圖。
根據(jù)本申請實(shí)施例的第四方面,提供一種界面展示數(shù)據(jù)的裝置,位于服務(wù)端,包括:
解析引擎模塊,用于將通用協(xié)議標(biāo)記語言編寫的界面模板數(shù)據(jù)解析成結(jié)構(gòu)化數(shù)據(jù);所述界面模板數(shù)據(jù)包括用于描述控件的通用標(biāo)簽;
通信模塊,用于將所述結(jié)構(gòu)化數(shù)據(jù)下發(fā)給客戶端,以使所述客戶端將所述控件渲染成視圖。
本申請通過界面模板技術(shù)而不是原生代碼來實(shí)現(xiàn)客戶端的界面框架,并相應(yīng)的提供了客戶端通過界面模板實(shí)現(xiàn)展示業(yè)務(wù)數(shù)據(jù)的解決方案,不僅做到在不更新客戶端的情況下更新界面,而且,通過服務(wù)端將界面模板數(shù)據(jù)解析成結(jié)構(gòu)化數(shù)據(jù),使得開發(fā)人員可以通過通用標(biāo)記語言設(shè)計(jì)界面模板,因此消除了開發(fā)人員學(xué)習(xí)私有協(xié)議的門檻,使得本申請的方案更具有通用性。
附圖說明
圖1為本申請實(shí)施例中界面展示數(shù)據(jù)的方法的流程圖;
圖2為本申請應(yīng)用實(shí)例中信息交互的時序圖;
圖3為本申請實(shí)施例中界面展示數(shù)據(jù)的裝置的硬件架構(gòu)圖;
圖4為本申請一實(shí)施例中界面展示數(shù)據(jù)的裝置的軟件邏輯框圖;
圖5為本申請另一實(shí)施例中界面展示數(shù)據(jù)的裝置的軟件邏輯框圖。
具體實(shí)施方式
這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
本申請中可以做到界面模板和應(yīng)用程序客戶端分離,以方便界面模板的動態(tài)更新,并且允許程序開發(fā)人員基于通用協(xié)議標(biāo)記語言來編寫界面模板。 應(yīng)用程序客戶端可以裝載于各種智能設(shè)備上,例如移動終端、平板電腦、電腦等。本方案不限制智能設(shè)備上操作系統(tǒng)的類型,例如操作系統(tǒng)可以是ios系統(tǒng)、android系統(tǒng)、windows系統(tǒng)、osx系統(tǒng)等。
通用協(xié)議標(biāo)記語言可以是html(hypertextmarkuplanguage,超文本標(biāo)記語言),當(dāng)然不排除其他適合于制作界面的標(biāo)準(zhǔn)通用協(xié)議定義的語言。
界面模板在本申請中是指某一界面中包含若干個通用元素的布局關(guān)系、顯示樣式以及操作控制邏輯等,但不包含業(yè)務(wù)數(shù)據(jù)的界面框架,可以通過html、css(cascadingstylesheets,層疊樣式表)和js(javascript腳本)來實(shí)現(xiàn)。通用元素可以包括html源代碼中的界面模板數(shù)據(jù)的通用標(biāo)簽,通過通用標(biāo)簽來描述控件。例如body標(biāo)簽、div標(biāo)簽、title標(biāo)簽、label標(biāo)簽、img標(biāo)簽等等。通用元素還可以包含表達(dá)顯示樣式的元素,顯示樣式可以通過css來實(shí)現(xiàn),通過css為html編寫的界面定義布局,當(dāng)然,并不排除通過其他方式來定義界面布局。可以通過js來控制通用標(biāo)簽的顯示內(nèi)容、展示效果、布局關(guān)系的調(diào)整,以及處理用戶操作。
程序開發(fā)人員所編寫的界面模板配置到服務(wù)端后,服務(wù)端將界面模板數(shù)據(jù)轉(zhuǎn)換為界面模板的結(jié)構(gòu)化數(shù)據(jù),并將該界面模板的結(jié)構(gòu)化數(shù)據(jù)發(fā)給客戶端;請參見圖1,客戶端收到結(jié)構(gòu)化數(shù)據(jù)后的工作過程可以包括:
s101,客戶端將服務(wù)端發(fā)送的界面模板的結(jié)構(gòu)化數(shù)據(jù)解析成虛擬視圖節(jié)點(diǎn);
s102,將業(yè)務(wù)數(shù)據(jù)和虛擬視圖節(jié)點(diǎn)綁定;
s103,根據(jù)綁定業(yè)務(wù)數(shù)據(jù)后的虛擬視圖節(jié)點(diǎn)計(jì)算控件的位置信息;
s104,根據(jù)控件的位置信息渲染視圖。
對于服務(wù)端的工作過程,可以包括對界面模板數(shù)據(jù)的轉(zhuǎn)換過程、界面模板的結(jié)構(gòu)化數(shù)據(jù)的分發(fā)過程、與客戶端交互業(yè)務(wù)數(shù)據(jù)的過程。
為了解決html的解析性能較差的問題,服務(wù)端將界面模板數(shù)據(jù)發(fā)給客戶端之前,先在服務(wù)端解析成結(jié)構(gòu)化數(shù)據(jù),然后再發(fā)給客戶端,避免了客戶端解析html的過程。所選擇的結(jié)構(gòu)化數(shù)據(jù)可以是結(jié)構(gòu)緊湊,且可以直接表 達(dá)對象型的數(shù)據(jù)結(jié)構(gòu),例如json格式,xml格式。以json格式為例,html可以被解析成dom(documentobjectmode,文檔對象模型),dom節(jié)點(diǎn)存儲html的通用標(biāo)簽的相關(guān)信息,dom節(jié)點(diǎn)描述了通用標(biāo)簽所描述的控件在界面中的相對位置。由于json格式的語法樹會比html簡單很多,因此客戶端對json格式的數(shù)據(jù)的解析效率比html數(shù)據(jù)高很多。
每個界面模板具有唯一的界面標(biāo)識,以區(qū)分不同的界面模板。界面模板數(shù)據(jù)解析成結(jié)構(gòu)化數(shù)據(jù)后將被服務(wù)端分發(fā)給客戶端,以便客戶端后續(xù)展現(xiàn)業(yè)務(wù)數(shù)據(jù)使用,界面模板的結(jié)構(gòu)化數(shù)據(jù)中包含界面標(biāo)識。
更新后的界面模板分發(fā)給客戶端的過程可以因?qū)嶋H的業(yè)務(wù)場景不同而有不同。例如,服務(wù)端可以在界面模板被更新后主動向客戶端分發(fā)新的界面模板解析后的結(jié)構(gòu)化數(shù)據(jù),也可以根據(jù)客戶端的請求向客戶端分發(fā)等等。
客戶端的工作過程可以包括對界面模板的結(jié)構(gòu)化數(shù)據(jù)的解析和存儲過程、與服務(wù)端交互業(yè)務(wù)數(shù)據(jù)的過程、將業(yè)務(wù)數(shù)據(jù)與界面模板綁定的過程、渲染視圖的過程。
界面模板的結(jié)構(gòu)化數(shù)據(jù)被服務(wù)端發(fā)送到客戶端后,客戶端將界面模板的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行解析,生成樹結(jié)構(gòu)的虛擬視圖節(jié)點(diǎn)進(jìn)行存儲,每個虛擬視圖節(jié)點(diǎn)可以存儲有html中dom節(jié)點(diǎn)的基本信息,例如通用標(biāo)簽的相關(guān)信息等,同時還可以包含對應(yīng)的應(yīng)用程序客戶端中的類型信息和應(yīng)用程序客戶端中響應(yīng)事件的信息等,通過虛擬視圖節(jié)點(diǎn)可以計(jì)算出html通用標(biāo)簽所描述的控件的位置信息。
當(dāng)觸發(fā)業(yè)務(wù)數(shù)據(jù)的交互流程后,客戶端從服務(wù)端獲取業(yè)務(wù)數(shù)據(jù),服務(wù)端下發(fā)業(yè)務(wù)數(shù)據(jù)時可以將該業(yè)務(wù)數(shù)據(jù)所對應(yīng)的模板標(biāo)識一同下發(fā)給客戶端。
作為一個例子,將業(yè)務(wù)數(shù)據(jù)與界面模板綁定的過程可以是通過js引擎驅(qū)動界面模板中的js腳本實(shí)現(xiàn),業(yè)務(wù)數(shù)據(jù)交給js引擎處理,js引擎執(zhí)行js腳本將業(yè)務(wù)數(shù)據(jù)插入到相應(yīng)的虛擬視圖節(jié)點(diǎn)。例如,可以參照以下過程:1.對于設(shè)備操作系統(tǒng)(例如ios系統(tǒng)、android系統(tǒng)等操作系統(tǒng))的原生代碼(以下稱為native)中的屬性和方法,如果在界面模板的js中不存在這些屬性和 方法,則可以擴(kuò)展js引擎的接口,將這些native的屬性和方法綁定給js引擎;擴(kuò)展的js引擎的接口可以包括例如接收并處理業(yè)務(wù)數(shù)據(jù)的js入口函數(shù)、調(diào)用native渲染引擎的接口等;2、js引擎將業(yè)務(wù)數(shù)據(jù)傳給js入口函數(shù);3、通過js入口函數(shù)將業(yè)務(wù)數(shù)據(jù)插入相應(yīng)的虛擬視圖節(jié)點(diǎn)。
在一個例子中,可以通過js引擎、調(diào)用native的渲染引擎的接口來通知渲染引擎觸發(fā)渲染視圖的過程。對于客戶端渲染視圖的過程可以存在多種方式,例如,可以每計(jì)算出一個控件的位置信息后將該控件渲染在視圖的相應(yīng)位置,此時對于用戶來說,界面呈現(xiàn)效果是各個控件逐一呈現(xiàn)。在另一個例子中,可以在內(nèi)存中計(jì)算出整張視圖中的所有控件的位置信息后,從內(nèi)存中取出所有控件的位置信息,將所有控件一并渲染成視圖,呈現(xiàn)給用戶完整的視圖,可以大大縮減視圖渲染的時間。
對于客戶端從服務(wù)端獲得的界面模板的結(jié)構(gòu)化數(shù)據(jù),可以存在更新的過程。更新后的界面模板的結(jié)構(gòu)化數(shù)據(jù)發(fā)送給客戶端的流程可以根據(jù)不同的業(yè)務(wù)場景設(shè)計(jì)不同的實(shí)現(xiàn)流程,例如,可以在服務(wù)端更新界面模板后主動將結(jié)構(gòu)化數(shù)據(jù)推送給客戶端,或者,在客戶端觸發(fā)業(yè)務(wù)流程后,業(yè)務(wù)數(shù)據(jù)需要利用新界面模板呈現(xiàn)時向服務(wù)端請求,因此作為一個例子,向服務(wù)端索取新界面模板的結(jié)構(gòu)化數(shù)據(jù)的過程可以包括:當(dāng)客戶端從服務(wù)端獲取到業(yè)務(wù)數(shù)據(jù)后,可以根據(jù)業(yè)務(wù)數(shù)據(jù)中的界面標(biāo)識查找業(yè)務(wù)數(shù)據(jù)對應(yīng)的界面模板,如果查找不到,則向服務(wù)端請求該界面標(biāo)識所對應(yīng)的界面模板的結(jié)構(gòu)化數(shù)據(jù)。
客戶端收到更新后的結(jié)構(gòu)化數(shù)據(jù)后重新執(zhí)行將結(jié)構(gòu)化數(shù)據(jù)解析成虛擬視圖節(jié)點(diǎn),更新虛擬視圖節(jié)點(diǎn)所存儲的相關(guān)信息。虛擬視圖節(jié)點(diǎn)根據(jù)更新后的信息與業(yè)務(wù)數(shù)據(jù)綁定,以及將綁定業(yè)務(wù)數(shù)據(jù)后的虛擬視圖節(jié)點(diǎn)通過調(diào)用native渲染引擎的接口交給渲染引擎重繪視圖。
以下是一個應(yīng)用場景中實(shí)現(xiàn)本方案的實(shí)例。本應(yīng)用實(shí)例中根據(jù)功能不同,將客戶端劃分為業(yè)務(wù)客戶端和界面客戶端;服務(wù)端劃分為業(yè)務(wù)服務(wù)端和界面服務(wù)端。業(yè)務(wù)客戶端和界面客戶端可以被集成裝載于移動終端的同一個app上。界面服務(wù)端包括html解析引擎、界面模板管理模塊,界面客戶端包括 界面模板的結(jié)構(gòu)化數(shù)據(jù)解析引擎、js引擎、布局引擎和渲染引擎。
參見圖2,在階段201,服務(wù)器對界面模板數(shù)據(jù)進(jìn)行預(yù)處理。
服務(wù)器通過html解析引擎將界面模板數(shù)據(jù)解析成基于json格式結(jié)構(gòu)數(shù)據(jù),界面模板數(shù)據(jù)中的html通用標(biāo)簽、與通用標(biāo)簽關(guān)聯(lián)的css屬性和js腳本解析后以dom樹節(jié)點(diǎn)的形式被存儲于界面模板管理模塊的同一個json文件中;界面模板管理模塊對這些json文件進(jìn)行增刪改的管理。
在階段202,界面客戶端對界面模板的json數(shù)據(jù)進(jìn)行解析。
界面客戶端收到界面模板的json數(shù)據(jù)后,通過界面模板的結(jié)構(gòu)化數(shù)據(jù)解析引擎將界面模板的json數(shù)據(jù)解析虛擬視圖節(jié)點(diǎn);界面模板的dom節(jié)點(diǎn)的基本信息及應(yīng)用程序中的類型信息和應(yīng)用程序中響應(yīng)事件的信息等信息被存儲于虛擬視圖節(jié)點(diǎn)中。
在階段203,業(yè)務(wù)客戶端與業(yè)務(wù)服務(wù)端交互業(yè)務(wù)數(shù)據(jù)。
業(yè)務(wù)客戶端向業(yè)務(wù)服務(wù)端發(fā)送請求獲取業(yè)務(wù)數(shù)據(jù)。業(yè)務(wù)服務(wù)端將所需要的業(yè)務(wù)數(shù)據(jù)按照預(yù)定的格式封裝后,并攜帶界面模板的id一起,以json數(shù)據(jù)的形式發(fā)給業(yè)務(wù)客戶端。
在階段204,業(yè)務(wù)數(shù)據(jù)和虛擬視圖節(jié)點(diǎn)綁定。
業(yè)務(wù)客戶端收到業(yè)務(wù)數(shù)據(jù)后,把業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)交給界面客戶端的js引擎處理,界面客戶端的js引擎根據(jù)界面模板id查找對應(yīng)界面模板的json數(shù)據(jù),將業(yè)務(wù)數(shù)據(jù)傳遞給界面模板的js入口函數(shù)處理,js入口函數(shù)將業(yè)務(wù)數(shù)據(jù)拆分后插入到到相應(yīng)的虛擬視圖節(jié)點(diǎn)進(jìn)行綁定,例如將body標(biāo)簽相關(guān)的業(yè)務(wù)數(shù)據(jù)與存儲body標(biāo)簽的虛擬視圖節(jié)點(diǎn)綁定,將div標(biāo)簽相關(guān)的業(yè)務(wù)數(shù)據(jù)與存儲div標(biāo)簽的虛擬視圖節(jié)點(diǎn)綁定。
在本階段,如果根據(jù)界面模板id查找不到對應(yīng)的界面模板的json數(shù)據(jù),則界面客戶端需要重新向界面服務(wù)端請求界面模板id所對應(yīng)的界面模板的json數(shù)據(jù)。
在階段205進(jìn)行布局引擎計(jì)算控件位置。
布局引擎通過每個虛擬視圖節(jié)點(diǎn)存儲的信息計(jì)算出每個控件的具體位置, 并將每個控件的位置信息存儲在內(nèi)存中。
在階段206進(jìn)行視圖渲染。
在本例中,當(dāng)計(jì)算完所有控件的具體位置后,視圖渲染時,通過js引擎通知渲染引擎進(jìn)行視圖渲染。視圖渲染引擎從內(nèi)存中獲取已計(jì)算好的整張視圖中各個控件的位置,呈現(xiàn)完整的視圖。
與前述界面展示數(shù)據(jù)的方法的實(shí)施例相對應(yīng),本申請還提供了界面展示數(shù)據(jù)的裝置的實(shí)施例。
本申請界面展示數(shù)據(jù)的裝置的實(shí)施例可以應(yīng)用在智能終端和服務(wù)器上。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在智能終端或服務(wù)器的處理器將非易失性存儲器中對應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖3所示,為本申請展示數(shù)據(jù)的裝置所在的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實(shí)施例中裝置所在的智能終端或服務(wù)器通常根據(jù)該智能終端和服務(wù)器的實(shí)際功能,還可以包括其他硬件,對此不再贅述。
請參考圖4,界面展示數(shù)據(jù)的裝置400在一個實(shí)施例中可以位于客戶端,包括:
解析引擎模塊401,可以用于將服務(wù)器下發(fā)的界面模板的結(jié)構(gòu)化數(shù)據(jù)解析成虛擬視圖節(jié)點(diǎn),界面模板的結(jié)構(gòu)化數(shù)據(jù)由服務(wù)端對通用協(xié)議標(biāo)記語言編寫的界面模板數(shù)據(jù)解析后生成,所述界面模板數(shù)據(jù)包括用于描述控件的通用標(biāo)簽;
綁定模塊402,可以用于將業(yè)務(wù)數(shù)據(jù)和所述虛擬視圖節(jié)點(diǎn)綁定;
布局引擎模塊403,可以用于根據(jù)綁定業(yè)務(wù)數(shù)據(jù)后的虛擬視圖節(jié)點(diǎn)計(jì)算所述控件的位置信息;
渲染引擎模塊404,可以用于根據(jù)所述控件的位置信息渲染視圖。
通用協(xié)議標(biāo)記語言可以為html,結(jié)構(gòu)化數(shù)據(jù)可以為json數(shù)據(jù)或xml數(shù)據(jù)。
虛擬視圖節(jié)點(diǎn)所存儲的信息可以包括所述通用標(biāo)簽的相關(guān)信息、和/或所述所述客戶端的類型信息、和/或所述客戶端中響應(yīng)事件的信息。
解析引擎模塊401還可以用于當(dāng)所述客戶端接收到更新后的界面模板的結(jié)構(gòu)化數(shù)據(jù)后,通知所述虛擬視圖節(jié)點(diǎn)更新所存儲的相關(guān)信息。
另外,還可以包括業(yè)務(wù)數(shù)據(jù)模塊405,用于接收服務(wù)端下發(fā)的業(yè)務(wù)數(shù)據(jù)并發(fā)給所述解析引擎模塊401,以及根據(jù)解析引擎模塊401的通知向服務(wù)端請求業(yè)務(wù)數(shù)據(jù);
解析引擎模塊401還可以用于在未查找到與所述業(yè)務(wù)數(shù)據(jù)對應(yīng)的界面模板的結(jié)構(gòu)化數(shù)據(jù)時,向業(yè)務(wù)數(shù)據(jù)模塊405發(fā)送通知。
渲染引擎模塊404根據(jù)所述控件的位置信息渲染視圖包括:
當(dāng)布局引擎模塊403計(jì)算完所有控件的位置信息后,獲取所有控件的位置信息,將所有控件一并渲染成視圖。
圖5是界面展示數(shù)據(jù)的裝置500位于服務(wù)端的實(shí)施例,包括:
解析引擎模塊501,用于將通用協(xié)議標(biāo)記語言編寫的界面模板數(shù)據(jù)解析成結(jié)構(gòu)化數(shù)據(jù);所述界面模板數(shù)據(jù)包括用于描述控件的通用標(biāo)簽;
通信模塊502,用于將所述結(jié)構(gòu)化數(shù)據(jù)下發(fā)給客戶端,以使所述客戶端將所述控件渲染成視圖。
通用協(xié)議標(biāo)記語言可以為html,結(jié)構(gòu)化數(shù)據(jù)可以是為json數(shù)據(jù),通用標(biāo)簽可以存儲于json數(shù)據(jù)的dom節(jié)點(diǎn)中。
上述裝置中各個單元的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。
對于裝置實(shí)施例而言,由于其基本對應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性 勞動的情況下,即可以理解并實(shí)施。
以上所述僅為本申請的較佳實(shí)施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護(hù)的范圍之內(nèi)。