1.啟動(dòng)慢的原因
? ?
2.WebView提前初始化
3.客戶端代理數(shù)據(jù)請(qǐng)求
? ?*在客戶端初始化WebView的同時(shí),直接由native開始網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)帐我;當(dāng)頁面初始化完成后凯旭,向native獲取其代理請(qǐng)求的數(shù)據(jù)
4.資源本地化
? ? *在webview的加載過程中,我們通過重寫方法 shouldInterceptRequest 可以攔截到不同的請(qǐng)求,只需要把一些常用的資源如cs耘分、js文件打包到apk中,然后做本地的替換绑警,就回使用本地的資源求泰,這樣減少了重復(fù)請(qǐng)求的時(shí)間,優(yōu)化了webview的加載時(shí)間
? ? ?*本地離線包的形式
? ??webview 可以加載網(wǎng)絡(luò)資源计盒,那么也是可以加載本地的資源渴频,在apk 啟動(dòng)的時(shí)候,我們可以把整個(gè)前端代碼文件下載解壓到本地的文件路徑中北启,然后通過file:///...index.html 去打開本地的資源
? ? ?*攔截webview的請(qǐng)求卜朗,shouldInterceptRequest 不僅可以攔截資源文件,也是可以攔截html中的ajax請(qǐng)求咕村,攔截請(qǐng)求后场钉,可以使用android常見的okhttp或者retrofit等請(qǐng)求框架發(fā)起請(qǐng)求,可以添加需要的頭信息懈涛,或者修改請(qǐng)求參數(shù)逛万,然后返回response再返回給webview,這樣就做到了動(dòng)態(tài)修改webview中的請(qǐng)求信息批钠,這里需要注意的是宇植,post請(qǐng)求的body是無法攔截的到的,所以就需要把body參數(shù)放置到header中攔截埋心,然后自己處理后再拼裝即可
5.圖片資源按需加載
實(shí)現(xiàn)復(fù)雜度:★☆☆☆☆指郁,效果預(yù)計(jì):★★★★★
圖片資源占我們H5界面(尤其是商品詳情頁)中絕大多數(shù)流量,可以在 user-agent 中加入客戶端屏幕分辨率拷呆,前端H5根據(jù)分辨率來決定展示多大的縮略圖闲坎。如果是商品詳情頁的話可以采用和手淘類似的交互方案:默認(rèn)顯示縮略圖,點(diǎn)擊顯示原圖以便用戶下載圖片。
實(shí)現(xiàn)方式:客戶端加載H5界面時(shí)在 user-agent 中加入屏幕分辨率箫柳。
6.瀏覽器緩存機(jī)制
實(shí)現(xiàn)復(fù)雜度:★☆☆☆☆手形,效果預(yù)計(jì):★★★☆☆
根據(jù) HTTP 協(xié)議頭里的 Cache-Control(或 Expires)和 Last-Modified(或 Etag)等字段來控制文件緩存的機(jī)制。
常見用法是:Cache-Control與 Last-Modified 一起使用悯恍;Expires與 Etag一起使用库糠;即一個(gè)用于控制緩存有效時(shí)間,一個(gè)用于在緩存失效后涮毫,向服務(wù)查詢是否有更新瞬欧。特別注意:瀏覽器緩存機(jī)制 是 瀏覽器內(nèi)核的機(jī)制,一般都是標(biāo)準(zhǔn)的實(shí)現(xiàn)罢防,即Cache-Control艘虎、 Last-Modified 、 Expires咒吐、 Etag都是標(biāo)準(zhǔn)實(shí)現(xiàn)野建,你不需要操心。
不足:緩存文件需要首次加載后才會(huì)產(chǎn)生恬叹;瀏覽器緩存的存儲(chǔ)空間有限候生,緩存有被清除的可能;緩存的文件沒有校驗(yàn)绽昼。
應(yīng)用場(chǎng)景:靜態(tài)資源文件的存儲(chǔ)唯鸭,如JS、CSS硅确、字體目溉、圖片等。
緩存存儲(chǔ)路徑:Android Webview 會(huì)將緩存的文件記錄及文件內(nèi)容會(huì)存在當(dāng)前 app 的 data 目錄中菱农。
實(shí)現(xiàn)方式:前端人員在 H5 界面的 HTTP 協(xié)議頭里添加緩存機(jī)制缭付,客戶端人員在本地放開緩存限制,跟著 H5 的緩存機(jī)制走
7.加 CDN
實(shí)現(xiàn)復(fù)雜度:★☆☆☆☆大莫,效果預(yù)計(jì):★★☆☆☆蛉腌,需要收費(fèi)
CDN 的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)只厘,它具有以下優(yōu)勢(shì):減少帶寬需求量烙丛,提供服務(wù)器端加速,解決由于用戶訪問量大造成的服務(wù)器過載問題羔味,服務(wù)商能使用Web Cache技術(shù)在本地緩存用戶訪問過的Web頁面和對(duì)象河咽。
實(shí)現(xiàn)方式:這個(gè)方案只需要運(yùn)維在阿里云進(jìn)行配置即可,需要費(fèi)用
————————————————
版權(quán)聲明:本文為CSDN博主「Lerendan」的原創(chuàng)文章赋元,遵循CC 4.0 BY-SA版權(quán)協(xié)議忘蟹,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明飒房。
原文鏈接:https://blog.csdn.net/u010289802/article/details/101781770