两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

恢復(fù)瀏覽器中頁面的方法及其裝置與流程

文檔序號:12124539閱讀:1009來源:國知局
恢復(fù)瀏覽器中頁面的方法及其裝置與流程

本發(fā)明涉及計算機領(lǐng)域,特別涉及一種恢復(fù)瀏覽器中頁面的方法及其裝置。



背景技術(shù):

現(xiàn)在隨著使用智能手機人群越來越多、wifi的覆蓋范圍不斷擴大和手機網(wǎng)絡(luò)不斷增速,通過手機瀏覽器瀏覽網(wǎng)頁獲取信息已成為人們?nèi)粘I畹囊徊糠?。隨著HTML5推廣,手機瀏覽器的體驗越來越好,使用頻率也將越來越高。

然而,現(xiàn)有基于CrossWalk內(nèi)核的瀏覽器存在以下弊端:基于CrossWalk內(nèi)核的瀏覽器緩存機制只是緩存頁面的圖像資源,并未對主資源和javascript腳本進行緩存,導(dǎo)致瀏覽過程中,用戶點擊后退或前進時,網(wǎng)頁的主資源需要重新加載和解析,javascript腳本也需要重新加載和解釋,從而影響頁面顯示速度,甚至出現(xiàn)回到頁面的開頭,未能顯示到之前瀏覽的位置的問題,極大的影響了用戶體驗。而緩存了主資源,但并未對javascript腳本做相關(guān)緩存的話,對與一些含有javascript腳本的網(wǎng)頁,則會出現(xiàn)網(wǎng)頁的一些事件丟失問題。



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

為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種恢復(fù)瀏覽器中頁面的方法及其裝置。所述技術(shù)方案如下:

一方面,一種恢復(fù)瀏覽器中頁面的方法,包括以下步驟:

瀏覽器接收指令,打開頁面一;

瀏覽器接收指令,存儲頁面一的腳本狀態(tài)數(shù)據(jù),離開頁面一,打開頁面二;

瀏覽器接收指令,存儲頁面二的腳本狀態(tài)數(shù)據(jù),離開頁面二,重新打開頁面一,恢復(fù)頁面一的腳本運行。

進一步的,瀏覽器接收指令,存儲頁面一的腳本狀態(tài)數(shù)據(jù),離開頁面一,打開頁面二的具體步驟包括:

瀏覽器接收指令,建立鏈表;

將頁面一的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)存儲在鏈表中;

瀏覽器離開頁面一;打開頁面二。

進一步的,瀏覽器接收指令,存儲頁面二的腳本狀態(tài)數(shù)據(jù),離開頁面二,重新打開頁面一,恢復(fù)頁面一的腳本運行的具體步驟包括以下步驟:

瀏覽器接收指令,將頁面二的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)存儲在已經(jīng)存儲了頁面一的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)的鏈表中;

瀏覽器離開頁面二,重新打開頁面一;

瀏覽器讀取鏈表中的信息,查找是否包含頁面一的統(tǒng)一資源定位符;

如果包含頁面一的統(tǒng)一資源定位符,則得到頁面一的腳本狀態(tài)數(shù)據(jù),將頁面一的腳本狀態(tài)數(shù)據(jù)通過相關(guān)接口設(shè)置到瀏覽器中,恢復(fù)頁面一的腳本運行;

如果未包含頁面一的統(tǒng)一資源定位符,則所述鏈表中沒有頁面一的腳本狀態(tài)數(shù)據(jù),瀏覽器重新加載頁面一的腳本狀態(tài)數(shù)據(jù),解析并運行頁面一的腳本。

可選的,恢復(fù)瀏覽器中頁面的方法還包括:當瀏覽器頁打開頁面?zhèn)€數(shù)超過鏈表設(shè)定長度或瀏覽器退出時,鏈表清除數(shù)據(jù)已被緩存的標志,調(diào)用釋放的接口,釋放已緩存的數(shù)據(jù)。

另一方面,一種恢復(fù)瀏覽器中頁面的裝置,包括:

頁面數(shù)據(jù)存儲模塊,用于存儲瀏覽器中頁面的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù);

頁面數(shù)據(jù)恢復(fù)模塊,與頁面數(shù)據(jù)存儲模塊連接,用于恢復(fù)瀏覽器中頁面的腳本狀態(tài)數(shù)據(jù)。

進一步的,頁面數(shù)據(jù)恢復(fù)模塊包括:

頁面統(tǒng)一資源定位符查找模塊,與頁面數(shù)據(jù)存儲模塊連接,用于查找頁面數(shù)據(jù)存儲模塊中是否包含要恢復(fù)頁面的統(tǒng)一資源定位符;

頁面腳本狀態(tài)數(shù)據(jù)恢復(fù)模塊,與頁面統(tǒng)一資源定位符查找模塊連接,用于恢復(fù)頁面腳本狀態(tài)數(shù)據(jù),恢復(fù)腳本運行。

可選的,恢復(fù)瀏覽器中頁面的裝置還包括頁面數(shù)據(jù)釋放模塊,與頁面數(shù)據(jù)存儲模塊連接,用于釋放頁面數(shù)據(jù)存儲模塊中存儲的數(shù)據(jù)。

再一方面,一種瀏覽器,包括上述的恢復(fù)瀏覽器中頁面的裝置。

再一方面,一種裝置,包括上述瀏覽器。

進一步的,裝置包括:手機、平板電腦、筆記本電腦、臺式電腦、電子書閱讀器、游戲主機和網(wǎng)絡(luò)機頂盒。

本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:本發(fā)明主要針對當前瀏覽器大多只緩存了網(wǎng)頁主資源,卻未對javascript腳本做相關(guān)的緩存,導(dǎo)致出現(xiàn)網(wǎng)頁事件丟失等問題,提出一種解決如何緩存基于CrossWalk內(nèi)核的瀏覽器V8引擎中javascript內(nèi)容和狀態(tài),以及狀態(tài)恢復(fù)的方法。本發(fā)明的方法能夠有效提升頁面的恢復(fù)速度,防止網(wǎng)頁事件丟失,提升用戶瀏覽體驗。

附圖說明

為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明實施例一提供的恢復(fù)瀏覽器中頁面的方法流程圖;

圖2是本發(fā)明實施例一提供的恢復(fù)瀏覽器中頁面的方法流程圖;

圖3是本發(fā)明實施例二提供的恢復(fù)瀏覽器中頁面的裝置結(jié)構(gòu)圖;

圖4是本發(fā)明實施例二提供的恢復(fù)瀏覽器中頁面的裝置結(jié)構(gòu)圖;

圖5是本發(fā)明實施例二提供的恢復(fù)瀏覽器中頁面的裝置結(jié)構(gòu)圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。

實施例一

本發(fā)明提供一種恢復(fù)瀏覽器中頁面的方法,如圖1所示。包括以下步驟:首先進行步驟S101,瀏覽器接收指令,打開頁面一;然后進行步驟S102,瀏覽器接收指令,存儲頁面一的腳本狀態(tài)(ScriptState)數(shù)據(jù),離開頁面一,打開頁面二;再進行S103,瀏覽器接收指令,存儲頁面二的腳本狀態(tài)數(shù)據(jù),離開頁面二,重新打開頁面一,恢復(fù)頁面一的腳本運行。

具體的,如圖2所示:

步驟S201,瀏覽器接收指令,打開頁面一,加載圖像、鏈接、音樂等頁面內(nèi)容。

步驟S202,瀏覽器接收指令,建立鏈表。鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(鏈表中每一個元素稱為結(jié)點)組成,結(jié)點可以在運行時動態(tài)生成。每個結(jié)點包括兩個部分:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個是存儲下一個結(jié)點地址的指針域。本實施例中的鏈表建立在頁高速緩沖存儲器(PageCache)類里,用于存儲瀏覽器中打開的頁面的統(tǒng)一資源定位符(URL)和腳本狀態(tài)數(shù)據(jù),該鏈表結(jié)構(gòu)包括歷史項目(HistoryItem)和緩存頁面(CachedPage)。

步驟S203,將頁面一的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)存儲在鏈表中。

步驟S204,瀏覽器離開頁面一。在本實施例中,離開頁面一包括下述兩種情況:(1)在頁面一上打開頁面二,由頁面一直接進入頁面二;(2)關(guān)閉頁面一。

步驟S205,瀏覽器打開頁面二,加載頁面二的圖像、鏈接、音樂等頁面內(nèi)容。

步驟S206,瀏覽器接收指令,將頁面二的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)存儲在已經(jīng)存儲了頁面一的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)的鏈表中。如果瀏覽器繼續(xù)打開頁面三或更多的頁面,也需將這些頁面的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)存儲在前述的鏈表中。

步驟S207,瀏覽器離開頁面二,重新打開頁面一。本實施例中,重新打開頁面一包括以下兩種情況:(1)當瀏覽器從頁面一進入的頁面二后,接收到后退指令;(2)瀏覽器已經(jīng)關(guān)閉頁面一后,又接收到重新打開頁面一指令。

步驟S208,瀏覽器讀取鏈表中的信息,查找是否包含頁面一的統(tǒng)一資源定位符。瀏覽器重新打開頁面一時,從前述的鏈表中查找是否包含頁面一的統(tǒng)一資源定位符。如果包含頁面一的統(tǒng)一資源定位符,表明鏈表中存在頁面一的腳本狀態(tài)數(shù)據(jù),則進行步驟S209;如果未包含頁面一的統(tǒng)一資源定位符,則鏈表中沒有頁面一的腳本狀態(tài)數(shù)據(jù),那么進行步驟S210。

步驟S209,得到頁面一的腳本狀態(tài)數(shù)據(jù),將頁面一的腳本狀態(tài)數(shù)據(jù)通過相關(guān)接口設(shè)置到瀏覽器中,恢復(fù)腳本運行。根據(jù)頁面一的統(tǒng)一資源定位符,從鏈表中找到相應(yīng)的頁面一的腳本狀態(tài)數(shù)據(jù),將該數(shù)據(jù)通過腳本狀態(tài)保存設(shè)置(setSaveScriptState)接口,設(shè)置到瀏覽器中,恢復(fù)頁面一的腳本運行。當瀏覽器從頁面一再次進入頁面二時,可同樣從鏈表中查找頁面二的統(tǒng)一資源定位符進而得到頁面二的腳本狀態(tài)數(shù)據(jù),將頁面二的腳本狀態(tài)數(shù)據(jù)通過腳本狀態(tài)保存設(shè)置接口,設(shè)置到瀏覽器中,恢復(fù)頁面二的腳本運行。

步驟S210,瀏覽器重新加載頁面一的腳本狀態(tài)數(shù)據(jù),解析并運行頁面一的腳本。

本方法還包括步驟S211,當瀏覽器頁打開頁面?zhèn)€數(shù)超過鏈表設(shè)定長度或瀏覽器退出時,鏈表清除數(shù)據(jù)已被緩存的標志,調(diào)用釋放的接口,釋放已緩存的數(shù)據(jù)。

本發(fā)明提出一種解決如何緩存基于CrossWalk內(nèi)核的瀏覽器V8引擎中javascript內(nèi)容和狀態(tài),以及狀態(tài)恢復(fù)的方法。當用戶恢復(fù)之前瀏覽的頁面時,能夠有效提升頁面的恢復(fù)速度,防止網(wǎng)頁事件丟失,提升用戶瀏覽體驗。

實施例二

本發(fā)明還提供一種恢復(fù)瀏覽器中頁面的裝置如圖3所示,包括頁面數(shù)據(jù)存儲模塊100和頁面數(shù)據(jù)恢復(fù)模塊200。頁面數(shù)據(jù)存儲模塊100用于存儲瀏覽器中頁面的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)。頁面數(shù)據(jù)恢復(fù)模塊200與頁面數(shù)據(jù)存儲模塊100連接,用于恢復(fù)瀏覽器中頁面的腳本狀態(tài)數(shù)據(jù)。

具體的,如圖4所示,頁面數(shù)據(jù)存儲模塊100一般為鏈表,當瀏覽器打開一個新的頁面時,可以將頁面的統(tǒng)一資源定位符和腳本狀態(tài)數(shù)據(jù)一一對應(yīng)的存儲在鏈表中。

頁面數(shù)據(jù)恢復(fù)模塊200包括:頁面統(tǒng)一資源定位符查找模塊201和頁面腳本狀態(tài)數(shù)據(jù)恢復(fù)模塊202。

頁面統(tǒng)一資源定位符查找模塊201與頁面數(shù)據(jù)存儲模塊100連接,用于查找頁面數(shù)據(jù)存儲模塊100中是否包含要恢復(fù)頁面的統(tǒng)一資源定位符。當瀏覽器接到前進、后退或恢復(fù)頁面的指令,需要重新打開之前打開過的頁面時,頁面統(tǒng)一資源定位符查找模塊201從頁面數(shù)據(jù)存儲模塊100中查找是否包含該頁面的統(tǒng)一資源定位符。如果頁面數(shù)據(jù)存儲模塊100中包含該頁面的統(tǒng)一資源定位符,則說明頁面數(shù)據(jù)存儲模塊100中包含該頁面的腳本狀態(tài)數(shù)據(jù);如果頁面數(shù)據(jù)存儲模塊100中未包含該頁面的統(tǒng)一資源定位符,則說明頁面數(shù)據(jù)存儲模塊100中不包含該頁面的腳本狀態(tài)數(shù)據(jù)。

頁面腳本狀態(tài)數(shù)據(jù)恢復(fù)模塊202與頁面統(tǒng)一資源定位符查找模塊201連接,用于恢復(fù)頁面腳本狀態(tài)數(shù)據(jù),恢復(fù)腳本運行。通過頁面統(tǒng)一資源定位符查找模塊201在頁面數(shù)據(jù)存儲模塊100中查詢后得到結(jié)果,如果頁面數(shù)據(jù)存儲模塊100中包含重新打開頁面的腳本狀態(tài)數(shù)據(jù),則從頁面數(shù)據(jù)存儲模塊100中調(diào)取重新打開頁面的腳本狀態(tài)數(shù)據(jù),通過相關(guān)接口,將該腳本狀態(tài)數(shù)據(jù)設(shè)置到瀏覽器中,恢復(fù)腳本運行;如果頁面數(shù)據(jù)存儲模塊100中沒有重新打開頁面的腳本狀態(tài)數(shù)據(jù),則瀏覽器重新創(chuàng)建重新打開頁面的腳本狀態(tài)數(shù)據(jù),恢復(fù)腳本運行。

如圖5所示,可選的,恢復(fù)瀏覽器中頁面的裝置還包括頁面數(shù)據(jù)釋放模塊300。頁面數(shù)據(jù)釋放模塊300與頁面數(shù)據(jù)存儲模塊100連接,用于釋放頁面數(shù)據(jù)存儲模塊100中存儲的數(shù)據(jù)。當瀏覽器頁打開頁面?zhèn)€數(shù)超過鏈表設(shè)定長度或瀏覽器退出時,鏈表釋放存儲的數(shù)據(jù),清除已被緩存的標志,調(diào)用釋放的接口,釋放已緩存的數(shù)據(jù)。

實施例三

本發(fā)明還提供一種瀏覽器,該瀏覽器包括圖3所示的裝置。在本實施例中瀏覽器可以是CrossWalk內(nèi)核V8引擎,也可以是其他使用V8引擎的瀏覽器,本發(fā)明對此不作限制。該瀏覽器能夠在網(wǎng)頁關(guān)閉時緩存網(wǎng)頁javascript內(nèi)容和狀態(tài),并在網(wǎng)頁再次打開時恢復(fù)緩存的網(wǎng)頁javascript內(nèi)容和狀態(tài)。從而使得用戶在恢復(fù)之前瀏覽的頁面時,有效提升頁面的恢復(fù)速度,防止網(wǎng)頁事件丟失,提升用戶瀏覽體驗。

實施例四

本發(fā)明還提供一種裝置,該裝置包括含有圖3所示裝置的瀏覽器。在本實施例中,該裝置可以是手機、平板電腦、筆記本電腦、臺式電腦、電子書閱讀器、游戲主機或網(wǎng)絡(luò)機頂盒中的任一種,本發(fā)明對此不作限定。

上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。

通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。

以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
当涂县| 永德县| 若羌县| 驻马店市| 永兴县| 华池县| 淮滨县| 乐山市| 都兰县| 肇源县| 苍南县| 洞口县| 南澳县| 绵竹市| 且末县| 濉溪县| 天水市| 水富县| 望都县| 依兰县| 辽阳县| 密云县| 双流县| 乐陵市| 安国市| 尼木县| 韶山市| 大港区| 珠海市| 溧水县| 普安县| 武清区| 儋州市| 枣庄市| 锡林浩特市| 饶河县| 伊宁市| 镇平县| 沁水县| 永丰县| 宿迁市|