本發(fā)明實施例涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種頁面控制方法及裝置。
背景技術(shù):
在終端設(shè)備(例如手機(jī)、電腦、電視等)中可以通過瀏覽器或者其它應(yīng)用程序打開網(wǎng)絡(luò)頁面(下文簡稱頁面),一個頁面中可以包括跳轉(zhuǎn)鏈接,用戶可以對跳轉(zhuǎn)鏈接進(jìn)行點擊操作,以實現(xiàn)從一個頁面跳轉(zhuǎn)至另外一個頁面。
在現(xiàn)有技術(shù)中,假設(shè)第一頁面中包括第二頁面對應(yīng)的跳轉(zhuǎn)鏈接,當(dāng)用戶對該跳轉(zhuǎn)鏈接進(jìn)行點擊操作時,終端設(shè)備取消顯示第一頁面,并根據(jù)頁面的配置信息,將第一頁面對應(yīng)的部分頁面信息(例如頁面中的文字信息、圖片信息等)緩存在瀏覽器的緩存中,并通過新的頁面中對第二頁面進(jìn)行顯示。當(dāng)需要從第二頁面返回到第一頁面時,用戶可以在終端設(shè)備中輸入返回操作,終端設(shè)備根據(jù)用戶輸入的返回操作取消顯示第二頁面,并在瀏覽器的緩存中獲取第一頁面的部分頁面信息、向服務(wù)器請求獲取第一頁面對應(yīng)的另一部分頁面信息(例如頁面框架等),根據(jù)在緩存中獲取的部分頁面信息和向服務(wù)器請求的部分頁面信息重新構(gòu)建第一頁面,并對第一頁面進(jìn)行顯示。
然而,在現(xiàn)有技術(shù)中,在進(jìn)行頁面返回時,由于需要在服務(wù)器和瀏覽器的緩存中請求返回頁面對應(yīng)的頁面信息,并根據(jù)返回頁面的頁面信息對返回頁面進(jìn)行重新構(gòu)建,使得需要較長時間才能實現(xiàn)頁面返回,導(dǎo)致頁面返回的效率低下。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種頁面控制方法及裝置,用于提高頁面返回的效率。第一方面,本發(fā)明實施例提供一種頁面控制方法,包括:
在第一頁面中獲取對第二頁面的調(diào)用指令,所述調(diào)用指令用于指示從所述第一頁面跳轉(zhuǎn)至所述第二頁面;
在所述第一頁面中創(chuàng)建嵌套控件,通過所述嵌套控件加載并顯示所述第二頁面,以使所述第二頁面覆蓋所述第一頁面;
接收用戶輸入的、所述第二頁面對應(yīng)的返回操作,根據(jù)所述返回操作,隱藏所述嵌套控件及所述第二頁面,以顯示所述第一頁面。
在一種可能的實施方式中,通過所述嵌套控件加載并顯示所述第二頁面,包括:
獲取所述第二頁面的地址信息;
根據(jù)所述第二頁面的地址信息,向服務(wù)器請求獲取所述第二頁面的頁面信息;
根據(jù)所述第二頁面的頁面信息,在所述嵌套控件中顯示所述第二頁面。
在另一種可能的實施方式中,在通過所述嵌套控件加載并顯示所述第二頁面之后,還包括:
確定所述第二頁面對應(yīng)的歷史記錄棧,所述歷史記錄棧的當(dāng)前棧頂元素為所述第一頁面對應(yīng)的第一歷史記錄;
生成所述第二頁面對應(yīng)的第二歷史記錄,所述第二歷史記錄和所述第一歷史記錄中包括的URL地址相同,所述第二歷史記錄中包括的哈希值與所述第一歷史記錄中包括的哈希值不同;
將所述第二歷史記錄存放至所述歷史記錄棧。
在另一種可能的實施方式中,根據(jù)所述返回操作,隱藏所述嵌套控件及所述第二頁面,包括:
根據(jù)所述返回操作,在所述歷史記錄棧中獲取位于棧頂?shù)乃龅诙v史記錄;
對所述歷史記錄棧中對位于棧頂?shù)乃龅诙v史記錄執(zhí)行出棧操作;
在所述歷史記錄棧中獲取位于棧頂?shù)乃龅谝粴v史記錄;
確定所述第一歷史記錄和所述第二歷史記錄中的URL地址相同,且所述第一歷史記錄和所述第二歷史記錄中的哈希值不同,則隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面。
在另一種可能的實施方式中,所述隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面,包括:
觸發(fā)在所述第一頁面中注冊的hashchange事件;
通過所述hashchange事件隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面。
在另一種可能的實施方式中,所述嵌套控件為iframe控件。
第二方面,本發(fā)明實施例提供一種頁面控制裝置,包括:
獲取模塊,用于在第一頁面中獲取對第二頁面的調(diào)用指令,所述調(diào)用指令用于指示從所述第一頁面跳轉(zhuǎn)至所述第二頁面;
創(chuàng)建模塊,用于在所述第一頁面中創(chuàng)建嵌套控件;
顯示模塊,用于通過所述嵌套控件加載并顯示所述第二頁面,以使所述第二頁面覆蓋所述第一頁面;
接收模塊,用于接收用戶輸入的、所述第二頁面對應(yīng)的返回操作;
所述顯示模塊還用于,根據(jù)所述返回操作,隱藏所述嵌套控件及所述第二頁面,以顯示所述第一頁面。
在一種可能的實施方式中,所述顯示模塊具體用于:
獲取所述第二頁面的地址信息;
根據(jù)所述第二頁面的地址信息,向服務(wù)器請求獲取所述第二頁面的頁面信息;
根據(jù)所述第二頁面的頁面信息,在所述嵌套控件中顯示所述第二頁面。
在另一種可能的實施方式中,所述裝置還包括確定模塊、生成模塊和存儲模塊,其中,
所述確定模塊用于,在所述顯示模塊通過所述嵌套控件加載并顯示所述第二頁面之后,確定所述第二頁面對應(yīng)的歷史記錄棧,所述歷史記錄棧的當(dāng)前棧頂元素為所述第一頁面對應(yīng)的第一歷史記錄;
所述生成模塊用于,生成所述第二頁面對應(yīng)的第二歷史記錄,所述第二歷史記錄和所述第一歷史記錄中包括的URL地址相同,所述第二歷史記錄中包括的哈希值與所述第一歷史記錄中包括的哈希值不同;
所述存儲模塊用于,將所述第二歷史記錄存放至所述歷史記錄棧。
在另一種可能的實施方式中,所述顯示模塊具體用于:
根據(jù)所述返回操作,在所述歷史記錄棧中獲取位于棧頂?shù)乃龅诙v史記錄;
對所述歷史記錄棧中對位于棧頂?shù)乃龅诙v史記錄執(zhí)行出棧操作;
在所述歷史記錄棧中獲取位于棧頂?shù)乃龅谝粴v史記錄;
確定所述第一歷史記錄和所述第二歷史記錄中的URL地址相同,且所述第一歷史記錄和所述第二歷史記錄中的哈希值不同,則隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面。
在另一種可能的實施方式中,所述顯示模塊具體用于:
觸發(fā)在所述第一頁面中注冊的hashchange事件;
通過所述hashchange事件隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面。
在另一種可能的實施方式中,所述嵌套控件為iframe控件。
本發(fā)明實施例提供的頁面控制方法及裝置,當(dāng)頁面控制裝置在第一頁面中獲取對第二頁面的調(diào)用指令之后,頁面控制裝置在第一頁面中創(chuàng)建嵌套控件,并通過嵌套控件加載并顯示第二頁面,以使第二頁面覆蓋第一頁面;當(dāng)頁面控制裝置接收到用戶輸入的、第二頁面對應(yīng)的返回操作之后,根據(jù)該返回操作,隱藏嵌套控件及第二頁面,以使被覆蓋的第一頁面被顯示出來。在上述過程中,在第一頁面中調(diào)用第二頁面時,無需創(chuàng)建新的頁面對第二頁面進(jìn)行顯示,而是將第二頁面顯示在第一頁面的嵌套控件中,這樣,當(dāng)從第二頁面返回第一頁面時,只需隱藏第二頁面即可對第一頁面進(jìn)行顯示,無需重新構(gòu)建第一頁面,進(jìn)而提高頁面返回的效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的頁面控制方法的應(yīng)用場景示意圖;
圖2為本發(fā)明提供的頁面控制方法的流程示意圖;
圖3為本發(fā)明提供的生成第二歷史記錄方法的流程示意圖;
圖4為本發(fā)明提供的隱藏嵌套控件方法的流程示意圖;
圖5為本發(fā)明提供的歷史記錄棧的結(jié)構(gòu)示意圖;
圖6為本發(fā)明提供的頁面控制裝置的結(jié)構(gòu)示意圖一;
圖7為本發(fā)明提供的頁面控制裝置的結(jié)構(gòu)示意圖二。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明提供的頁面控制方法的應(yīng)用場景示意圖,請參見圖1,包括第一頁面101和第二頁面102。在第一頁面101中包括第二頁面102對應(yīng)的跳轉(zhuǎn)鏈接M,用戶可以對該跳轉(zhuǎn)鏈接M進(jìn)行點擊操作,以使從第一頁面101跳轉(zhuǎn)至第二頁面102。在本申請中,當(dāng)用戶對跳轉(zhuǎn)鏈接M進(jìn)行點擊操作時,在第一頁面101中創(chuàng)建嵌套控件,并在該嵌套控件中對第二頁面102進(jìn)行顯示,顯示在嵌套控件中的第二頁面102將第一頁面101覆蓋。當(dāng)用戶需要從第二頁面102返回至第一頁面101時,用戶可以在第二頁面102中輸入返回操作,終端設(shè)備可以根據(jù)該返回操作,取消顯示第二頁面102,以使被覆蓋的第一頁面101顯示出來。在本申請中,由于嵌套控件為第一頁面中的一部分,通過控制該嵌套控件的狀態(tài)(顯示狀態(tài)或隱藏狀態(tài)),可以實現(xiàn)在第一頁面和第二頁面之間進(jìn)行切換,且在從第二頁面返回第一頁面時,無需重新根據(jù)第一頁面的頁面信息構(gòu)建第一頁面,進(jìn)而提高頁面返回的效率。
需要說明的是,第一頁面和第二頁面均為終端設(shè)備可顯示的任意一個頁面,為了便于描述,將頁面跳轉(zhuǎn)之前的頁面稱之為第一頁面,將頁面跳轉(zhuǎn)之后的頁面稱之為第二頁面。
下面,通過具體實施例對本申請所示的技術(shù)方案進(jìn)行詳細(xì)說明。需要說明的是,下面這幾個具體的實施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實施例中不再贅述。
圖2為本發(fā)明提供的頁面控制方法的流程示意圖,請參見圖2,該方法可以包括:
S201、在第一頁面中獲取對第二頁面的調(diào)用指令,調(diào)用指令用于指示從第一頁面跳轉(zhuǎn)至第二頁面;
S202、在第一頁面中創(chuàng)建嵌套控件,通過嵌套控件加載并顯示第二頁面,以使第二頁面覆蓋第一頁面;
S203、接收用戶輸入的、第二頁面對應(yīng)的返回操作,根據(jù)返回操作,隱藏嵌套控件及第二頁面,以顯示第一頁面。
本發(fā)明實施例的執(zhí)行主體可以為頁面控制裝置。可選的,該頁面控制裝置可以通過軟件和/或硬件實現(xiàn)??蛇x的,該頁面控制裝置可以設(shè)置在終端設(shè)備中。
在本發(fā)明實施例中,在第一頁面中包括第二頁面對應(yīng)的跳轉(zhuǎn)指令,在終端設(shè)備當(dāng)前顯示的頁面為第一頁面時,用戶可以在第一頁面中對該跳轉(zhuǎn)指令進(jìn)行點擊操作,以使頁面控制裝置獲取用于指示從第一頁面跳轉(zhuǎn)至第二頁面的調(diào)用指令。
在頁面控制裝置獲取到調(diào)用指令之后,頁面控制裝置在第一頁面中創(chuàng)建嵌套控件,并通過嵌套控件加載并顯示第二頁面,以使第二頁面覆蓋第一頁面。需要說明的是,在對第二頁面進(jìn)行顯示時,并未創(chuàng)建新的頁面,而是將第二頁面作為第一頁面的一部分進(jìn)行顯示,且第一頁面的當(dāng)前狀態(tài)仍為顯示狀態(tài),只是第二頁面將第一頁面覆蓋,而使得用戶無法看到第一頁面??蛇x的,在跳轉(zhuǎn)鏈接中通常包括第二頁面的地址信息,該地址信息可以為第二頁面的統(tǒng)一資源定位符(Uniform Resource Locator,簡稱URL),相應(yīng)的,頁面控制裝置可以在跳轉(zhuǎn)鏈接中獲取第二頁面的地址信息,并根據(jù)該第二頁面的地址信息,向服務(wù)器請求獲取第二頁面的頁面信息,并根據(jù)第二頁面的頁面信息,在嵌套控件中顯示第二頁面。可選的,該嵌套控件可以為iframe控件,若第一頁面是通過預(yù)設(shè)應(yīng)用程序打開的,則通過iframe控件不但可以調(diào)用該預(yù)設(shè)應(yīng)用程序內(nèi)的第二頁面,還可以調(diào)用該預(yù)設(shè)應(yīng)用程序外的第二頁面。
當(dāng)用戶需要從第二頁面返回至第一頁面時,用戶可以在終端設(shè)備中輸入第二頁面對應(yīng)的返回操作,例如,用戶可以對終端設(shè)備的返回按鍵進(jìn)行點擊操作。在頁面控制裝置接收到用戶輸入的、第二頁面對應(yīng)的返回操作之后,頁面控制裝置可以根據(jù)該返回操作,隱藏嵌套控件及顯示在嵌套控件中的第二頁面,以使被覆蓋的第一頁面顯示出來。在上述過程中,在從第二頁面返回第一頁面時,無需重新構(gòu)建第一頁面,因此,在從第二頁面返回第一頁面時,終端設(shè)備顯示的、第一頁面中的內(nèi)容仍為頁面跳轉(zhuǎn)之前用戶瀏覽的內(nèi)容,避免了現(xiàn)有技術(shù)中在進(jìn)行頁面返回時,由于需要對返回的頁面進(jìn)行重新構(gòu)建而導(dǎo)致返回頁面頂部的問題。例如,假設(shè)第一頁面中包括的內(nèi)容較多(例如兩頁以上),若在第一頁面的A位置跳轉(zhuǎn)至第二頁面,當(dāng)從第二頁面返回第一頁面時,終端設(shè)備顯示的仍然為第一頁面的A位置對應(yīng)的內(nèi)容,以使用戶可以從跳轉(zhuǎn)位置繼續(xù)瀏覽第一頁面,避免在返回第一頁面時返回第一頁面的頂部的問題,進(jìn)而提高用戶對頁面的閱讀體驗。
本發(fā)明實施例提供的頁面控制方法,當(dāng)頁面控制裝置在第一頁面中獲取對第二頁面的調(diào)用指令之后,頁面控制裝置在第一頁面中創(chuàng)建嵌套控件,并通過嵌套控件加載并顯示第二頁面,以使第二頁面覆蓋第一頁面;當(dāng)頁面控制裝置接收到用戶輸入的、第二頁面對應(yīng)的返回操作之后,根據(jù)該返回操作,隱藏嵌套控件及第二頁面,以使被覆蓋的第一頁面被顯示出來。在上述過程中,在第一頁面中調(diào)用第二頁面時,無需創(chuàng)建新的頁面對第二頁面進(jìn)行顯示,而是將第二頁面顯示在第一頁面的嵌套控件中,這樣,當(dāng)從第二頁面返回第一頁面時,只需隱藏第二頁面即可對第一頁面進(jìn)行顯示,無需重新構(gòu)建第一頁面,進(jìn)而提高頁面返回的效率。
在圖2所示實施例的基礎(chǔ)上,可選的,在頁面控制裝置通過嵌套控件顯示第二頁面之后,還可以生成第二頁面對應(yīng)的第二歷史記錄,以使頁面控制裝置可以通過圖4實施例所示的方式對嵌套控件進(jìn)行隱藏。具體的,請參見圖3-圖4所示的實施例。
圖3為本發(fā)明提供的生成第二歷史記錄方法的流程示意圖,請參見圖3,該方法可以包括:
S301、確定第二頁面對應(yīng)的歷史記錄棧,歷史記錄棧的當(dāng)前棧頂元素為第一頁面對應(yīng)的第一歷史記錄;
S302、生成第二頁面對應(yīng)的第二歷史記錄,第二歷史記錄和第一歷史記錄中包括的URL地址相同,第二歷史記錄中包括的哈希值與第一歷史記錄中包括的哈希值不同;
S303、將第二歷史記錄存放至歷史記錄棧。
在圖3所示的實施例中,對頁面的一次完整的瀏覽過程對應(yīng)一個歷史記錄棧,例如,一次完整的瀏覽過程可以為從進(jìn)入應(yīng)用程序首頁進(jìn)行瀏覽直至退出至應(yīng)用程序首頁的過程,或者,一次完整的瀏覽過程也可以為從啟動應(yīng)用程序(例如瀏覽器等)到退出應(yīng)用程序的過程。在歷史記錄棧中按照用戶的瀏覽順序保存著已瀏覽的、各個頁面的地址信息。用戶每打開一個新的頁面,則將新的頁面的地址信息入棧,用戶每返回一次上一頁面,則將位于棧頂?shù)牡刂沸畔⒊鰲!?/p>
在實際應(yīng)用過程中,在頁面控制裝置通過嵌套控件顯示第二頁面之后,頁面控制裝置確定第二頁面對應(yīng)的歷史記錄棧,在當(dāng)前時刻,歷史記錄棧的棧頂元素為第一頁面對應(yīng)的第一歷史記錄??蛇x的,該第一歷史記錄可以為第一頁面的URL,也可以為第一頁面的根頁面的URL與第一頁面的哈希值的組合,根頁面可以為應(yīng)用程序的首頁面。具體的,若第一頁面為根頁面,則第一歷史記錄為第一頁面的URL,若第一頁面不是根頁面,則第一歷史記錄為根據(jù)頁面的URL和第一頁面的哈希值的組合??蛇x的,第一頁面的哈希值可以唯一標(biāo)識該第一頁面,可選的,該哈希值可以通過字符串表示。
頁面控制裝置生成第二頁面對應(yīng)的第二歷史記錄,其中,該第二歷史記錄和第一歷史記錄中包括的URL地址相同,第二歷史記錄中包括的哈希值與第一歷史記錄中包括的哈希值不同??蛇x的,若第一頁面為根頁面,則第一歷史記錄中的哈希值部分為空,第二歷史記錄中的URL地址則為第一頁面的URL地址。可選的,第二頁面的哈希值可以唯一標(biāo)識該第二頁面,可選的,該哈希值可以通過字符串表示。
在生成第二頁面對應(yīng)的第二歷史記錄之后,將第二歷史記錄存放至歷史記錄棧,以使第二歷史記錄位于歷史記錄棧的棧頂位置。
在圖3所示實施例的基礎(chǔ)上,可選的,可以通過如下可行的實現(xiàn)方式隱藏嵌套控件,具體的,請參見圖4所示的實施例。
圖4為本發(fā)明提供的隱藏嵌套控件方法的流程示意圖,請參見圖4,該方法可以包括:
S401、根據(jù)返回操作,在歷史記錄棧中獲取位于棧頂?shù)牡诙v史記錄;
S402、對歷史記錄棧中對位于棧頂?shù)牡诙v史記錄執(zhí)行出棧操作;
S403、在歷史記錄棧中獲取位于棧頂?shù)牡谝粴v史記錄;
S404、確定第一歷史記錄和第二歷史記錄中的URL地址相同,且第一歷史記錄和第二歷史記錄中的哈希值不同,則隱藏嵌套控件、及顯示在嵌套控件中的第二頁面。
在實際應(yīng)用過程中,在頁面控制裝置接收到用戶輸入的、第二頁面對應(yīng)的返回操作之后,頁面控制裝置在歷史記錄棧中獲取位于棧頂?shù)牡诙v史記錄,并對歷史記錄棧中的第二歷史記錄執(zhí)行出棧操作。
在頁面控制裝置對第二歷史記錄執(zhí)行出棧操作之后,歷史記錄棧中的棧頂元素為第一歷史記錄。頁面控制裝置在歷史記錄棧中獲取位于棧頂?shù)牡谝粴v史記錄。
由于在生成第二歷史操作時,第二歷史記錄與第一歷史記錄中的URL地址相同,第二歷史記錄與第一歷史記錄中的哈希值不同,因此,頁面控制裝置可以確定第一歷史記錄和第二歷史記錄中的URL地址相同,且第一歷史記錄和第二歷史記錄中的哈希值不同,則隱藏嵌套控件、及顯示在嵌套控件中的第二頁面。由于第二歷史記錄和第一歷史記錄中的URL相同,則在從第二頁面返回第一頁面時,無需對第一頁面進(jìn)行刷新,在隱藏嵌套控件之后,直接對之前被覆蓋的第一頁面進(jìn)行顯示即可。
可選的,可以在第一頁面中注冊hashchange事件,該hashchange事件的觸發(fā)條件為在從第二頁面返回第一頁面時,第一歷史記錄和第二歷史記錄中的URL地址相同,且第一歷史記錄和第二歷史記錄中的哈希值不同,該hashchange事件的功能為對嵌套控件進(jìn)行隱藏操作,在嵌套控件被隱藏之后,嵌套控件中顯示的第二頁面則被隱藏。
在圖3-圖4所示的實施例中,為了便于對頁面顯示流程進(jìn)行控制,在對第二頁面進(jìn)行顯示之后,生成第二頁面對應(yīng)的第二歷史記錄,并對第二歷史記錄進(jìn)行入棧操作,且第二歷史記錄和第一歷史記錄中的URL地址相同、哈希值不同,這樣,在從第二頁面返回第一頁面時,由于第二歷史記錄和第一歷史記錄中的URL相同,則在從第二頁面返回第一頁面時,無需對第一頁面進(jìn)行刷新,在隱藏嵌套控件之后,直接對之前被覆蓋的第一頁面進(jìn)行顯示即可,進(jìn)而提高頁面返回的效率。
下面,結(jié)合圖5所示的歷史記錄棧,對上述實施例所示的方法進(jìn)行詳細(xì)說明。
圖5為本發(fā)明提供的歷史記錄棧的結(jié)構(gòu)示意圖,請參見圖5,包括歷史記錄棧501a-歷史記錄棧503a、及頁面501b-503b,其中,
假設(shè)可以通過應(yīng)用程序?qū)撁孢M(jìn)行瀏覽,該應(yīng)用程序的首頁面為頁面1(根頁面),當(dāng)用戶通該應(yīng)用程序打開頁面1時,由于還不存在頁面1對應(yīng)的歷史記錄棧,則創(chuàng)建頁面1對應(yīng)的歷史記錄棧,并將頁面1對應(yīng)的地址信息存放至該歷史記錄棧,可選的,該頁面1的地址信息可以為該頁面1的URL地址,假設(shè)頁面1的URL地址為URL1,則將URL1存放至歷史記錄棧,此時,請參見歷史記錄棧501a,歷史記錄棧中包括URL1,相應(yīng)的,終端設(shè)備中顯示的頁面如頁面501b所示。
用戶可以在頁面1中輸入搜索詞或者對跳轉(zhuǎn)鏈接進(jìn)行點擊操作,以請求從頁面1跳轉(zhuǎn)至頁面2,此時,在頁面1中創(chuàng)建嵌套控件1,通過該嵌套控件1加載并顯示頁面2,然后,生成頁面2對應(yīng)的第二歷史記錄,在第二歷史記錄中包括URL1和第二頁面對應(yīng)的哈希值,假設(shè)第二頁面對應(yīng)的哈希值為V1,則第二頁面對應(yīng)的第二歷史記錄為URL1+V1,并將第二歷史記錄入棧,此時,歷史記錄棧如歷史記錄棧502b所示,相應(yīng)的,終端設(shè)備中顯示的頁面如頁面502b所示,在頁面502b中,嵌套控件1為頁面1的一部分,且嵌套控件1將頁面1覆蓋,以使用戶只能在終端設(shè)備中看到顯示在嵌套控件1中的頁面2。
用戶還可以對頁面2中的跳轉(zhuǎn)鏈接進(jìn)行點擊操作,以請求從頁面2跳轉(zhuǎn)至頁面3,此時,在頁面3中創(chuàng)建嵌套控件3,通過該嵌套控件3加載并顯示頁面4,然后,生成頁面4對應(yīng)的第三歷史記錄,在第三歷史記錄中包括URL1和第三頁面對應(yīng)的哈希值,假設(shè)第三頁面對應(yīng)的哈希值為V2,則第三頁面對應(yīng)的第三歷史記錄為URL1+V2,并將第三歷史記錄入棧,此時,歷史記錄棧如歷史記錄棧503c所示,相應(yīng)的,終端設(shè)備中顯示的頁面如頁面503c所示,在頁面503c中,嵌套控件2為頁面2的一部分,位于嵌套控件1中的頁面2為頁面1的一部分,位于嵌套控件1中的頁面2將頁面1覆蓋,位于嵌套控件2中的頁面3將頁面2覆蓋,以使用戶只能在終端設(shè)備中看到顯示在嵌套控件2中的頁面3。
當(dāng)用戶需要從頁面3返回頁面2時,用戶可以輸入頁面3對應(yīng)的返回操作,在頁面控制裝置接收到用戶輸入的返回操作之后,頁面控制裝置在歷史記錄棧503c中獲取位于棧頂?shù)牡谌龤v史記錄(URL1+V2),并將第三歷史記錄出棧,此時,歷史記錄棧如歷史記錄棧502b所示;頁面控制裝置判斷出棧的第三歷史記錄(URL1+V2)和當(dāng)前位于棧頂?shù)牡诙v史記錄(URL1+V1)中的URL地址相同、哈希值不同,則隱藏當(dāng)前顯示嵌套控件2,以使嵌套控件2中顯示頁面3也被隱藏,此時,終端設(shè)備中顯示的頁面如頁面503b所示,相應(yīng)的,終端設(shè)備當(dāng)前顯示出來的頁面為嵌套控件1中的頁面2。
當(dāng)用戶需要從頁面2返回頁面1時,用戶可以輸入頁面2對應(yīng)的返回操作,在頁面控制裝置接收到用戶輸入的返回操作之后,頁面控制裝置在歷史記錄棧503b中獲取位于棧頂?shù)牡诙v史記錄(URL1+V1),并將第二歷史記錄出棧,此時,歷史記錄棧如歷史記錄棧502a所示;頁面控制裝置判斷出棧的第二歷史記錄(URL1+V1)和當(dāng)前位于棧頂?shù)牡谝粴v史記錄(URL1)中的URL地址相同、哈希值不同(第一歷史記錄的哈希值為空),則隱藏當(dāng)前顯示嵌套控件1,以使嵌套控件1中顯示頁面2也被隱藏,此時,終端設(shè)備中顯示的頁面如頁面503a所示,相應(yīng)的,終端設(shè)備當(dāng)前顯示出來的頁面為頁面1。
圖6為本發(fā)明提供的頁面控制裝置的結(jié)構(gòu)示意圖一,請參見圖6,該裝置可以包括:
獲取模塊601,用于在第一頁面中獲取對第二頁面的調(diào)用指令,所述調(diào)用指令用于指示從所述第一頁面跳轉(zhuǎn)至所述第二頁面;
創(chuàng)建模塊602,用于在所述第一頁面中創(chuàng)建嵌套控件;
顯示模塊603,用于通過所述嵌套控件加載并顯示所述第二頁面,以使所述第二頁面覆蓋所述第一頁面;
接收模塊604,用于接收用戶輸入的、所述第二頁面對應(yīng)的返回操作;
所述顯示模塊604還用于,根據(jù)所述返回操作,隱藏所述嵌套控件及所述第二頁面,以顯示所述第一頁面。
本發(fā)明實施例提供的頁面控制裝置可以執(zhí)行上述方法實施例所示的技術(shù)方案,其實現(xiàn)原理以及有益效果類似,此處不再進(jìn)行贅述。
在一種可能的實施方式中,所述顯示模塊604具體用于:
獲取所述第二頁面的地址信息;
根據(jù)所述第二頁面的地址信息,向服務(wù)器請求獲取所述第二頁面的頁面信息;
根據(jù)所述第二頁面的頁面信息,在所述嵌套控件中顯示所述第二頁面。
圖7為本發(fā)明提供的頁面控制裝置的結(jié)構(gòu)示意圖二,在圖6所示實施例的基礎(chǔ)上,請參見圖7,所述裝置還包括確定模塊605、生成模塊606和存儲模塊607,其中,
所述確定模塊605用于,在所述顯示模塊603通過所述嵌套控件加載并顯示所述第二頁面之后,確定所述第二頁面對應(yīng)的歷史記錄棧,所述歷史記錄棧的當(dāng)前棧頂元素為所述第一頁面對應(yīng)的第一歷史記錄;
所述生成模塊606用于,生成所述第二頁面對應(yīng)的第二歷史記錄,所述第二歷史記錄和所述第一歷史記錄中包括的URL地址相同,所述第二歷史記錄中包括的哈希值與所述第一歷史記錄中包括的哈希值不同;
所述存儲模塊607用于,將所述第二歷史記錄存放至所述歷史記錄棧。
在另一種可能的實施方式中,所述顯示模塊具604體用于:
根據(jù)所述返回操作,在所述歷史記錄棧中獲取位于棧頂?shù)乃龅诙v史記錄;
對所述歷史記錄棧中對位于棧頂?shù)乃龅诙v史記錄執(zhí)行出棧操作;
在所述歷史記錄棧中獲取位于棧頂?shù)乃龅谝粴v史記錄;
確定所述第一歷史記錄和所述第二歷史記錄中的URL地址相同,且所述第一歷史記錄和所述第二歷史記錄中的哈希值不同,則隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面。
在另一種可能的實施方式中,所述顯示模塊604具體用于:
觸發(fā)在所述第一頁面中注冊的hashchange事件;
通過所述hashchange事件隱藏所述嵌套控件、及顯示在所述嵌套控件中的所述第二頁面。
在另一種可能的實施方式中,所述嵌套控件為iframe控件。
本發(fā)明實施例提供的頁面控制裝置可以執(zhí)行上述方法實施例所示的技術(shù)方案,其實現(xiàn)原理以及有益效果類似,此處不再進(jìn)行贅述。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。