本申請涉及軟件處理技術領域,更具體地說,涉及一種頁面顯示方法及裝置。
背景技術:
隨著智能終端的發展,智能手機、IPAD等智能終端越來越多的走近用戶的日常生活。智能終端上裝載有多種應用,給用戶的生活帶來更豐富的體驗和樂趣。
現有技術中,用戶在智能終端實現頁面的切換顯示時,需要從內存中讀取待顯示頁面的根布局對象,根布局對象描述了頁面所包含的控件,因此在內存中讀取根布局對象后,可以據此查找到頁面所有的控件,進而將控件加載在頁面上,實現頁面的顯示。當用戶退出當前頁面并隨后想要再次打開該頁面時,需要再次從內存中讀取該頁面的根布局對象,重復上述過程。
由于從內存中讀取數據的過程需要耗費一定的時間,因此現有技術在顯示頁面時存在耗時長、用戶體驗差的問題。
技術實現要素:
有鑒于此,本申請提供了一種頁面顯示方法及裝置,用于解決現有頁面顯示過程存在耗時長、用戶體驗差的問題。
為了實現上述目的,現提出的方案如下:
一種頁面顯示方法,包括:
接收用戶打開第一頁面的請求;
判斷所述第一頁面是否被打開過;
若是,在緩存中查找隱藏的第一頁面及其對應的根布局對象,所述隱藏的第一頁面為首次打開第一頁面后在退出第一頁面時隱藏在緩存中的第一頁 面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件;
判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同;
若不同,則利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面。
一種頁面顯示裝置,包括:
頁面打開請求接收單元,用于接收用戶打開第一頁面的請求;
頁面打開記錄判斷單元,用于判斷所述第一頁面是否被打開過;
緩存查詢單元,用于在所述頁面打開記錄判斷單元的判斷結果為是時,在緩存中查找隱藏的第一頁面及其對應的根布局對象,所述隱藏的第一頁面為首次打開第一頁面后在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件;
數據內容判斷單元,用于判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同;
第一根布局對象利用單元,用于在所述數據內容判斷單元的判斷結果為否時,利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
第一頁面顯示單元,用于將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面。
從上述的技術方案可以看出,本申請實施例提供的頁面顯示方法,在首次打開第一頁面時,從內存中讀取第一頁面的根布局對象并保存在緩存中,同時在退出第一頁面時將第一頁面隱藏在緩存中,進而當再次接收到用戶請求打開第一頁面時,從緩存中查找隱藏的第一頁面及其對應的根布局對象,判斷第一頁面當前的數據內容與隱藏的第一頁面的數據內容是否相同,如果不同,則利用隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據,將第一頁面當前的數據內容填充至所述 控件中,顯示隱藏的第一頁面。本申請在首次打開第一頁面時將根布局對象保存在緩存中,同時在退出第一頁面時將第一頁面隱藏在緩存中,因此在后續再次打開第一頁面時,可以直接從緩存中調取根布局對象,相比于從內存中讀取根布局對象,時間大大縮短。
同時,本申請利用第一頁面當前的數據內容,對隱藏的第一頁面中控件內的數據進行更新,然后進行顯示,使得顯示的第一頁面為內容數據更新后的第一頁面。
附圖說明
為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本申請實施例提供的一種頁面顯示方法流程圖;
圖2為本申請實施例公開的另一種頁面顯示方法流程圖;
圖3為本申請實施例公開的又一種頁面顯示方法流程圖;
圖4為本申請實施例公開的又一種頁面顯示方法流程圖;
圖5為本申請實施例公開的又一種頁面顯示方法流程圖;
圖6為本申請實施例公開的一種頁面顯示裝置結構示意圖;
圖7為本申請實施例公開的一種終端硬件結構示意圖。
具體實施方式
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
對于某一個頁面而言,其在第一次打開及后續再次打開時,頁面上的控件是固定不變的,也即頁面的根布局對象是不變的,可變的是控件內顯示的數據內容,因此本申請實施例提供的頁面顯示方法中,在首次打開第一頁面 后,將根布局對象及第一頁面隱藏到緩存中,后續再次打開第一頁面時,直接從緩存中讀取,并利用第一頁面當前的數據內容替換掉隱藏的第一頁面中控件的數據,實現了頁面快速打開。
參見圖1,圖1為本申請實施例提供的一種頁面顯示方法流程圖。
如圖1所示,該方法包括:
步驟S100、接收用戶打開第一頁面的請求;
用戶可以在非第一頁面的其它頁面中提交第一頁面的打開請求,例如用戶在其它頁面中點擊某個與第一頁面鏈接的按鈕、圖標等。
步驟S110、判斷所述第一頁面是否被打開過,若是,執行步驟S120;
步驟S120、在緩存中查找隱藏的第一頁面及其對應的根布局對象;
其中,所述隱藏的第一頁面為首次打開第一頁面后,在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件。
上述判斷第一頁面是否被打開過的過程,可以是在緩存中查找是否存在隱藏的第一頁面,如果能夠查找到,則代表第一頁面被打開過,否則,代表第一頁面未被打開過。當然,除了這種方式之外,還可以采用其它的判斷方式,例如對每一個打開過的頁面進行記錄,通過查詢頁面打開記錄即可確定第一頁面是否被打開過。
步驟S130、判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同,若不同,執行步驟S140;
具體地,頁面的數據內容為頁面內各控件內的數據內容,本步驟中對比數據內容時,判斷第一頁面當前各控件的數據內容與隱藏的第一頁面上各控件的數據是否相同。
步驟S140、利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
通過第一頁面的根布局對象,能夠找到隱藏的第一頁面所包含的各個控件。對于查找到的各個控件,將其內的數據清空。
步驟S150、將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面。
由于上一步驟中已經將控件內數據進行清空,本步驟中將第一頁面當前的數據內容填充到控件中,實現控件內容的更新。
本申請實施例提供的頁面顯示方法,在首次打開第一頁面時,從內存中讀取第一頁面的根布局對象并保存在緩存中,同時在退出第一頁面時將第一頁面隱藏在緩存中,進而當再次接收到用戶請求打開第一頁面時,從緩存中查找隱藏的第一頁面及其對應的根布局對象,判斷第一頁面當前的數據內容與隱藏的第一頁面的數據內容是否相同,如果不同,則利用隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據,將第一頁面當前的數據內容填充至所述控件中,顯示隱藏的第一頁面。本申請在首次打開第一頁面時將根布局對象保存在緩存中,同時在退出第一頁面時將第一頁面隱藏在緩存中,因此在后續再次打開第一頁面時,可以直接從緩存中調取根布局對象,相比于從內存中讀取根布局對象,時間大大縮短。
同時,本申請利用第一頁面當前的數據內容,對隱藏的第一頁面中控件內的數據進行更新,然后進行顯示,使得顯示的第一頁面為內容數據更新后的第一頁面。
接下來,按照軟件底層邏輯對本申請方案進行描述。
創建一個類C,在此類的初始化方法中定義布局對象,根據外部傳入的布局對象來賦值,在此類的初始化方法中修改傳統的查找控件的方式,把原本的從內存中尋找控件對象,改為從傳入的布局對象中尋找控件對象,同時將外部傳入的頁面數據顯示到控件上。
在頁面A中,如果是第一次打開頁面B,則調用系統添加頁面B的方法,在頁面B中實現類C,從內存中頁面B的根布局對象RootView并傳給類C,類C能夠根據此RootView找到頁面B中所有的控件對象,并將頁面B的內容數據填充到控件上,完成后交給系統顯示。
在退出頁面B進入頁面A時,隱藏頁面B,在緩存中保存根布局對象RootView,顯示頁面A。這里,由于需要對頁面B進行隱藏,因此在創建頁面B時可以使頁面B繼承于Fragment組件,利用Fragment組件可以隱藏/顯示的特性。
在頁面A中第二次打開頁面B時,調用系統顯示頁面B的方法,在B頁面中實現類C,將緩存中保存的根布局對象RootView傳給類C,通過RootView確定隱藏的頁面B上的所有控件。判斷頁面B當前新的數據內容與隱藏頁面B上的數據內容是否相同,也即頁面B的數據內容是否發生改變,如果未發生改變,則直接顯示隱藏的頁面B,如果發生了改變,則清空控件內的數據,傳入頁面B當前的新的數據內容,交給系統顯示。
參見圖2,圖2為本申請實施例公開的另一種頁面顯示方法流程圖。
如圖2所示,該方法包括:
步驟S200、接收用戶打開第一頁面的請求;
用戶可以在非第一頁面的其它頁面中提交第一頁面的打開請求,例如用戶在其它頁面中點擊某個與第一頁面鏈接的按鈕、圖標等。
步驟S210、判斷所述第一頁面是否被打開過,若是,執行步驟S220;
步驟S220、在緩存中查找隱藏的第一頁面及其對應的根布局對象;
其中,所述隱藏的第一頁面為首次打開第一頁面后,在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件。
步驟S230、判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同,若不同,執行步驟S240,若相同,執行步驟S260;
具體地,頁面的數據內容為頁面內各控件內的數據內容,本步驟中對比數據內容時,判斷第一頁面當前各控件的數據內容與隱藏的第一頁面上各控件的數據是否相同。
步驟S240、利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
步驟S250、將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面;
步驟S260、將隱藏的第一頁面進行顯示。
相比于上一實施例,本實施例增加了在第一頁面的當前數據內容與隱藏的第一頁面的數據內容相同時的處理步驟,即直接將隱藏的第一頁面進行顯示即可。
參見圖3,圖3為本申請實施例公開的又一種頁面顯示方法流程圖。
如圖3所示,該方法包括:
步驟S300、接收用戶打開第一頁面的請求;
用戶可以在非第一頁面的其它頁面中提交第一頁面的打開請求,例如用戶在其它頁面中點擊某個與第一頁面鏈接的按鈕、圖標等。
步驟S310、判斷所述第一頁面是否被打開過,若是,執行步驟S320;
步驟S320、在緩存中查找隱藏的第一頁面及其對應的根布局對象;
其中,所述隱藏的第一頁面為首次打開第一頁面后,在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件。
步驟S330、判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同,若不同,執行步驟S340;
具體地,頁面的數據內容為頁面內各控件內的數據內容,本步驟中對比數據內容時,判斷第一頁面當前各控件的數據內容與隱藏的第一頁面上各控件的數據是否相同。
步驟S340、利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
步驟S350、將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面;
步驟S360、接收用戶從所述第一頁面跳轉到第二頁面的請求;
其中,第二頁面為非第一頁面的其它頁面,可以是第一頁面的上一級頁面。
步驟S370、將當前顯示的第一頁面及其對應的根布局對象隱藏到緩存中,顯示第二頁面。
在第一頁面切換到第二頁面時,本申請將當前顯示的第一頁面以及對應的根布局對象隱藏到緩存中,以便后續再次打開第一頁面時能夠直接在緩存中調取隱藏的第一頁面以及第一頁面對應的根布局對象。相比于現有技術在退出第一頁面時,直接將第一頁面銷毀,本申請在再次打開第一頁面時能夠加快頁面打開速度,提升用戶體驗感。
參見圖4,圖4為本申請實施例公開的又一種頁面顯示方法流程圖。
如圖4所示,該方法包括:
步驟S400、接收用戶打開第一頁面的請求;
用戶可以在非第一頁面的其它頁面中提交第一頁面的打開請求,例如用戶在其它頁面中點擊某個與第一頁面鏈接的按鈕、圖標等。
步驟S410、判斷所述第一頁面是否被打開過,若是,執行步驟S420;
步驟S420、在緩存中查找隱藏的第一頁面及其對應的根布局對象;
其中,所述隱藏的第一頁面為首次打開第一頁面后,在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件。
步驟S430、判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同,若不同,執行步驟S440;
具體地,頁面的數據內容為頁面內各控件內的數據內容,本步驟中對比數據內容時,判斷第一頁面當前各控件的數據內容與隱藏的第一頁面上各控件的數據是否相同。
步驟S440、利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
步驟S450、將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面;
步驟S460、接收用戶從所述第一頁面跳轉到第二頁面的請求;
步驟S470、將當前顯示的第一頁面及其對應的根布局對象隱藏到緩存中,顯示第二頁面;
步驟S480、接收用戶通過所述第二頁面輸入的清除指令;
具體地,本申請可以預先在第二頁面上設置緩存頁面清除圖標,用戶如果想要將緩存中保存的頁面及根布局對象清除掉,則可以點擊該圖標。
步驟S490、將隱藏的第一頁面及其對應的根布局對象從緩存中刪除。
響應用戶的清除指令,將緩存中的第一頁面及根布局對象刪除掉。
本實施例中,提供了用戶清除緩存中保存的頁面和根布局對象的邏輯,當用戶認為后續不需要再次打開第一頁面,或者基于其它原因時,可以將緩存中的第一頁面及根布局對象刪除,從而釋放緩存空間。
進一步地,本申請還可以根據用戶的實際需要,對緩存中第一頁面上的控件進行刪減,從而達到動態調整的目的,在頁面打開速度與緩存空間占用之間尋找一個合適的閾值。
參見圖5,圖5為本申請實施例公開的又一種頁面顯示方法流程圖。
如圖5所示,該方法包括:
步驟S500、接收用戶打開第一頁面的請求;
用戶可以在非第一頁面的其它頁面中提交第一頁面的打開請求,例如用戶在其它頁面中點擊某個與第一頁面鏈接的按鈕、圖標等。
步驟S510、判斷所述第一頁面是否被打開過,若是,執行步驟S520-S550,若否,執行步驟S560-S580;
步驟S520、在緩存中查找隱藏的第一頁面及其對應的根布局對象;
其中,所述隱藏的第一頁面為首次打開第一頁面后,在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件。
步驟S530、判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同,若不同,執行步驟S540;
具體地,頁面的數據內容為頁面內各控件內的數據內容,本步驟中對比數據內容時,判斷第一頁面當前各控件的數據內容與隱藏的第一頁面上各控件的數據是否相同。
步驟S540、利用所述根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
通過第一頁面的根布局對象,能夠找到隱藏的第一頁面所包含的各個控件。對于查找到的各個控件,將其內的數據清空。
步驟S550、將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面;
步驟S560、從內存中讀取所述第一頁面對應的根布局對象;
具體地,在確定第一頁面未被打開過時,直接從內存中調取第一頁面對應的根布局對象。
步驟S570、利用所述第一頁面對應的根布局對象確定所述第一頁面所包含的控件;
步驟S580、將所述第一頁面當前的數據內容填充至所述控件中,將控件顯示在第一頁面上。
相比于上述實施例,本實施例介紹了在確定第一頁面為首次打開時的處理邏輯。在首次打開第一頁面時,需要從內存中調取第一頁面對應的根布局對象,根據根布局對象查找第一頁面所包含的控件,進而將第一頁面當前的數據內容填充到控件中,并進行顯示。
下面對本申請實施例提供的頁面顯示裝置進行描述,下文描述的頁面顯示裝置與上文描述的頁面顯示方法可相互對應參照。
參見圖6,圖6為本申請實施例公開的一種頁面顯示裝置結構示意圖。
如圖6所示,該裝置包括:
頁面打開請求接收單元61,用于接收用戶打開第一頁面的請求;
頁面打開記錄判斷單元62,用于判斷所述第一頁面是否被打開過;
緩存查詢單元63,用于在所述頁面打開記錄判斷單元62的判斷結果為是時,在緩存中查找隱藏的第一頁面及其對應的根布局對象,所述隱藏的第一頁面為首次打開第一頁面后在退出第一頁面時隱藏在緩存中的第一頁面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件;
數據內容判斷單元64,用于判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同;
第一根布局對象利用單元65,用于在所述數據內容判斷單元64的判斷結果為否時,利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
第一頁面顯示單元66,用于將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面。
本申請實施例提供的頁面顯示裝置,在首次打開第一頁面時,從內存中 讀取根布局對象并保存在緩存中,同時在退出第一頁面時將第一頁面隱藏在緩存中,進而當再次接收到用戶請求打開第一頁面時,從緩存中查找隱藏的第一頁面及其對應的根布局對象,判斷第一頁面當前的數據內容與隱藏的第一頁面的數據內容是否相同,如果不同,則利用隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據,將第一頁面當前的數據內容填充至所述控件中,顯示隱藏的第一頁面。本申請在首次打開第一頁面時將根布局對象保存在緩存中,同時在退出第一頁面時將第一頁面隱藏在緩存中,因此在后續再次打開第一頁面時,可以直接從緩存中調取根布局對象,相比于從內存中讀取根布局對象,時間大大縮短。
同時,本申請利用第一頁面當前的數據內容,對隱藏的第一頁面中控件內的數據進行更新,然后進行顯示,使得顯示的第一頁面為內容數據更新后的第一頁面。
可選的,本申請實施例公開了上述頁面顯示裝置的另一種可選結構,在上述基礎上,頁面顯示裝置還可以包括:
第二頁面顯示單元,用于在所述數據內容判斷單元的判斷結果為是時,將隱藏的第一頁面進行顯示。
可選的,本申請實施例公開了上述頁面顯示裝置的又一種可選結構,在上述基礎上,頁面顯示裝置還可以包括:
頁面跳轉請求接收單元,用于接收用戶從所述第一頁面跳轉到第二頁面的請求;
頁面及對象隱藏單元,用于將當前顯示的第一頁面及其對應的根布局對象隱藏到緩存中,顯示第二頁面。
可選的,本申請實施例公開了上述頁面顯示裝置的又一種可選結構,在上述基礎上,頁面顯示裝置還可以包括:
清除指令接收單元,用于接收用戶通過所述第二頁面輸入的清除指令;
頁面及對象清除單元,用于將隱藏的第一頁面及其對應的根布局對象從緩存中刪除。
可選的,本申請實施例公開了上述頁面顯示裝置的又一種可選結構,在上述基礎上,頁面顯示裝置還可以包括:
內存查詢單元,用于在所述頁面打開記錄判斷單元的判斷結果為否時,從內存中讀取所述第一頁面對應的根布局對象;
第二根布局對象利用單元,用于利用所述第一頁面對應的根布局對象確定所述第一頁面所包含的控件;
第三頁面顯示單元,用于將所述第一頁面當前的數據內容填充至所述控件中,將控件顯示在第一頁面上。
本申請實施例還提供一種終端,該終端包括上述所述的頁面顯示裝置。對于頁面顯示裝置的描述可參照上文對應部分描述,此處不再贅述。
本實施例對終端的硬件結構進行介紹,參見圖7,圖7為本申請實施例提供的終端的硬件結構示意圖。如圖7所示,該終端可以包括:
處理器1,通信接口2,存儲器3,通信總線4,和顯示屏5;
其中處理器1、通信接口2、存儲器3和顯示屏5通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括處理器的操作指令。
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本申請實施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體用于:
接收用戶打開第一頁面的請求;
判斷所述第一頁面是否被打開過;
若是,在緩存中查找隱藏的第一頁面及其對應的根布局對象,所述隱藏的第一頁面為首次打開第一頁面后在退出第一頁面時隱藏在緩存中的第一頁 面,所述根布局對象為首次打開所述第一頁面時從內存讀取并保存在緩存中的根布局對象,其中描述了第一頁面所包含的控件;
判斷所述第一頁面當前的數據內容與所述隱藏的第一頁面的數據內容是否相同;
若不同,則利用所述隱藏的第一頁面對應的根布局對象,確定隱藏的第一頁面所包含的控件,同時清除控件內的數據;
將所述第一頁面當前的數據內容填充至所述控件中,并顯示隱藏的第一頁面。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本申請。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。