基于UIWebView組件的網(wǎng)頁加載方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種基于UIWebView組件的網(wǎng)頁加載方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的1S系統(tǒng)中,UIWebView組件通??捎糜诟鶕?jù)鏈接加載網(wǎng)頁并以相應(yīng)的視圖進(jìn)行展示,相當(dāng)于瀏覽器的功能。然而,發(fā)明人經(jīng)研究發(fā)現(xiàn),傳統(tǒng)技術(shù)中的UIWebView組件加載網(wǎng)頁時至少存在如下問題:
[0003]傳統(tǒng)技術(shù)中的UIWebView組件在加載與輸入的鏈接對應(yīng)的網(wǎng)頁時,不管本地是否有緩存,均根據(jù)鏈接訪問互聯(lián)網(wǎng)下載相應(yīng)的網(wǎng)頁資源,從而導(dǎo)致加載速度較慢。
【發(fā)明內(nèi)容】
[0004]基于此,有必要提供一種能提聞網(wǎng)頁加載速度的基于UIWebView組件的網(wǎng)頁加載方法。
[0005]一種基于UIWebView組件的網(wǎng)頁加載方法,包括:
[0006]獲取HWebView組件的跳轉(zhuǎn)指令,提取所述跳轉(zhuǎn)指令對應(yīng)的網(wǎng)頁地址;
[0007]根據(jù)所述網(wǎng)頁地址通過所述HWebView組件生成的網(wǎng)頁訪問請求;
[0008]截獲所述網(wǎng)頁訪問請求,在緩存中查找與所述網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源并生成相應(yīng)的響應(yīng)對象;
[0009]將所述響應(yīng)對象返回給所述UIWebView組件,通過所述UIWebView組件解析所述響應(yīng)對象得到所述網(wǎng)頁資源并將其加載。
[0010]此外,還有必要提供一種能提高網(wǎng)頁加載速度的基于UIWebView組件的網(wǎng)頁加載
>J-U ρ?α裝直。
[0011]一種基于UIWebView組件的網(wǎng)頁加載裝置,包括:
[0012]指令獲取模塊,用于獲取nWebView組件的跳轉(zhuǎn)指令,提取所述跳轉(zhuǎn)指令對應(yīng)的網(wǎng)頁地址;
[0013]請求生成模塊,用于根據(jù)所述網(wǎng)頁地址通過所述nWebView組件生成的網(wǎng)頁訪問請求;
[0014]響應(yīng)對象生成模塊,用于截獲所述網(wǎng)頁訪問請求,在緩存中查找與所述網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源并生成相應(yīng)的響應(yīng)對象;
[0015]網(wǎng)頁資源加載模塊,用于將所述響應(yīng)對象返回給所述UIWebView組件,通過所述UIWebView組件解析所述響應(yīng)對象得到所述網(wǎng)頁資源并將其加載。
[0016]上述基于UIWebView組件的網(wǎng)頁加載方法和裝置,截獲UIWebView組件根據(jù)生成的網(wǎng)頁訪問請求后,并沒有直接將其發(fā)送給服務(wù)器,而是先在緩存中查找與該請求對應(yīng)的網(wǎng)頁資源,從而合理地利用了緩存中已經(jīng)存儲的數(shù)據(jù),節(jié)省了下載網(wǎng)頁資源的時間,從而提高了網(wǎng)頁加載速度,同時也節(jié)省了流量。
【附圖說明】
[0017]圖1為一個實(shí)施例中基于UIWebView組件的網(wǎng)頁加載方法的流程示意圖;
[0018]圖2為一個實(shí)施例中基于UIWebView組件的網(wǎng)頁加載方法的應(yīng)用場景圖;
[0019]圖3為一個實(shí)施例中基于UIWebView組件的網(wǎng)頁加載方法的應(yīng)用場景圖;
[0020]圖4為一個實(shí)施例中基于UIWebView組件的網(wǎng)頁加載裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0022]如圖1所示,在一個實(shí)施例中,提供了一種基于UIWebView組件的網(wǎng)頁加載方法,該方法完全依賴于計(jì)算機(jī)程序,可運(yùn)行于基于1S操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)上。
[0023]該方法包括如下步驟:
[0024]步驟S102,獲取UIWebView組件的跳轉(zhuǎn)指令,提取跳轉(zhuǎn)指令對應(yīng)的網(wǎng)頁地址。
[0025]UIffebView組件為1S操作系統(tǒng)的一個內(nèi)置瀏覽器控件,可用來解析html規(guī)范定義的網(wǎng)頁資源,從而實(shí)現(xiàn)加載顯示網(wǎng)頁、文檔等常見的瀏覽器功能。
[0026]跳轉(zhuǎn)指令為UIWebView組件進(jìn)行頁面切換的指令。當(dāng)用戶可通過在地址欄輸入字符串或點(diǎn)擊頁面上的鏈接向UIWebView組件輸入網(wǎng)頁地址(即為url,Universal ResourceLocator,統(tǒng)一資源定位符),UIffebView組件檢測到有網(wǎng)頁地址輸入且發(fā)生變更時,則會生成跳轉(zhuǎn)指令。用戶也可通過點(diǎn)擊UIWebView組件上的前進(jìn)或后退按鈕來生成跳轉(zhuǎn)指令,跳轉(zhuǎn)指令對應(yīng)的網(wǎng)頁地址即為前次或后次瀏覽的頁面的url。
[0027]步驟S104,根據(jù)網(wǎng)頁地址通過UIWebView組件生成的網(wǎng)頁訪問請求。
[0028]在本實(shí)施例中,可通過生成httprequest對象,并將跳轉(zhuǎn)指令對應(yīng)的網(wǎng)頁地址作為目標(biāo)地址賦值給該httprequest對象來生成網(wǎng)頁訪問請求。生成該網(wǎng)頁訪問請求后可將其發(fā)送至網(wǎng)絡(luò)地址對應(yīng)的服務(wù)器。
[0029]步驟S106,截獲網(wǎng)頁訪問請求,在緩存中查找與網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源并生成相應(yīng)的響應(yīng)對象。
[0030]在本實(shí)施例中,可在UIWebView組件中的請求發(fā)送函數(shù)中加入代碼,對該網(wǎng)頁訪問請求進(jìn)行攔截。UIWebView組件的緩存通常將網(wǎng)頁地址和緩存的網(wǎng)頁資源對應(yīng)存儲,可在緩存中根據(jù)網(wǎng)頁訪問請求中的目標(biāo)地址在緩存中進(jìn)行查找,若找到,則生成httpresponse對象,并查找到的網(wǎng)頁資源賦值給該httpresponse對象。
[0031]在本實(shí)施例中,若未查找到網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源,則發(fā)起網(wǎng)頁訪問請求,并接收返回的網(wǎng)頁資源生成相應(yīng)的響應(yīng)對象。
[0032]也就是說,在UIWebView組件中的請求發(fā)送函數(shù)被調(diào)用之前,先查找網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源,若找到,則根據(jù)查找到的網(wǎng)頁資源生成響應(yīng)對象;若未找到,則調(diào)用請求發(fā)送函數(shù)將網(wǎng)頁訪問請求發(fā)送給其目標(biāo)地址對應(yīng)的服務(wù)器,根據(jù)服務(wù)器返回的數(shù)據(jù)生成響應(yīng)對象。
[0033]步驟S108,將響應(yīng)對象返回給HWebView組件,通過HWebView組件解析響應(yīng)對象得到網(wǎng)頁資源并將其加載。
[0034]在本實(shí)施例中,該響應(yīng)對象可以是根據(jù)在緩存中查找到的網(wǎng)頁資源生成的,也可以是在緩存中為查找到時,有服務(wù)器下載的數(shù)據(jù)生成響應(yīng)對象。也就是說,UIWebView組件并不關(guān)心該響應(yīng)對象中包含的網(wǎng)頁資源的來歷,直接調(diào)用html解析函數(shù)解析響應(yīng)對象中的網(wǎng)頁資源,從而將其加載。
[0035]在一個實(shí)施例中,通過UIWebView組件生成網(wǎng)頁訪問請求的步驟還包括:獲取跳轉(zhuǎn)指令對應(yīng)的操作事件,判斷操作事件是否為前進(jìn)事件或后退事件,若是,則在網(wǎng)頁訪問請求中加入與操作事件對應(yīng)的標(biāo)識符。
[0036]跳轉(zhuǎn)指令對應(yīng)的操作事件即在生成跳轉(zhuǎn)指令時,用戶觸發(fā)的操作事件。如前所述,若用戶通過點(diǎn)擊UIWebView組件中展示的頁面中的鏈接輸入跳轉(zhuǎn)指令,則操作事件為鏈接點(diǎn)擊事件。若用戶通過在地址欄輸入網(wǎng)頁地址來輸入跳轉(zhuǎn)指令,則操作事件為地址欄更改事件。若用戶通過點(diǎn)擊UIWebView組件中的前進(jìn)或后退按鈕輸入跳轉(zhuǎn)指令,則相應(yīng)的操作事件為前進(jìn)事件或后退事件。
[0037]優(yōu)選的,在網(wǎng)頁訪問請求中加入與操作事件對應(yīng)的標(biāo)識符的步驟包括:在網(wǎng)頁訪問請求的請求頭或網(wǎng)頁請求的網(wǎng)頁地址中加入操作標(biāo)識。
[0038]例如,可在網(wǎng)頁訪問請求的header屬性項(xiàng)的accept屬性值(也可以是其他屬性值)中添加forward或back作為前進(jìn)事件或后退事件的標(biāo)識符。也可在網(wǎng)頁訪問請求的url,例如http://www.aaa.com后加入#forward或#back作為前進(jìn)事件或后退事件的標(biāo)識符(前進(jìn)事件添加后即為http://www.aaa.com#forward)。
[0039]在本實(shí)施例中,截獲網(wǎng)頁訪問請求的步驟之后還包括:判斷網(wǎng)頁訪問請求是否對應(yīng)前進(jìn)事件或后退事件,若是,則在緩存中查找與網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源。
[0040]也就是說,僅對前進(jìn)事件或后退事件生成的網(wǎng)頁訪問請求執(zhí)行在緩存中查找的步驟。由于前進(jìn)事件或后退事件對應(yīng)的頁面,其包含的圖片、視頻或音頻等資源文件必然已被緩存(在緩存未耗盡時),而在不考慮資源文件的情況下頁面僅包含文本,因此1S系統(tǒng)通常會在用戶點(diǎn)擊前進(jìn)或后退按鈕時,重新下載該頁面,當(dāng)頁面包含的文本信息量較大時,仍然會浪費(fèi)較多時間。而采用上述方案,則可針對上述缺陷,在用戶點(diǎn)擊前進(jìn)或后退按鈕時,仍現(xiàn)在緩存中查找相應(yīng)的網(wǎng)頁資源,從而節(jié)約了加載時間,同時也節(jié)省了流量。
[0041 ] 在一個實(shí)施例中,在緩存中未查找到網(wǎng)頁訪問請求對應(yīng)的網(wǎng)頁資源時,還可獲取接收返回的網(wǎng)頁資源的數(shù)據(jù)大小和/或下載速度,并通過UIWebView組件展示數(shù)據(jù)大小和/或下載速度。
[0042]例如,如圖2所示,在下載網(wǎng)頁資源的時候,可獲取該網(wǎng)頁資源的數(shù)據(jù)大小和/或下載速度,通過nWebView組件展示數(shù)據(jù)大小和/或下載速度。
[0043]在一個實(shí)施例中,還可獲取