前端 JS 經典:Web 性能指標

什么是性能指標:Web Performance Metrics 翻譯成 Web 性能指標,一般和時間有關系,在短時間內做更多有意義的事情。

一個站點表現得好與不好,標準在于用戶體驗,而用戶體驗好不好,有一套 RAIL 模型來衡量。這個 RAIL 模型可以衡量一個站點用戶體驗到底好不好。那什么是 RAIL 模型勒,里面有 4 個單詞:

| Response 響應:你這個網站的響應速度是不是足夠的快。

| Animation 動畫:你這站點的動畫是不是足夠絲滑,有沒有跳幀,有沒有丟幀。

| Idle 空閑:你這個站點是不是給用戶留夠了足夠的空閑時間窗口,什么叫空閑,就這時間內沒有什么 JS 代碼運行,沒有阻塞主線程,因為只有空閑時間足夠,用戶才能跟這個網站進行交互,不然你點一下就卡住了。

| Load 加載:頁面上 DOM 元素過多,導致解析的時間變長,就會影響加載的時間。通過這四個方面進行整體的評價。

而 RAIL 模型是個模糊的概念,我們可以借助 LightHouse 可以將性能數據化。LightHouse 是瀏覽器很重要的插件,是對站點頁面進行分析的插件,使用 f12 打開調試工具,并將調試工具漂浮起來,因為如果是附著狀態會改變瀏覽器窗口大小,分析的時候就會不準。

?漂浮出來后,配置可以保持默認,直接點擊按鈕開始分析,分析的時候會刷新我們的頁面,對整個頁面的性能指標進行分析。

分析結果如下,博主的網站是有那么一點點瑕疵,需要優化一下。

?往下滑還可以看到一些具體的指標

要看懂這些指標,就需要知道這些指標什么意思。

First Contentful Paint 簡稱 FCP:首次內容繪制,就是白屏到第一次出現有意義的內容,這段時間就是 FCP。

Largest Contentful Paint 簡稱 LCP:最大內容繪制出來的時間,就是一個視口里面最大的元素往往是最重要的元素,最大元素出現的時間節點就需要去衡量它了。

Total Blocking Time 檢查 TBT:指的是 FCP 期間,用戶點擊了按鈕,但是頁面沒有完全加載,等到頁面完全加載,然后頁面對用戶點擊做出反應,這段時間叫 TBT,TBT 時間當然是越短越好。

Cumulative Layout Shift 簡稱 CLS:累計偏移,就比如你本來想點擊一個按鈕,點擊的時候,又有一個按鈕冒出來,讓你要點擊的按鈕偏移下去了,點錯了按鈕。

Speed Index 簡稱 SI:總體的速度指標,是總體的綜合衡量。

這些就是我們常見的 Web 性能指標,而現在這些指標都是實驗室指標,那什么是實驗室指標,就是這些性能指標是針對我們開發者的電腦、配置、瀏覽器的,而到用戶那邊,就可能有不同的結果。

所以實驗室指標只能作為參考,真正有意義的指標是要去收集用戶那一側的數據,這就涉及到服務監控和數據埋點。就是我們寫一段程序。注入到這個頁面當中,當用戶訪問我們的站點的時候,那段代碼就會在用戶那端來進行運行,在運行的過程中就會收集用戶的指標發送到我們數據監控的服務器,那怎么來收集勒,可以使用第三方 API,比如 Web Vitals。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15766.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大專學歷java能找到工作嗎

就低學歷就業的情況,大專學歷的職業上限基本上是中小公司的開發小組長,中專或同等學歷的職業上限一般是軟件小作坊的項目經理。當下大專學歷能進大公司的可能性不能說沒,但相比前幾年,少了太多。有穩定業務渠道的軟件公司&#xf…

Vue.js功能實現博客

Vue.js功能實現博客 一、前言 Vue.js 是一款構建用戶界面的漸進式框架。今天我們將通過一個簡單的示例來展示如何使用 Vue.js 創建一個簡單的計數器功能,并在此過程中解釋每個步驟。 二、環境準備 在開始之前,請確保你的開發環境中已經安裝了 Node.j…

音視頻學習規劃

文章目錄 概述閑聊點 小結 概述 最近在學習音視頻,覺得還是要先寫個提綱,給自己制定下學習路線及目標。先寫下我的個人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒體RTMP,HLS 閑聊點 先說下學習命令行吧,學習命令行是為了…

GitHub的原理及應用詳解(六)

本系列文章簡介: GitHub是一個基于Git版本控制系統的代碼托管平臺,為開發者提供了一個方便的協作和版本管理的工具。它廣泛應用于軟件開發項目中,包括但不限于代碼托管、協作開發、版本控制、錯誤追蹤、持續集成等方面。 GitHub的原理可以簡單…

Spring Cloud 項目在網關聚合 Swagger 文檔

文章目錄 Spring Cloud 項目在網關聚合 Swagger 文檔各個微服務的改動改動一:新增依賴改動二:新增配置類關鍵項說明 Gateway 的改動改動一:新增依賴改動二:新增配置類和處理類改動三:改動配置文件 Spring Cloud 項目在…

一千題,No.0026(Ternary String)

描述 You are given a string s such that each its character is either 1, 2, or 3. You have to choose the shortest contiguous substring of s such that it contains each of these three characters at least once. A contiguous substring of string s is a string …

Python3 筆記:IDLE的幾個基本設置

1、設置字體: Options > Configure IDLE > Fonts 2、設置文字顏色(設置高亮): Options > Configure IDLE > Highlights 3、設置背景顏色: Options > Configure IDLE > Highlights 4、設置窗口&a…

各位數字和-第13屆藍橋杯選拔賽Python真題精選

[導讀]:超平老師的Scratch藍橋杯真題解讀系列在推出之后,受到了廣大老師和家長的好評,非常感謝各位的認可和厚愛。作為回饋,超平老師計劃推出《Python藍橋杯真題解析100講》,這是解讀系列的第72講。 各位數字和&#…

MongoDB(介紹,安裝,操作,Springboot整合MonggoDB)

目錄 MongoDB 1 MongoDB介紹 MongoDB簡介 MongoDB的特點 MongoDB使用場景 小結 2 MongoDB安裝 安裝MongoDB 連接MongoDB MongoDB邏輯結構 MongoDB數據類型 小結 3 MongoDB操作 操作庫和集合 操作文檔-增刪改 操作文檔-查詢 MongoDB索引 小結 4 SpringBoot整合…

c# sqlite使用

安裝包 使用 const string strconn "Data Sourcedata.db"; using (SQLiteConnection conn new SQLiteConnection(strconn)) {conn.Open();var cmd conn.CreateCommand();cmd.CommandText "select 1";var obj cmd.ExecuteScalar();MessageBox.Show(ob…

ES 查詢踩坑-全字段匹配

需求:name字段需要全匹配查詢 name的映射 普通的must查詢 GET power_engin/_search {"from": 0,"size": 10,"query": {"bool": {"must": [{"term": {"name": {"value": "尼…

刷題之路徑總和Ⅲ(leetcode)

路徑總和Ⅲ 這題和和《為K的數組》思路一致&#xff0c;也是用前綴表。 代碼調試過&#xff0c;所以還加一部分用前序遍歷數組和中序遍歷數組構造二叉樹的代碼。 #include<vector> #include<unordered_map> #include<iostream> using namespace std; //Def…

python從入門到精通01

一、程序員計算器 number int(input("請輸入一個數字&#xff1a;")) print("二進制",bin(number)) print("八進制",oct(number)) print("十六進制",hex(number))二、給電影打分 score int(input("請給電影《肖申克的救贖》打…

計算機畢業設計Hadoop+Hive地震預測系統 地震數據分析可視化 地震爬蟲 大數據畢業設計 Spark 機器學習 深度學習 Flink 大數據

2024 屆本科畢業論文&#xff08;設計&#xff09; 基于Hadoop的地震預測的 分析與可視化研究 姓 名&#xff1a;____田偉情_________ 系 別&#xff1a;____信息技術學院___ 專 業&#xff1a;數據科學與大數據技術 學 號&#xff1a;__2011103094________ 指導…

【大數據面試題】33 Flink SQL做過哪些優化?

一步一個腳印&#xff0c;一天一道面試題 簡單寫幾個 Flink SQL 的優化 1.優化狀態管理 Flink 的狀態管理對整個程序的性能有較大影響。所以優化效果比較好。 設置空閑狀態自動清理&#xff08;TTL Time-to-Live&#xff09;數據量大時選擇 RocksDBStateBackend // 設置狀…

《圖解支付系統設計與實現》電子書_V20240525

相較于上次公開發布的V20240503版本&#xff0c;變更內容如下&#xff1a; 根據掘金網友zz67373&#xff08;李浩銘&#xff09;的勘誤建議&#xff0c;優化了部分描述。增加&#xff1a;金額處理規范&#xff0c;低代碼報文網關實現完整代碼&#xff0c;分布式流控等內容。擴…

Java虛擬機原理(下)-Dalvik vs ART-探秘Android虛擬機內在機制

Android系統作為移動端主流平臺&#xff0c;其高效的虛擬機無疑是其核心競爭力之一。今天&#xff0c;就讓我們一起剝開Dalvik和ART虛擬機的外衣&#xff0c;深入解析它們的工作原理和優缺點&#xff0c;幫助你全面把握Android系統的運行機制。 正文導覽 Dalvik和ART虛擬機的發…

Openstack all-in-one_ironic 部署測試

1. 基礎環境 apt update apt install git python3-dev libffi-dev gcc libssl-dev apt install python3-venv 2. 設置虛擬環境變量 root@controller01:~# python3 -m venv /deploy/venv root@controller01:~# source /deploy/venv/bin/activate (venv) root@controller01:~#…

Nginx - 安全基線配置與操作指南

文章目錄 概述中間件安全基線配置手冊1. 概述1.1 目的1.2 適用范圍 2. Nginx基線配置2.1 版本說明2.2 安裝目錄2.3 用戶創建2.4 二進制文件權限2.5 關閉服務器標記2.6 設置 timeout2.7 設置 NGINX 緩沖區2.8 日志配置2.9 日志切割2.10 限制訪問 IP2.11 限制僅允許域名訪問2.12 …

debugger(一):打斷點的實現以及案例分析

〇、前言 最近在學習 debugger 的實現原理&#xff0c;并按照博客實現&#xff0c;是一個很不錯的小項目&#xff0c;這是地址。由于 macOS 的問題&#xff0c;系統調用并不完全相同&#xff0c;因此實現了兩個版本分支&#xff0c;一個是 main 版本分支&#xff08;macOS M1 …