最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS?WKWebView秒開方案實戰(zhàn)記錄

 更新時間:2021年12月10日 10:59:23   作者:鐘環(huán)  
從iOS8開始,就引入了新的瀏覽器控件WKWebView,用于取代UIWebView,下面這篇文章主要給大家介紹了關(guān)于iOS?WKWebView秒開方案的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

WKWebView 秒開方案,不僅需要端上優(yōu)化,也需要前后端配合,我們業(yè)務(wù)前期在UIWebView上已經(jīng)通過各種優(yōu)化達到了秒開,但是由于蘋果2020年12月份就不允許上架UIWebView,所以我們緊急切換到WKWebView,但由于WKWebView在啟動初始化的時候表現(xiàn)還是不如人意,我們的目標(biāo)是低端機型至少大部分頁面也能秒開。經(jīng)過一系列的優(yōu)化操作,實現(xiàn)效果和數(shù)據(jù)都是非常可觀的。

秒開流程圖

秒開方案

1、模板下載。

2、首圖預(yù)加載。

3、正文列表body預(yù)取。

4、CDN預(yù)加載。

5、雙緩存池(目前一共不超過8個):一個負(fù)責(zé)feed流列表滾動停止時異步執(zhí)行js預(yù)熱;一個負(fù)責(zé)進入文章后準(zhǔn)備好一個干凈的WKWebview供下一次未命中秒開WKWebview使用。

6、點擊cell命中預(yù)熱好的秒開WKWebview,則進行預(yù)熱下一篇文章,這樣提高秒開率。

7、initpage預(yù)熱好的WebView需要先放在屏幕最右側(cè)隱藏,在進入后顯示并重設(shè)frame回歸正常視圖中。

8、feed流預(yù)熱的WebView通過initPage傳false參數(shù)、進入文章頁后的WebView通過initPage傳true參數(shù),為保證不會刷新跳動,模板中有設(shè)置flag確保一次initPage

9、動態(tài)js回填方案:load模板 → 成功會收到前端橋接Ready狀態(tài) → 客戶端收到Ready狀態(tài)會進行initPage操作,此時只是靜態(tài)加載頁面渲染顯示給用戶看的界面,不會觸發(fā)任何網(wǎng)絡(luò)或其他模板加載,initPage成功后會回調(diào)init狀態(tài) → 客戶端收到init狀態(tài)會進行執(zhí)行showPage操作,表示已經(jīng)進入頁面需要繼續(xù)加載好所有未加載好的邏輯,例如圖片渲染、網(wǎng)絡(luò)請求、模板加載等,showPage成功后前端回調(diào)show狀態(tài) → 客戶端仍為頁面已經(jīng)加載完成,處理加載完成后的邏輯,例如打點上報等

10、全局并沒有持有WKWebview不釋放,而是只要進入文章頁就會預(yù)創(chuàng)建下次需要預(yù)熱的WKWebview,保證每次的WKWebview都是干凈無歷史痕跡,在dealloc方法中會釋放雙緩存池當(dāng)前加載的WebView。

其中initpage和showPage等都是前端處理相關(guān)邏輯回調(diào)給客戶端狀態(tài),客戶端拿到狀態(tài)進行下一步操作。

技術(shù)數(shù)據(jù)

Item 端到端平均耗時 端到端p90耗時
對照組 1210 ms 2800 ms
實驗組 780 ms 1800 ms

秒開效果對比

低端機型:真機6P,12.4.5系統(tǒng)

優(yōu)化前線上UIWebview展示:

WKWebview展示:

WKWebView究竟好在哪里呢?

  1. 內(nèi)存開銷更小
  2. 內(nèi)置手勢
  3. 支持更多H5特性
  4. 有Safari相同的JavaScript引擎
  5. 提供更多屬性,比如加載進度、標(biāo)題、準(zhǔn)確的得到頁面數(shù)等等
  6. 提供了更精細的加載流程回調(diào)(當(dāng)然相比UIWebView看起來也更麻煩一些,畢竟方法多了)

總結(jié)

到此這篇關(guān)于iOS WKWebView秒開方案的文章就介紹到這了,更多相關(guān)iOS WKWebView秒開內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IOS 中KVC的使用方法實例詳解

    IOS 中KVC的使用方法實例詳解

    這篇文章主要介紹了IOS 中KVC的使用方法實例詳解的相關(guān)資料,這提供具體使用方法,希望能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • iOS文件預(yù)覽分享小技能示例

    iOS文件預(yù)覽分享小技能示例

    這篇文章主要為大家介紹了iOS文件預(yù)覽分享小技能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • iOS身份證號碼識別示例

    iOS身份證號碼識別示例

    本篇文章主要介紹了iOS身份證號碼識別示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 如何在IOS中使用IBeacon

    如何在IOS中使用IBeacon

    這篇文章主要介紹了如何在IOS中使用IBeacon,想了解IBeacon的同學(xué),一定要看一下
    2021-04-04
  • iOS、Mac OS X系統(tǒng)中編程實現(xiàn)漢字轉(zhuǎn)拼音的方法(超級簡單)

    iOS、Mac OS X系統(tǒng)中編程實現(xiàn)漢字轉(zhuǎn)拼音的方法(超級簡單)

    這篇文章主要介紹了iOS、Mac OS X系統(tǒng)中編程實現(xiàn)漢字轉(zhuǎn)拼音的方法(超級簡單),本文講解的方法不僅支持中文,還支持日文、韓文等,需要的朋友可以參考下
    2015-04-04
  • 99%?iOS開發(fā)都不知道的KVO崩潰分析詳解

    99%?iOS開發(fā)都不知道的KVO崩潰分析詳解

    這篇文章主要為大家介紹了99%?iOS開發(fā)都不知道的KVO崩潰分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • IOS 開發(fā)之網(wǎng)絡(luò)圖片輪播圖的實現(xiàn)

    IOS 開發(fā)之網(wǎng)絡(luò)圖片輪播圖的實現(xiàn)

    這篇文章主要介紹了IOS 開發(fā)之網(wǎng)絡(luò)圖片輪播圖的實現(xiàn)的相關(guān)資料,希望通過此文大家能夠掌握輪播圖的實現(xiàn),需要的朋友可以參考下
    2017-09-09
  • iOS實現(xiàn)微信支付流程詳解

    iOS實現(xiàn)微信支付流程詳解

    本篇文章主要介紹了iOS實現(xiàn)微信支付流程詳解 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • IOS 實現(xiàn)3D 浮動效果動畫

    IOS 實現(xiàn)3D 浮動效果動畫

    這篇文章主要介紹了IOS 實現(xiàn)3D 浮動效果動畫的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • iOS實現(xiàn)側(cè)滑欄效果

    iOS實現(xiàn)側(cè)滑欄效果

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)側(cè)滑欄效果,點擊側(cè)邊拉出相應(yīng)菜單,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

光泽县| 敖汉旗| 沽源县| 丹阳市| 饶阳县| 鹰潭市| 凤翔县| 天峻县| 靖远县| 教育| 平山县| 靖宇县| 南城县| 大足县| 绵竹市| 休宁县| 屏东市| 南部县| 盘锦市| 团风县| 卢龙县| 双城市| 枝江市| 凉山| 隆昌县| 绥化市| 云南省| 呼伦贝尔市| 库伦旗| 济阳县| 邛崃市| 库尔勒市| 武陟县| 平凉市| 包头市| 文化| 昌江| 家居| 上思县| 淮安市| 班玛县|