91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

html5前端性能測試的示例

發布時間:2021-02-24 09:39:50 來源:億速云 閱讀:212 作者:清風 欄目:web開發

這篇文章主要為大家展示了html5前端性能測試的示例,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“html5前端性能測試的示例”這篇文章吧。

html有什么特點

1、簡易性:超級文本標記語言版本升級采用超集方式,從而更加靈活方便,適合初學前端開發者使用。 2、可擴展性:超級文本標記語言的廣泛應用帶來了加強功能,增加標識符等要求,超級文本標記語言采取子類元素的方式,為系統擴展帶來保證。  3、平臺無關性:超級文本標記語言能夠在廣泛的平臺上使用,這也是萬維網盛行的一個原因。 4、通用性:HTML是網絡的通用語言,它允許網頁制作人建立文本與圖片相結合的復雜頁面,這些頁面可以被網上任何其他人瀏覽到,無論使用的是什么類型的電腦或瀏覽器。

一、開篇:H5 頁面加載過程淺析

如下圖所示,是精選平臺打開 H5 頁面的幾個過程截圖。

html5前端性能測試的示例

圖一到圖四可以簡單分類,圖一是 App 負責做的事情,主要是初始化 Webview 上下文;后面三張圖則是一個H5頁面加載的過程。其中,App 這個階段的耗時,主要是 Native 代碼的耗時,這里先不展開討論,我們重點放在后面幾個階段。第四個圖是用戶直觀看到的第一屏頁面,我們通常稱為首屏

html5前端性能測試的示例

1)加載網絡請求

這個過程主要是 Webview 拿到 H5 頁面 url 之后,調用 loadUrl 方法,開始去網絡上請求第一個資源文件。這個階段主要包含 dns 解析、建立網絡鏈接、數據傳輸的耗時。

2)html 解析

Webview 拿到 html 返回后,需要從上至下解析 html 中的標簽和內容,識別外鏈資源、計算頁面框架的布局,并渲染繪制出來。在這個過程中會構建出負責頁面結構的 DOM Tree 和負責頁面布局展示的 Render Tree,如下圖所示:

html5前端性能測試的示例

3)外鏈資源加載

這部分主要是從網絡上加載外鏈的 css、圖片和 js 等,再重新填充到 html 中。之后重新進行一次 layout 布局計算和頁面渲染繪制,此時看到的才是有完整內容的頁面。如下圖所示,頁面需要等圖片和 css 加載出來后才能展示,js 也是外鏈資源,不過一般來說,只要放在 html 底部加載,就不會阻塞頁面的渲染和展示。

html5前端性能測試的示例

二、實例分析:白屏問題

前面我們已經了解了 H5 頁面加載過程,接下來如果遇到白屏,我們自然會問,怎么才能知道頁面當前處在哪個階段,每個階段耗時多長,以及整體首屏加載的耗時呢?

首先看下通過 PC Chrome 模擬 H5 頁面的情況。Chrome Devtool 提供的 Performance 工具,可以錄制頁面從第一個請求到加載完成的所有事件,通過這種方式可以很詳細的看到各階段做的事情和具體的耗時。

html5前端性能測試的示例

其中兩個最關鍵的首屏耗時指標:domContentLoaded(首屏頁面可見)onLoad(首屏加載完成)的耗時,除了圖示的方法,還可以通過在 console 里打印全局變量window.performance.timing,拿到時間戳并計算得到。

但實際我們要的是移動設備的真機數據,這個才能真實反應頁面性能和用戶體驗。想要獲取 H5 真機耗時,一種方式是 js 代碼進行上報;另一種是對于 Android 設備,可以用 remote-debug 的方式遠程調試真機頁面。只需要保證 webview 調試開關打開 & 與 PC USB 連接且開啟 USB 調試,就可以在 PC Chrome 訪問 chrome://inspect 來獲取調試對象。之后參考 PC Chrome 模擬 H5 的方法即可拿到數據。

html5前端性能測試的示例

對于傳統頁面而言,實際分析發現大部分耗時還是在移動網絡請求這部分,所以最直接有效的方式就是對頁面進行直出改造,也就是改變先加載 html、再加載 css 等數據的情況,先在后端(比如 nodejs)并行加載首屏依賴的所有 css、js 和后臺接口數據,拼裝好一個完成的最終要呈現的 html 再回給前端,達到秒開的效果。

三、實例分析:卡慢問題

有時候用戶在頁面交互的過程中會遇到卡慢,比如上下滑動列表、左右切換或者輪播等。這個過程無非也是執行 js、請求資源、計算新的頁面布局并渲染繪制這幾件事。通過 Performance 分析就會發現,卡慢其實并不全是很多人認為的“移送設備性能就是差”,有時候其實是假性卡頓。

html5前端性能測試的示例

比如下面這個就是熱區過小的問題:

html5前端性能測試的示例

真卡的情況,往往腳本報錯占了很大比重,直觀表現就是頁面是卡死,而不是變慢。其他的諸如內存問題,通常表現是頁面越來越卡,因為使用時間越長,資源消耗越大。比如頁面使用了比較復雜的 canvas 動畫、比較耗性能的 iframe 元素,或者直播流媒體,這種情況下容易出現內存泄漏。

下面這個就是 dom 節點引發的內存泄漏,不使用的 commentList 列表沒有釋放,越積越多到長度幾萬個的時候開始卡頓。

html5前端性能測試的示例

四、總結:H5 前端性能測試方案

當然,前端性能不僅僅表現在白屏、卡頓問題,也有可能是手機過度發熱等等。從用戶核心體驗出發,我們認為,H5 前端性能最重要的參考標準就是:要以最輕量的方式,給用戶最好的體驗。從這個方向出發,我們積累了一些測試經驗,其中最重要的必過項是首屏速度(不僅提升用戶體驗,還可以提升業務的轉化率),其次流暢度、流量和 CPU 等,某些場景下也是需要重點考量的點。

html5前端性能測試的示例

以上就是關于“html5前端性能測試的示例”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

京山县| 新竹市| 五原县| 张掖市| 伊宁市| 姚安县| 峨眉山市| 改则县| 茶陵县| 宝应县| 金门县| 油尖旺区| 凤翔县| 苏尼特左旗| 三台县| 乳源| 新密市| 石棉县| 原平市| 乐清市| 祁门县| 福安市| 微山县| 正阳县| 丰都县| 全南县| 木兰县| 临汾市| 安康市| 邛崃市| 阳谷县| 苗栗市| 儋州市| 建昌县| 轮台县| 年辖:市辖区| 图木舒克市| 宁远县| 苍南县| 囊谦县| 邻水|