一種網頁加載進度控制方法、裝置和終端的制作方法
【技術領域】
[0001]本發(fā)明涉及終端上的瀏覽器技術領域,尤其涉及一種網頁加載進度控制方法、裝置和終端。
【背景技術】
[0002]隨著無線通訊技術和互聯網技術的飛速發(fā)展,在移動終端上使用瀏覽器上網的用戶越來越多。作為移動互聯網入口,瀏覽器的重要性不言而喻。如何在移動終端上提高瀏覽器的用戶體驗,從而在白熱化的市場競爭中取得亮點和份額,是目前瀏覽器技術研究的重點。
[0003]在瀏覽器技術中,網頁的加載和進度控制是基本技術之一,其網頁加載過程是否快速和流暢對用戶體驗是非常直觀和重要的。在使用常規(guī)瀏覽器過程中,我們會經常會發(fā)現如下現象:
[0004]有時在加載某一個網頁的時候,即使在網絡狀況比較好的情況下,當網頁內容基本上已完全展現在終端視窗中,但加載進度條卻一直停留在某個位置上都不動,要過很長時間進度才到達百分之百再顯示網頁加載成功。
[0005]這種經常最后卡頓的現象造成很不好的用戶體驗。
[0006]經過分析,造成該現象的原因是某些網頁的子資源(級聯樣式表CSS、用于客戶端Web開發(fā)的腳本語言JS、圖片等等)過多。即在頁面的主資源(網頁的框架和內容等)加載并繪制結束后,必須要等待所有子資源加載成功和初始化的JS執(zhí)行結束,才上報加載完成消息來使進度達到百分之百。特別是在遇到一些網絡阻塞或其他異常情況時,子資源無法完全及時加載所有子資源或初始化JS執(zhí)行過于頻繁,會造成整個加載進度停留在某個地方沒有響應。
[0007]現有的解決這個問題的方式如下。
[0008]< 方式一 >
[0009]延遲加載子資源,比如先阻塞圖片的加載,在主資源加載結束后就上報加載完成消息,該消息上報后再進行圖片的加載。
[0010]這種方式雖然在一定程度上可以消除進度條過久停留,但會造成進度條到達百分之百后較長時間圖片才開始顯示的問題,該用戶體驗也不太好。
[0011]〈方式二〉
[0012]設置進度條達到某個值后啟動定時器超時,如果定時器時間到加載結束的消息還未上報,就強制顯示進度達到百分之百。
[0013]這種方式的缺點主要是進度值本身是一個粗略非準確的值,其進度取值和定時器的時間很難精確控制,從而往往造成進度雖然達到百分之百,但網頁的主界面卻還未顯示出來的情況。
【發(fā)明內容】
[0014]本發(fā)明的目的是提供一種網頁加載進度控制方法、裝置和終端,避免當網頁內容出現時進度條還長時間不結束,造成用戶感覺網頁加載太慢的問題,提升用戶體驗。
[0015]為了實現上述目的,本發(fā)明實施例提供了一種一種網頁加載進度控制方法,用于終端上的瀏覽器,所述瀏覽器通過進度條顯示加載進度,所述方法包括:
[0016]獲取所述瀏覽器在當前網頁的加載過程中上報的加載狀態(tài)信號;
[0017]當獲取到所述加載狀態(tài)信號中的網頁開始加載信號后,檢測當前網頁的主資源內容是否已經加載完畢,獲得第一檢測結果;
[0018]當所述第一檢測結果指示當前網頁的主資源內容已經加載完畢時,啟動計時時長為第一時間閾值的計時器,其中所述第一時間閾值與當前網頁加載速度成反比;
[0019]當計時器到時,停止加載當前網頁的子資源內容,并控制所述瀏覽器的進度條顯示為加載進度已完成。
[0020]上述的網頁加載進度控制方法,其中,所述檢測當前網頁的主資源內容是否已經加載完畢,獲得第一檢測結果具體為:
[0021]檢測當前網頁的內容寬度是否大于0,并在當前網頁的內容寬度大于O時確認所述第一檢測結果為當前網頁的主資源內容已經加載完畢。
[0022]上述的網頁加載進度控制方法,其中,所述當所述第一檢測結果指示當前網頁的主資源內容已經加載完畢時,啟動計時時長為第一時間閾值的計時器,其中所述第一時間閾值與當前網頁加載速度成反比具體包括:
[0023]根據獲取到的所述加載狀態(tài)信號中的標題信號與獲取到所述當前網頁開始加載信號之間的時間差值確定當前網頁加載速度的加載速度參數;
[0024]根據所述加載速度參數計算所述第一時間閾值,所述第一時間閾值與所述加載速度參數成正比;
[0025]當所述第一檢測結果指示當前網頁的主資源內容已經加載完畢時,啟動計時時長為第一時間閾值的計時器。
[0026]上述的網頁加載進度控制方法,其中,所述方法還包括:
[0027]檢測在所述計時器到時前是否獲取到所述加載狀態(tài)信號中的網頁加載結束信號,
獲得第二檢測結果;
[0028]所述當所述計時器到時后,停止加載當前網頁的子資源內容,并控制所述瀏覽器的進度條顯示為加載進度已完成具體為:
[0029]當所述第二檢測結果指示在所述計時器到時前未獲取到所述網頁加載結束信號時,當所述計時器到時后,停止加載當前網頁的子資源內容,并控制所述瀏覽器的進度條顯示為加載進度已完成。
[0030]為了實現上述目的,本發(fā)明實施例還提供了一種網頁加載進度控制裝置,用于終端上的瀏覽器,所述瀏覽器通過進度條顯示加載進度,所述裝置包括:
[0031]獲取模塊,用于獲取所述瀏覽器在當前網頁的加載過程中上報的加載狀態(tài)信號;
[0032]第一檢測模塊,用于當獲取到所述加載狀態(tài)信號中的網頁開始加載信號后,檢測當前網頁的主資源內容是否已經加載完畢,獲得第一檢測結果;
[0033]計時器啟動模塊,用于當所述第一檢測結果指示當前網頁的主資源內容已經加載完畢時,啟動計時時長為第一時間閾值的計時器,其中所述第一時間閾值與當前網頁加載速度成反比;
[0034]處理模塊,用于當計時器到時,停止加載當前網頁的子資源內容,并控制所述瀏覽器的進度條顯示為加載進度已完成。
[0035]上述的網頁加載進度控制裝置,其中,所述第一檢測模塊具體包括:
[0036]檢測子模塊,用于檢測當前網頁的內容寬度是否大于0,并在當前網頁的內容寬度大于O時確認所述第一檢測結果為當前網頁的主資源內容已經加載完畢。
[0037]上述的網頁加載進度控制裝置,其中,所述計時器啟動模塊具體包括:
[0038]加載速度參數確定子模塊,用于根據獲取到的所述加載狀態(tài)信號中的標題信號與獲取到所述當前網頁開始加載信號之間的時間差值確定當前網頁加載速度的加載速度參數;
[0039]計算子模塊,用于根據所述加載速度參數計算所述第一時間閾值,所述第一時間閾值與所述加載速度參數成正比;
[0040]計時器啟動子模塊,用于當所述第一檢測結果指示當前網頁的主資源內容已經加載完畢時,啟動計時時長為第一時間閾值的計時器。
[0041]上述的網頁加載進度控制裝置,其中,所述裝置還包括:
[0042]第二檢測模塊,用于檢測在所述計時器到時前是否獲取到所述加載狀態(tài)信號中的網頁加載結束信號,獲得第二檢測結果;
[0043]所述處理模塊具體為:
[0044]當所述第二檢測結果指示在所述計時器到時前未獲取到所述網頁加載結束信號時,當所述計時器到時后,停止加載當前網頁的子資源內容,并控制所述瀏覽器的進度條顯示為加載