亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

頁面顯示方法、裝置及存儲介質(zhì)與流程

文檔序號:11199353閱讀:900來源:國知局
頁面顯示方法、裝置及存儲介質(zhì)與流程

本公開涉及計算機技術(shù)領(lǐng)域,尤其涉及一種頁面顯示方法、裝置及存儲介質(zhì)。



背景技術(shù):

隨著計算機技術(shù)的發(fā)展,為了方便用戶使用,各種網(wǎng)頁應(yīng)用被開發(fā)出來。由于用戶在瀏覽網(wǎng)頁應(yīng)用的頁面時,頁面的顯示效果直接影響了用戶的瀏覽體驗,因此,為了提高用戶的瀏覽體驗,如何進行頁面顯示成為本領(lǐng)域人員較為關(guān)注的問題。

相關(guān)技術(shù)在進行頁面顯示時,主要借助頁面顯示裝置,該頁面顯示裝置包括javascript執(zhí)行層和瀏覽器內(nèi)核,具體顯示過程為:javascript執(zhí)行層對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件;在執(zhí)行javascript文件的過程中,javascript執(zhí)行層生成虛擬樹形結(jié)構(gòu);javascript執(zhí)行層將虛擬樹形結(jié)構(gòu)轉(zhuǎn)換為瀏覽器內(nèi)核可識別的樹形結(jié)構(gòu),并將該樹形結(jié)構(gòu)發(fā)送至瀏覽器內(nèi)核;瀏覽器內(nèi)核根據(jù)該樹形結(jié)構(gòu)進行頁面顯示。



技術(shù)實現(xiàn)要素:

本公開提供一種頁面顯示方法、裝置及存儲介質(zhì)。

根據(jù)本公開實施例的第一方面,提供一種頁面顯示方法,所述方法應(yīng)用于頁面顯示裝置中,所述頁面顯示裝置包括javascript執(zhí)行層、轉(zhuǎn)換層及原生層,所述方法包括:

所述javascript執(zhí)行層對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件;

在執(zhí)行所述javascript文件的過程中,所述javascript執(zhí)行層生成虛擬樹形結(jié)構(gòu),并向所述轉(zhuǎn)換層發(fā)送第一繪制消息,所述第一繪制消息包括所述虛擬樹形結(jié)構(gòu),所述虛擬樹形結(jié)構(gòu)包括多個元素,每個元素均采用javascript語句進行描述;

所述轉(zhuǎn)換層將所述虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第一視圖,并將所述多個第一視圖發(fā)送至所述原生層,每個第一視圖包括視圖數(shù)據(jù)和視圖結(jié)構(gòu)數(shù)據(jù);

對于任一第一視圖,當資源池中緩存有所述第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),所述原生層從所述資源池中獲取所述視圖結(jié)構(gòu),并將所述第一視圖的視圖數(shù)據(jù)添加到所述視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。

在本公開的另一個實施例中,所述當資源池中緩存有所述第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),所述原生層從所述資源池中獲取所述視圖結(jié)構(gòu),包括:

所述原生層從所述視圖結(jié)構(gòu)數(shù)據(jù)中獲取目標視圖結(jié)構(gòu)標識,并根據(jù)所述目標視圖結(jié)構(gòu)標識,從所述資源池中查找結(jié)構(gòu)標識與所述目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu);

當查找到結(jié)構(gòu)標識與所述目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),所述原生層從所述資源池中獲取所述視圖結(jié)構(gòu)。

在本公開的另一個實施例中,所述將所述第一視圖的視圖數(shù)據(jù)添加到所述視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示,包括:

所述原生層根據(jù)所述第一視圖之外的其他第一視圖的視圖結(jié)構(gòu)數(shù)據(jù),繪制其他第一視圖對應(yīng)的視圖結(jié)構(gòu),并將所述視圖結(jié)構(gòu)整合到所繪制的視圖結(jié)構(gòu)中,得到所述指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu);

所述原生層將所述第一視圖的視圖數(shù)據(jù)及其他第一視圖的視圖數(shù)據(jù)添加到所述指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)中,得到所述指定網(wǎng)頁對應(yīng)的原生頁面;

所述原生層顯示所述原生頁面。

在本公開的另一個實施例中,所述方法還包括:

當所述第一視圖處于隱藏狀態(tài)時,所述原生層獲取所述第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),并將所述視圖結(jié)構(gòu)存儲到所述資源池中。

在本公開的另一個實施例中,所述向所述轉(zhuǎn)換層發(fā)送第一繪制消息,包括:

所述javascript執(zhí)行層調(diào)用與所述轉(zhuǎn)換層之間的通信接口向所述轉(zhuǎn)換層發(fā)送第一繪制消息。

在本公開的另一個實施例中,所述轉(zhuǎn)換層將所述虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第一視圖,包括:

基于預(yù)先構(gòu)建的規(guī)則數(shù)據(jù)庫,所述轉(zhuǎn)換層將所述虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第一視圖,所述規(guī)則數(shù)據(jù)庫中存儲有javascript語句與視圖之間的對應(yīng)關(guān)系。

在本公開的另一個實施例中,所述方法還包括:

當獲取到更新的javascript語句和更新的視圖,所述轉(zhuǎn)換層根據(jù)所述更新的javascript語句和所述更新的視圖,對所述規(guī)則數(shù)據(jù)庫進行更新。

在本公開的另一個實施例中,所述方法還包括:

當在所述指定網(wǎng)頁上檢測到觸發(fā)操作時,所述原生層向所述javascript執(zhí)行層發(fā)送通知消息,所述通知消息包括變更的元素標識;

所述javascript執(zhí)行層根據(jù)所述變更的元素標識,修改所述虛擬樹形結(jié)構(gòu),并向所述轉(zhuǎn)換層發(fā)送第二繪制消息,所述第二繪制消息包括所述修改后的虛擬樹形結(jié)構(gòu);

所述轉(zhuǎn)換層將所述修改后的虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第二視圖,并將所述多個第二視圖發(fā)送至所述原生層,由所述原生層進行頁面顯示。

在本公開的另一個實施例中,所述原生層向所述javascript執(zhí)行層發(fā)送通知消息,包括:

所述原生層調(diào)用所述與所述javascript執(zhí)行層之間的通信接口向所述javascript執(zhí)行層發(fā)送通知消息。

根據(jù)本公開實施例的第二方面,提供一種頁面顯示裝置,所述頁面顯示裝置包括javascript執(zhí)行層、轉(zhuǎn)換層及原生層;

所述javascript執(zhí)行層,用于對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件;

所述javascript執(zhí)行層,用于在執(zhí)行所述javascript文件的過程中,生成虛擬樹形結(jié)構(gòu),并向所述轉(zhuǎn)換層發(fā)送第一繪制消息,所述第一繪制消息包括所述虛擬樹形結(jié)構(gòu),所述虛擬樹形結(jié)構(gòu)包括多個元素,每個元素均采用javascript語句進行描述;

所述轉(zhuǎn)換層,用于將所述虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第一視圖,并將所述多個第一視圖發(fā)送至所述原生層,每個第一視圖包括視圖數(shù)據(jù)和視圖結(jié)構(gòu)數(shù)據(jù);

對于任一第一視圖,所述原生層,用于當資源池中緩存有所述第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),從所述資源池中獲取所述視圖結(jié)構(gòu),并將所述第一視圖的視圖數(shù)據(jù)添加到所述視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。

在本公開的另一個實施例中,所述原生層,還用于從所述視圖結(jié)構(gòu)數(shù)據(jù)中獲取目標視圖結(jié)構(gòu)標識,并根據(jù)所述目標視圖結(jié)構(gòu)標識,從所述資源池中查找結(jié)構(gòu)標識與所述目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu);

所述原生層,還用于當查找到結(jié)構(gòu)標識與所述目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),從所述資源池中獲取所述視圖結(jié)構(gòu)。

在本公開的另一個實施例中,所述原生層,還用于根據(jù)所述第一視圖之外的其他第一視圖的視圖結(jié)構(gòu)數(shù)據(jù),繪制其他第一視圖對應(yīng)的視圖結(jié)構(gòu),并將所述視圖結(jié)構(gòu)整合到所繪制的視圖結(jié)構(gòu)中,得到所述指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu);

所述原生層,還用于將所述第一視圖的視圖數(shù)據(jù)及其他第一視圖的視圖數(shù)據(jù)添加到所述指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)中,得到所述指定網(wǎng)頁對應(yīng)的原生頁面;

所述原生層,還用于顯示所述原生頁面。

在本公開的另一個實施例中,所述原生層,還用于當所述第一視圖處于隱藏狀態(tài)時,獲取所述第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),并將所述視圖結(jié)構(gòu)存儲到所述資源池中。

在本公開的另一個實施例中,所述javascript執(zhí)行層,還用于調(diào)用與所述轉(zhuǎn)換層之間的通信接口向所述轉(zhuǎn)換層發(fā)送第一繪制消息。

在本公開的另一個實施例中,所述轉(zhuǎn)換層,還用于基于預(yù)先構(gòu)建的規(guī)則數(shù)據(jù)庫,將所述虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第一視圖,所述規(guī)則數(shù)據(jù)庫中存儲有javascript語句與視圖之間的對應(yīng)關(guān)系。

在本公開的另一個實施例中,所述轉(zhuǎn)換層,還用于當獲取到更新的javascript語句和更新的視圖,根據(jù)所述更新的javascript語句和所述更新的視圖,對所述規(guī)則數(shù)據(jù)庫進行更新。

在本公開的另一個實施例中,所述原生層,還用于當在所述指定網(wǎng)頁上檢測到觸發(fā)操作時,向所述javascript執(zhí)行層發(fā)送通知消息,所述通知消息包括變更的元素標識;

所述javascript執(zhí)行層,還用于根據(jù)所述變更的元素標識,修改所述虛擬樹形結(jié)構(gòu),并向所述轉(zhuǎn)換層發(fā)送第二繪制消息,所述第二繪制消息包括所述修改后的虛擬樹形結(jié)構(gòu);

所述轉(zhuǎn)換層,還用于將所述修改后的虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為所述原生層可識別的多個第二視圖,并將所述多個第二視圖發(fā)送至所述原生層,由所述原生層進行頁面顯示。

在本公開的另一個實施例中,所述原生層,還用于調(diào)用所述與所述javascript執(zhí)行層之間的通信接口向所述javascript執(zhí)行層發(fā)送通知消息。

根據(jù)本公開實施例的第三方面,提供了一種頁面顯示裝置,包括:

處理器;

用于存儲處理器可執(zhí)行的指令的存儲器;

其中,所述處理器被配置為:

javascript執(zhí)行層對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件;

在執(zhí)行所述javascript文件的過程中,所述javascript執(zhí)行層生成虛擬樹形結(jié)構(gòu),并向轉(zhuǎn)換層發(fā)送第一繪制消息,所述第一繪制消息包括所述虛擬樹形結(jié)構(gòu),所述虛擬樹形結(jié)構(gòu)包括多個元素,每個元素均采用javascript語句進行描述;

所述轉(zhuǎn)換層將所述虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖,并將所述多個第一視圖發(fā)送至所述原生層,每個第一視圖包括視圖數(shù)據(jù)和視圖結(jié)構(gòu)數(shù)據(jù);

對于任一第一視圖,當資源池中緩存有所述第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),所述原生層從所述資源池中獲取所述視圖結(jié)構(gòu),并將所述第一視圖的視圖數(shù)據(jù)添加到所述視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。

根據(jù)本公開實施例的第四方面,提供了一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條指令至少一條指令,所述至少一條指令由處理器加載并執(zhí)行以實現(xiàn)第一方面所述的頁面顯示方法。

本公開的實施例提供的技術(shù)方案可以包括以下有益效果:

原生層在接收到第一視圖后,將判斷資源池中是否緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),如果資源池中緩存有對應(yīng)的視圖結(jié)構(gòu),則無需重新繪制,可根據(jù)緩存的視圖結(jié)構(gòu)進行頁面顯示。該過程縮短了頁面繪制時間,降低了系統(tǒng)內(nèi)存占用量,大大提升了系統(tǒng)性能。

應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。

附圖說明

此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。

圖1是根據(jù)一示例性實施例示出的一種頁面顯示方法所涉及的實施環(huán)境。

圖2是根據(jù)一示例性實施例示出的一種頁面顯示方法的流程圖。

圖3是根據(jù)一示例性實施例示出的一種頁面顯示方法的流程圖。

圖4是根據(jù)一示例性實施例示出的一種頁面顯示裝置的框圖。

圖5是根據(jù)一示例性實施例示出的一種頁面顯示裝置的框圖。

具體實施方式

這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。

參見圖1,其示出了本公開實施例提供的頁面顯示方法所涉及的實施環(huán)境,該實施環(huán)境包括:終端101。

其中,終端101可以為智能手機、平板電腦、筆記本電腦等設(shè)備,本公開實施例不對終端101的產(chǎn)品形態(tài)進行具體限定。該終端101能夠運行并顯示網(wǎng)頁應(yīng)用對應(yīng)的頁面。具體地,終端可通過操作系統(tǒng)提供的全局搜索框內(nèi)搜索網(wǎng)頁應(yīng)用,進而在檢測到對該網(wǎng)頁應(yīng)用的點擊操作后,運行并顯示該網(wǎng)頁應(yīng)用對應(yīng)的頁面;該終端101還可在檢測到對網(wǎng)頁應(yīng)用的快捷圖標的點擊操作后,運行并顯示該網(wǎng)頁應(yīng)用對應(yīng)的頁面。為了提高顯示效果,終端101包括頁面顯示裝置,該頁面顯示裝置包括javascript執(zhí)行層、轉(zhuǎn)換層及原生層。

其中,javascript執(zhí)行層為終端操作系統(tǒng)提供的、能夠執(zhí)行javascript語句的邏輯層。該javascript執(zhí)行層能夠?qū)W(wǎng)頁進行解析,得到j(luò)avascript文件,并根據(jù)該javascript文件生成虛擬樹形結(jié)構(gòu);該javascript執(zhí)行層還能夠?qū)μ摂M樹形結(jié)構(gòu)進行修改,以使修改后的虛擬樹形結(jié)構(gòu)滿足用戶當前的顯示需求。

轉(zhuǎn)換層為終端操作系統(tǒng)提供的、能夠進行語句轉(zhuǎn)換的業(yè)務(wù)層,該轉(zhuǎn)換層可以為操作系統(tǒng)內(nèi)一個獨立的業(yè)務(wù)層,也可以為原生層內(nèi)負責語句轉(zhuǎn)換的一個子層,本公開實施例不對轉(zhuǎn)換層作具體的限定。該轉(zhuǎn)換層內(nèi)存儲有javascript語句與視圖之間的對應(yīng)關(guān)系,能夠?qū)avascript執(zhí)行層發(fā)送的虛擬樹形結(jié)構(gòu)轉(zhuǎn)換成原生層可識別的視圖,從而實現(xiàn)了web頁面到原生頁面的轉(zhuǎn)換。

原生層為終端操作系統(tǒng)提供的、能夠進行頁面渲染的業(yè)務(wù)層。該原生層能夠調(diào)用操作系統(tǒng)提供的通信接口,以觸發(fā)操作系統(tǒng)進行頁面的渲染;該原生層還能夠在檢測到對當前顯示的頁面的觸發(fā)操作后,向javascript執(zhí)行層發(fā)送通知消息,以使javascript執(zhí)行層修改虛擬樹形結(jié)構(gòu),重新執(zhí)行頁面渲染邏輯。

上述實施環(huán)境還可以包括服務(wù)器102。該服務(wù)器102為網(wǎng)頁應(yīng)用對應(yīng)的后臺服務(wù)器,該服務(wù)器102用于向終端101提供html5(hypertextmarkuplanguage,超文本標記語言)數(shù)據(jù)和javascript文件。

在本公開實施例中,終端101與服務(wù)器102之間可通過有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò)進行通信,從而保證終端101能夠從服務(wù)器102上獲取顯示網(wǎng)頁應(yīng)用所需的數(shù)據(jù)。

圖2是根據(jù)一示例性實施例示出的一種頁面顯示方法的流程圖,如圖2所示,頁面顯示方法用于終端中,該終端包括頁面顯示裝置,該頁面顯示裝置包括javascript執(zhí)行層、轉(zhuǎn)換層及原生層。該方法包括以下步驟。

在步驟s201中,javascript執(zhí)行層對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件。

在步驟s202中,在執(zhí)行javascript文件的過程中,javascript執(zhí)行層生成虛擬樹形結(jié)構(gòu),并向轉(zhuǎn)換層發(fā)送第一繪制消息。

其中,第一繪制消息包括虛擬樹形結(jié)構(gòu),虛擬樹形結(jié)構(gòu)包括多個元素,每個元素均采用javascript語句進行描述。

在步驟s203中,轉(zhuǎn)換層將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖,并將多個第一視圖發(fā)送至原生層。

其中,每個第一視圖包括視圖數(shù)據(jù)和視圖結(jié)構(gòu)數(shù)據(jù)。

在步驟s204中,對于任一第一視圖,當資源池中緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),原生層從資源池中獲取視圖結(jié)構(gòu),并將第一視圖的視圖數(shù)據(jù)添加到視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。

本公開實施例提供的方法,原生層在接收到第一視圖后,將判斷資源池中是否緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),如果資源池中緩存有對應(yīng)的視圖結(jié)構(gòu),則無需重新繪制,可根據(jù)緩存的視圖結(jié)構(gòu)進行頁面顯示。該過程縮短了頁面繪制時間,降低了系統(tǒng)內(nèi)存占用量,大大提升了系統(tǒng)性能。

在本公開的另一個實施例中,當資源池中緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),原生層從資源池中獲取視圖結(jié)構(gòu),包括:

原生層從視圖結(jié)構(gòu)數(shù)據(jù)中獲取目標視圖結(jié)構(gòu)標識,并根據(jù)目標視圖結(jié)構(gòu)標識,從資源池中查找結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu);

當查找到結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),原生層從資源池中獲取視圖結(jié)構(gòu)。

在本公開的另一個實施例中,將第一視圖的視圖數(shù)據(jù)添加到視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示,包括:

原生層根據(jù)第一視圖之外的其他第一視圖的視圖結(jié)構(gòu)數(shù)據(jù),繪制其他第一視圖對應(yīng)的視圖結(jié)構(gòu),并將視圖結(jié)構(gòu)整合到所繪制的視圖結(jié)構(gòu)中,得到指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu);

原生層將第一視圖的視圖數(shù)據(jù)及其他第一視圖的視圖數(shù)據(jù)添加到指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)中,得到指定網(wǎng)頁對應(yīng)的原生頁面;

原生層顯示原生頁面。

在本公開的另一個實施例中,該方法還包括:

當?shù)谝灰晥D處于隱藏狀態(tài)時,原生層獲取第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),并將視圖結(jié)構(gòu)存儲到資源池中。

在本公開的另一個實施例中,向轉(zhuǎn)換層發(fā)送第一繪制消息,包括:

javascript執(zhí)行層調(diào)用與轉(zhuǎn)換層之間的通信接口向轉(zhuǎn)換層發(fā)送第一繪制消息。

在本公開的另一個實施例中,轉(zhuǎn)換層將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖,包括:

基于預(yù)先構(gòu)建的規(guī)則數(shù)據(jù)庫,轉(zhuǎn)換層將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖,規(guī)則數(shù)據(jù)庫中存儲有javascript語句與視圖之間的對應(yīng)關(guān)系。

在本公開的另一個實施例中,該方法還包括:

當獲取到更新的javascript語句和更新的視圖,轉(zhuǎn)換層根據(jù)更新的javascript語句和更新的視圖,對規(guī)則數(shù)據(jù)庫進行更新。

在本公開的另一個實施例中,該方法還包括:

當在指定網(wǎng)頁上檢測到觸發(fā)操作時,原生層向javascript執(zhí)行層發(fā)送通知消息,通知消息包括變更的元素標識;

javascript執(zhí)行層根據(jù)變更的元素標識,修改虛擬樹形結(jié)構(gòu),并向轉(zhuǎn)換層發(fā)送第二繪制消息,第二繪制消息包括修改后的虛擬樹形結(jié)構(gòu);

轉(zhuǎn)換層將修改后的虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第二視圖,并將多個第二視圖發(fā)送至原生層,由原生層進行頁面顯示。

在本公開的另一個實施例中,原生層向javascript執(zhí)行層發(fā)送通知消息,包括:

原生層調(diào)用與javascript執(zhí)行層之間的通信接口向javascript執(zhí)行層發(fā)送通知消息。

上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實施例,在此不再一一贅述。

圖3是根據(jù)一示例性實施例示出的一種頁面顯示方法的流程圖,如圖3所示,頁面顯示方法用于終端中,該終端包括頁面顯示裝置,該頁面顯示裝置包括javascript執(zhí)行層、轉(zhuǎn)換層及原生層。該方法包括以下步驟。

在步驟s301中,javascript執(zhí)行層對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件。

其中,指定網(wǎng)頁為網(wǎng)頁應(yīng)用中的一個網(wǎng)頁,該指定網(wǎng)頁可以為網(wǎng)頁應(yīng)用中一級網(wǎng)頁,可以為網(wǎng)頁應(yīng)用中的二級以上網(wǎng)頁。當指定網(wǎng)頁為一級網(wǎng)頁時,指定網(wǎng)頁源代碼在獲取時,可采用如下兩種方式:

第一種方式、在瀏覽器啟動的過程中,用戶可根據(jù)自身的閱讀需求,借助鼠標等設(shè)備在瀏覽器或操作系統(tǒng)的全局搜索框中輸入網(wǎng)頁應(yīng)用的名稱,當檢測到用戶對終端的瀏覽器或全局搜索框上所顯示的網(wǎng)頁應(yīng)用鏈接的點擊操作時,終端生成對指定網(wǎng)頁的顯示請求,在對指定網(wǎng)頁的顯示請求的觸發(fā)下,終端可從服務(wù)器上獲取指定網(wǎng)頁源代碼。其中,對指定網(wǎng)頁的顯示請求中至少攜帶指定網(wǎng)頁的屬性信息,包括網(wǎng)頁標識、網(wǎng)頁類型、網(wǎng)頁大小等等。指定網(wǎng)頁源代碼包括javascript代碼和html5數(shù)據(jù)。

第二種方式、如果終端本地存儲器中存儲有該指定網(wǎng)頁鏈接,例如,桌面上顯示有該指定網(wǎng)頁對應(yīng)的快捷圖標等,則終端可在檢測到用戶對該快捷圖標的點擊操作時,生成對指定網(wǎng)頁的顯示請求,在對指定網(wǎng)頁的顯示請求的觸發(fā)下,終端可從服務(wù)器上獲取該指定網(wǎng)頁源代碼。

當指定網(wǎng)頁為二級以上網(wǎng)頁時,指定網(wǎng)頁源代碼在獲取時,可采用如下方式:當檢測到對網(wǎng)頁應(yīng)用中一級網(wǎng)頁上任一條目(該條目為具有網(wǎng)頁鏈接性質(zhì)的標題、圖標等)的點擊操作時,終端生成對指定網(wǎng)頁的顯示請求,在對指定網(wǎng)頁的顯示請求的觸發(fā)下,終端可從服務(wù)器上獲取指定網(wǎng)頁的源代碼。

在對指定網(wǎng)頁顯示請求的觸發(fā)下,終端內(nèi)的javascript執(zhí)行層對請求顯示的指定網(wǎng)頁進行javascript解析,得到j(luò)avascript文件,該javascript文件中包括整個頁面顯示過程的邏輯代碼。

在步驟s302中,在執(zhí)行javascript文件的過程中,javascript執(zhí)行層生成虛擬樹形結(jié)構(gòu)。

在執(zhí)行javascript文件的過程中,javascript執(zhí)行層可對html5數(shù)據(jù)進行html解析,得到虛擬樹形結(jié)構(gòu)。該虛擬樹形結(jié)構(gòu)包括多個元素。其中,元素為指定網(wǎng)頁中用于描述網(wǎng)頁屬性信息、網(wǎng)頁內(nèi)容等的數(shù)據(jù),且每個元素均采用javascript語句進行描述。在本公開實施例中,虛擬樹形結(jié)構(gòu)可以為vdom(virtualdocumentobjectmodel,文檔對象模型)樹。

在步驟s303中,javascript執(zhí)行層調(diào)用與轉(zhuǎn)換層之間的通信接口向轉(zhuǎn)換層發(fā)送第一繪制消息。

由于虛擬樹形結(jié)構(gòu)中每個元素均采用javascript語句進行描述,而javascript語句無法被原生層識別,這使得相關(guān)技術(shù)在獲取到虛擬樹形結(jié)構(gòu)之后,只能將虛擬樹形結(jié)構(gòu)轉(zhuǎn)換為瀏覽器內(nèi)核可識別的樹形結(jié)構(gòu),進而由瀏覽器內(nèi)核渲染成web頁面進行顯示。由于該過程所顯示的頁面為web頁面,因而頁面顯示效果不佳。

為了提高頁面顯示效果,最大限度地還原頁面的真實形態(tài),同時為用戶營銷一種安裝該網(wǎng)頁應(yīng)用的真實體驗,本公開實施例提供的方法,在生成虛擬樹形結(jié)構(gòu)之后,javascript執(zhí)行層還將生成第一繪制消息,進而向轉(zhuǎn)換層發(fā)送第一繪制消息,該第一繪制消息包括虛擬樹形結(jié)構(gòu)等,用于觸發(fā)轉(zhuǎn)換層進行語句轉(zhuǎn)換,從而顯示指定網(wǎng)頁對應(yīng)的原生頁面。進一步地,本公開實施例還提供了一種通信接口,該種通信接口能夠?qū)崿F(xiàn)javascript執(zhí)行層與轉(zhuǎn)換層之間的通信,基于該種通信接口,javascript執(zhí)行層在向轉(zhuǎn)換層發(fā)送第一繪制消息時,可調(diào)用與轉(zhuǎn)換層之間的通信接口進行發(fā)送。

在步驟s304中,轉(zhuǎn)換層將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖。

對于很多應(yīng)用,研發(fā)人員在開發(fā)時通常會開發(fā)兩種類型,一種是無需安裝的網(wǎng)頁應(yīng)用,一種是需要安裝的應(yīng)用,這樣,對于同一應(yīng)用,就存在瀏覽器內(nèi)核能夠識別的html5數(shù)據(jù)和javascript代碼、以及終端原生層能夠識別的視圖。在實際使用過程中,研發(fā)人員很難獲知用戶具體使用哪種類型的應(yīng)用,因此,研發(fā)人員通常會將html5數(shù)據(jù)、javascript文件及視圖一同打包在所開發(fā)的應(yīng)用中。這樣,當用戶瀏覽網(wǎng)頁應(yīng)用對應(yīng)的網(wǎng)頁時,終端內(nèi)的轉(zhuǎn)換層可從javascript執(zhí)行層解析后的數(shù)據(jù)中,獲取javascript語句和視圖。基于所獲取到的javascript語句和視圖,轉(zhuǎn)換層可建立一個規(guī)則數(shù)據(jù)庫。該規(guī)則數(shù)據(jù)庫中存儲有javascript語句與視圖之間的對應(yīng)關(guān)系。為了便于后續(xù)應(yīng)用,轉(zhuǎn)換層還將存儲所建立的規(guī)則數(shù)據(jù)庫。

基于預(yù)先構(gòu)建的規(guī)則數(shù)據(jù)庫,轉(zhuǎn)換層在將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖時,可從規(guī)則數(shù)據(jù)庫中獲取虛擬樹形結(jié)構(gòu)中用于描述每個元素的javascript語句對應(yīng)的視圖,并將獲取到的視圖作為第一視圖。其中,第一視圖包括視圖數(shù)據(jù)和視圖結(jié)構(gòu)數(shù)據(jù),該視圖數(shù)據(jù)用于確定該第一視圖對應(yīng)的頁面內(nèi)容,該視圖結(jié)構(gòu)數(shù)據(jù)用于確定第一視圖對應(yīng)的頁面布局。

由于javascript語句并不是固定不變的,為了保證規(guī)則數(shù)據(jù)庫的實時有效性,當獲取到更新的javascript語句和更新的視圖后,轉(zhuǎn)換層還將根據(jù)更新的javascript語句和更新的視圖,對規(guī)則數(shù)據(jù)庫進行更新。

在步驟s305中,轉(zhuǎn)換層將多個第一視圖發(fā)送至原生層。

本公開實施例提供了一種通信接口,該種通信接口能夠?qū)崿F(xiàn)轉(zhuǎn)換層與原生層之間的通信,基于該種通信接口,轉(zhuǎn)換層可將虛擬樹形結(jié)構(gòu)中的多個元素所轉(zhuǎn)換的多個第一視圖發(fā)送至原生層,進而由原生層進行頁面顯示。

在步驟s306中,對于任一第一視圖,當資源池中緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),原生層從資源池中獲取視圖結(jié)構(gòu),并將第一視圖的視圖數(shù)據(jù)添加到視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。

本公開實施例中,原生層維護多個資源池,每個資源池用于存儲一種類型的視圖結(jié)構(gòu)。當采用本公開實施例提供的方法進行頁面顯示時,如果因用戶的觸發(fā)操作任一視圖由顯示狀態(tài)切換到隱藏狀態(tài)時,原生層將獲取該視圖的視圖數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),并將該視圖結(jié)構(gòu)存儲到資源池中。由于網(wǎng)頁布局千變?nèi)f化,相應(yīng)地網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)也有很多種,為了便于在頁面顯示過程中查找能夠復(fù)用的視圖結(jié)構(gòu),原生層獲取到視圖結(jié)構(gòu)后,可按照視圖結(jié)構(gòu)標識將視圖結(jié)構(gòu)存儲到資源池中。其中,視圖結(jié)構(gòu)標識用于標識視圖的結(jié)構(gòu),可在網(wǎng)頁應(yīng)用開發(fā)過程中由開發(fā)人員設(shè)置,且不同的視圖結(jié)構(gòu)對應(yīng)不同的視圖結(jié)構(gòu)標識。

在本公開實施例中,原生層接收到轉(zhuǎn)換層發(fā)送的第一視圖后,原生層并不會直接繪制該第一視圖,而是判斷資源池中是否存儲有該第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),進而根據(jù)資源池中是否存儲有該第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),采用不同的方法獲取對應(yīng)的視圖結(jié)構(gòu)。具體實施時,原生層可從視圖結(jié)構(gòu)數(shù)據(jù)中獲取目標視圖結(jié)構(gòu)標識,并根據(jù)目標視圖結(jié)構(gòu)標識,從資源池中查找結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),當查找到結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),原生層從資源池中獲取視圖結(jié)構(gòu);當未查找到結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),原生層可根據(jù)第一視圖的視圖結(jié)構(gòu)數(shù)據(jù),繪制對應(yīng)的視圖結(jié)構(gòu)??紤]到實際顯示過程中,網(wǎng)頁形態(tài)的多樣性,同一視圖結(jié)構(gòu)標識可能對應(yīng)多個視圖結(jié)構(gòu),這樣,原生層在從資源池中獲取視圖結(jié)構(gòu)時,可隨機獲取一個視圖結(jié)構(gòu),在后續(xù)顯示過程中,如果無法正常顯示,可從資源池中獲取其他視圖結(jié)構(gòu),以避免影響用戶的體驗。

進一步地,當原生層從資源池中獲取該視圖結(jié)構(gòu)后,資源池中將不再緩存該視圖結(jié)構(gòu),也即是,本公開的資源池中緩存的是已繪制但當前未使用的視圖結(jié)構(gòu)。

當從資源池中獲取到視圖結(jié)構(gòu)后,原生層將第一視圖的視圖數(shù)據(jù)添加到視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。具體實施時,可采用如下步驟s3061~s3063:

s3061、原生層根據(jù)第一視圖之外的其他第一視圖的視圖結(jié)構(gòu)數(shù)據(jù),繪制其他第一視圖對應(yīng)的視圖結(jié)構(gòu),并將視圖結(jié)構(gòu)整合到所繪制的視圖結(jié)構(gòu)中,得到指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)。

在實際整合時,可根據(jù)第一視圖與其他第一視圖之間的位置關(guān)系進行整合。

s3062、原生層將該第一視圖的視圖數(shù)據(jù)及其他第一視圖的視圖數(shù)據(jù)添加到指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)中,得到指定網(wǎng)頁對應(yīng)的原生頁面。

原生層通過調(diào)用操作系統(tǒng)nativegui(graphicaluserinterface,圖形用戶界面)的api(applicationprogramminginterface,應(yīng)用程序編程接口)對指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)進行渲染,得到指定網(wǎng)頁布局,進而將每個第一視圖的視圖數(shù)據(jù)繪制到視圖結(jié)構(gòu)對應(yīng)的網(wǎng)頁布局中,得到指定網(wǎng)頁對應(yīng)的原生頁面。

s3063、原生層顯示原生頁面。

需要說明的是:上述步驟s3061~s3063以復(fù)用一個第一視圖對應(yīng)的視圖結(jié)構(gòu)為例,實際應(yīng)用中,如果多個第一視圖的視圖結(jié)構(gòu)可以復(fù)用,則可復(fù)用多個第一視圖的視圖結(jié)構(gòu),對于復(fù)用的每個第一視圖的視圖結(jié)構(gòu),均可按照上述步驟s3061~s3063進行頁面顯示。

在本公開的另一個實施例中,因用戶的操作,當?shù)谝灰晥D由顯示狀態(tài)切換到隱藏狀態(tài)時,原生層可獲取該第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),并將視圖結(jié)構(gòu)存儲到資源池中,以在后續(xù)進行頁面顯示時復(fù)用。

在步驟s307中,當在指定網(wǎng)頁上檢測到觸發(fā)操作時,原生層調(diào)用與javascript執(zhí)行層之間的通信接口向javascript執(zhí)行層發(fā)送通知消息。

其中,觸發(fā)操作包括但不限于滑動操作和點擊操作等。在指定網(wǎng)頁對應(yīng)的原生頁面的顯示過程中,當檢測到對該原生頁面的滑動操作時,或者檢測到對該原生頁面上任一網(wǎng)頁鏈接的點擊操作時,原生頁面上所顯示的內(nèi)容將發(fā)生變化,此時原生層將向javascript執(zhí)行層發(fā)送通知消息,該通知消息用于重新觸發(fā)上述頁面顯示邏輯,以使所顯示的頁面滿足用戶當前的瀏覽需求。其中,通知消息包括變更的元素標識及操作類型,該操作類型包括增加操作、刪除操作等等。

上述原生層在向javascript執(zhí)行層發(fā)送通知消息時,可調(diào)用與javascript執(zhí)行層之間的通信接口向javascript執(zhí)行層發(fā)送通知消息。

在步驟s308中,javascript執(zhí)行層根據(jù)變更的元素標識,修改虛擬樹形結(jié)構(gòu),并向轉(zhuǎn)換層發(fā)送第二繪制消息。

當接收到通知消息后,javascript執(zhí)行層按照對變更的元素標識對應(yīng)元素的操作類型,修改虛擬樹形結(jié)構(gòu)。例如,如果操作類型為刪除操作,則javascript執(zhí)行層將刪除虛擬樹形結(jié)構(gòu)中該元素標識對應(yīng)元素;如果操作類型為增加操作,則javascript執(zhí)行層將增加虛擬樹形機構(gòu)中該元素標識對應(yīng)元素。

基于修改后的修改虛擬樹形結(jié)構(gòu),javascript執(zhí)行層將生成第二繪制消息,該第二繪制消息包括修改后的虛擬樹形結(jié)構(gòu)等,進而通過調(diào)用與轉(zhuǎn)換層之間的通信接口向轉(zhuǎn)換層發(fā)送第二繪制消息。

在步驟s309中,轉(zhuǎn)換層將修改后的虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第二視圖,并將多個第二視圖發(fā)送至原生層,由原生層進行頁面顯示。

當接收到第二繪制消息后,轉(zhuǎn)換層基于預(yù)先構(gòu)建的規(guī)則數(shù)據(jù)庫,將修改后的虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第二視圖。

此處需要說明的是,第一視圖和第二視圖僅為了說明頁面顯示內(nèi)容變化時,不同的元素所對應(yīng)的視圖將發(fā)生變化,實際上,觸發(fā)操作前后,頁面上同一元素對應(yīng)的第一視圖和第二視圖是相同的。

當獲取到多個第二視圖后,轉(zhuǎn)換層通過調(diào)用與原生層之間的通信接口將多個第二視圖發(fā)送至原生層,進而由原生層根據(jù)第二視圖進行頁面顯示。原生層在根據(jù)轉(zhuǎn)換層發(fā)送的多個第二視圖進行頁面顯示時,可采用如下方式:原生層獲取變更的元素標識對應(yīng)的第一視圖,并判斷資源池中是否緩存有變更的元素標識對應(yīng)的第一視圖,當資源池中緩存有該第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),原生層從資源池中獲取該視圖結(jié)構(gòu),同時原生層獲取未變更的元素標識對應(yīng)的視圖結(jié)構(gòu),該視圖結(jié)構(gòu)內(nèi)已添加了視圖數(shù)據(jù),進而將獲取到的視圖結(jié)構(gòu)和未變更的元素標識對應(yīng)的視圖結(jié)構(gòu)進行整合,得到變更后的指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu),進而將變更的視圖元素標識對應(yīng)的第一視圖的視圖數(shù)據(jù)添加到相應(yīng)的視圖結(jié)構(gòu)中,得到變更后的指定網(wǎng)頁對應(yīng)的原生頁面。

本公開實施例提供的方法,原生層在接收到第一視圖后,將判斷資源池中是否緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),如果資源池中緩存有對應(yīng)的視圖結(jié)構(gòu),則無需重新繪制,可根據(jù)緩存的視圖結(jié)構(gòu)進行頁面顯示。該過程縮短了頁面繪制時間,降低了系統(tǒng)內(nèi)存占用量,大大提升了系統(tǒng)性能。

圖4是根據(jù)一示例性實施例示出的一種頁面顯示裝置示意圖。參照圖4,該頁面顯示裝置包括:javascript執(zhí)行層、轉(zhuǎn)換層及原生層。

javascript執(zhí)行層401被配置為對請求顯示的指定網(wǎng)頁進行解析,得到j(luò)avascript文件;

javascript執(zhí)行層被配置為在執(zhí)行javascript文件的過程中,生成虛擬樹形結(jié)構(gòu),并向轉(zhuǎn)換層402發(fā)送第一繪制消息,該第一繪制消息包括虛擬樹形結(jié)構(gòu),虛擬樹形結(jié)構(gòu)包括多個元素,每個元素均采用javascript語句進行描述;

轉(zhuǎn)換層402被配置為將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層403可識別的多個第一視圖,并將多個第一視圖發(fā)送至原生層,每個第一視圖包括視圖數(shù)據(jù)和視圖結(jié)構(gòu)數(shù)據(jù);

對于任一第一視圖,原生層403被配置為當資源池中緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),從資源池中獲取視圖結(jié)構(gòu),并將第一視圖的視圖數(shù)據(jù)添加到視圖結(jié)構(gòu)中,以實現(xiàn)頁面顯示。

在本公開的另一個實施例中,原生層403被配置為從視圖結(jié)構(gòu)數(shù)據(jù)中獲取目標視圖結(jié)構(gòu)標識,并根據(jù)目標視圖結(jié)構(gòu)標識,從資源池中查找結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu);

原生層403被配置為當查找到結(jié)構(gòu)標識與目標結(jié)構(gòu)標識相同的視圖結(jié)構(gòu),從資源池中獲取視圖結(jié)構(gòu)。

在本公開的另一個實施例中,原生層403被配置為根據(jù)第一視圖之外的其他第一視圖的視圖結(jié)構(gòu)數(shù)據(jù),繪制其他第一視圖對應(yīng)的視圖結(jié)構(gòu),并將視圖結(jié)構(gòu)整合到所繪制的視圖結(jié)構(gòu)中,得到指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu);

原生層403被配置為將第一視圖的視圖數(shù)據(jù)及其他第一視圖的視圖數(shù)據(jù)添加到指定網(wǎng)頁對應(yīng)的視圖結(jié)構(gòu)中,得到指定網(wǎng)頁對應(yīng)的原生頁面;

原生層403被配置為顯示原生頁面。

在本公開的另一個實施例中,原生層403被配置為當?shù)谝灰晥D處于隱藏狀態(tài)時,獲取第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),并將視圖結(jié)構(gòu)存儲到資源池中。

在本公開的另一個實施例中,javascript執(zhí)行層401被配置為調(diào)用與轉(zhuǎn)換層402之間的通信接口向轉(zhuǎn)換層發(fā)送第一繪制消息。

在本公開的另一個實施例中,轉(zhuǎn)換層402被配置為基于預(yù)先構(gòu)建的規(guī)則數(shù)據(jù)庫,將虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第一視圖,該規(guī)則數(shù)據(jù)庫中存儲有javascript語句與視圖之間的對應(yīng)關(guān)系。

在本公開的另一個實施例中,轉(zhuǎn)換層402被配置為當獲取到更新的javascript語句和更新的視圖,根據(jù)更新的javascript語句和更新的視圖,對規(guī)則數(shù)據(jù)庫進行更新。

在本公開的另一個實施例中,原生層403被配置為當在指定網(wǎng)頁上檢測到觸發(fā)操作時,向javascript執(zhí)行層發(fā)送通知消息,通知消息包括變更的元素標識;

javascript執(zhí)行層401被配置為根據(jù)變更的元素標識,修改虛擬樹形結(jié)構(gòu),并向轉(zhuǎn)換層發(fā)送第二繪制消息,該第二繪制消息包括修改后的虛擬樹形結(jié)構(gòu);

轉(zhuǎn)換層402被配置為將修改后的虛擬樹形結(jié)構(gòu)中的多個元素轉(zhuǎn)換為原生層可識別的多個第二視圖,并將多個第二視圖發(fā)送至原生層,由原生層進行頁面顯示。

在本公開的另一個實施例中,原生層402被配置為調(diào)用與javascript執(zhí)行層之間的通信接口向javascript執(zhí)行層發(fā)送通知消息。

本公開實施例提供的裝置,原生層在接收到第一視圖后,將判斷資源池中是否緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),如果資源池中緩存有對應(yīng)的視圖結(jié)構(gòu),則無需重新繪制,可根據(jù)緩存的視圖結(jié)構(gòu)進行頁面顯示。該過程縮短了頁面繪制時間,降低了系統(tǒng)內(nèi)存占用量,大大提升了系統(tǒng)性能。

關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。

圖5是根據(jù)一示例性實施例示出的一種用于頁面顯示的裝置500的框圖。例如,裝置500可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等。

參照圖5,裝置500可以包括以下一個或多個組件:處理組件502,存儲器504,電源組件506,多媒體組件508,音頻組件510,輸入/輸出(i/o)接口512,傳感器組件514,以及通信組件516。

處理組件502通??刂蒲b置500的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關(guān)聯(lián)的操作。處理組件502可以包括一個或多個處理器520來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件502可以包括一個或多個模塊,便于處理組件502和其他組件之間的交互。例如,處理組件502可以包括多媒體模塊,以方便多媒體組件508和處理組件502之間的交互。

存儲器504被配置為存儲各種類型的數(shù)據(jù)以支持在裝置500的操作。這些數(shù)據(jù)的示例包括用于在裝置500上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器504可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(sram),電可擦除可編程只讀存儲器(eeprom),可擦除可編程只讀存儲器(eprom),可編程只讀存儲器(prom),只讀存儲器(rom),磁存儲器,快閃存儲器,磁盤或光盤。

電源組件506為裝置500的各種組件提供電力。電源組件506可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置500生成、管理和分配電力相關(guān)聯(lián)的組件。

多媒體組件508包括在所述裝置500和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(lcd)和觸摸面板(tp)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件508包括一個前置攝像頭和/或后置攝像頭。當裝置500處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。

音頻組件510被配置為輸出和/或輸入音頻信號。例如,音頻組件510包括一個麥克風(mic),當裝置500處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器504或經(jīng)由通信組件516發(fā)送。在一些實施例中,音頻組件510還包括一個揚聲器,用于輸出音頻信號。

i/o接口512為處理組件502和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。

傳感器組件514包括一個或多個傳感器,用于為裝置500提供各個方面的狀態(tài)評估。例如,傳感器組件514可以檢測到裝置500的打開/關(guān)閉狀態(tài),組件的相對定位,例如所述組件為裝置500的顯示器和小鍵盤,傳感器組件514還可以檢測裝置500或裝置500一個組件的位置改變,用戶與裝置500接觸的存在或不存在,裝置500方位或加速/減速和裝置500的溫度變化。傳感器組件514可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件514還可以包括光傳感器,如cmos或ccd圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件514還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。

通信組件516被配置為便于裝置500和其他設(shè)備之間有線或無線方式的通信。裝置500可以接入基于通信標準的無線網(wǎng)絡(luò),如wifi,2g或3g,或它們的組合。在一個示例性實施例中,通信組件516經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件516還包括近場通信(nfc)模塊,以促進短程通信。例如,在nfc模塊可基于射頻識別(rfid)技術(shù),紅外數(shù)據(jù)協(xié)會(irda)技術(shù),超寬帶(uwb)技術(shù),藍牙(bt)技術(shù)和其他技術(shù)來實現(xiàn)。

在示例性實施例中,裝置500可以被一個或多個應(yīng)用專用集成電路(asic)、數(shù)字信號處理器(dsp)、數(shù)字信號處理設(shè)備(dspd)、可編程邏輯器件(pld)、現(xiàn)場可編程門陣列(fpga)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。

在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器504,上述指令可由裝置500的處理器520執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質(zhì)可以是rom、隨機存取存儲器(ram)、cd-rom、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。

本公開實施例提供的裝置,原生層在接收到第一視圖后,將判斷資源池中是否緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),如果資源池中緩存有對應(yīng)的視圖結(jié)構(gòu),則無需重新繪制,可根據(jù)緩存的視圖結(jié)構(gòu)進行頁面顯示。該過程縮短了頁面繪制時間,降低了系統(tǒng)內(nèi)存占用量,大大提升了系統(tǒng)性能。

本公開實施例提供了一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條指令至少一條指令,所述至少一條指令由處理器加載并執(zhí)行以實現(xiàn)圖2或圖3所述的頁面顯示方法。

本公開實施例提供的計算機可讀存儲介質(zhì),原生層在接收到第一視圖后,將判斷資源池中是否緩存有第一視圖的視圖結(jié)構(gòu)數(shù)據(jù)對應(yīng)的視圖結(jié)構(gòu),如果資源池中緩存有對應(yīng)的視圖結(jié)構(gòu),則無需重新繪制,可根據(jù)緩存的視圖結(jié)構(gòu)進行頁面顯示。該過程縮短了頁面繪制時間,降低了系統(tǒng)內(nèi)存占用量,大大提升了系統(tǒng)性能。

本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的公開后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。

應(yīng)當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1