INP 是什么?如何改進 INP 谷歌優(yōu)化
新聞 2023-12-05編輯:重慶網(wǎng)站建設標簽:
INP
本文簡紹INP 是什么?如何改進 INP 谷歌優(yōu)化INP 分數(shù)是多少?INP 與 First Input Delay (FID) 有何不同?如果未報告 INP 值,該怎么辦?
INP 是什么?
INP 是一項指標,通過觀察在用戶訪問網(wǎng)頁期間發(fā)生的所有點擊、點按和鍵盤互動的延遲時間,評估網(wǎng)頁對用戶互動的總體響應情況。最終 INP 值是觀察到的最長互動,忽略離群值。
關于 INP 計算方式的說明
互動是指在同一邏輯用戶手勢期間觸發(fā)的一組事件處理腳本。例如,觸摸屏設備上的“點按”互動包括多個事件,如 pointerup、pointerdown 和 click。交互可由 JavaScript、CSS、內(nèi)置瀏覽器控件(如表單元素)或以上三者的組合驅(qū)動。
互動的延遲時間包括一組促成互動的事件處理腳本的最長時長,即從用戶開始互動到下一幀顯示視覺反饋的那一刻。
INP 分數(shù)是多少?
在響應性指標上固定標簽(例如“良好”或“欠佳”)非常困難。一方面,您需要鼓勵優(yōu)先進行開發(fā)實踐,優(yōu)先考慮良好的響應能力。另一方面,您必須考慮到一個事實,即人們用來設定切實可行的開發(fā)期望的設備在功能上存在很大的差異。
為了確保您提供良好的響應速度體驗,不妨衡量一下實際中記錄的網(wǎng)頁加載第 75 個百分位數(shù)(按移動設備和桌面設備細分):
INP 低于或 200 毫秒表示您的網(wǎng)頁具有良好的響應速度。
INP 高于 200 毫秒且低于或等于 500 毫秒表示您的網(wǎng)頁響應能力需要改進。
INP 高于 500 毫秒表示您的網(wǎng)頁響應速度慢。
什么是互動?
描繪主線程上的交互的圖表。用戶在阻止任務運行時輸入內(nèi)容。輸入將一直延遲,直到這些任務完成,之后指針向上、mouseup 和點擊事件處理程序運行,然后開始渲染和繪制工作,直到顯示下一幀。
互動的生命周期。在事件處理腳本開始運行之前會發(fā)生輸入延遲,這可能是由主線程上的任務過長等因素引起的。然后,互動的事件處理腳本會運行,并且延遲會在呈現(xiàn)下一幀之前發(fā)生。
互動的主要驅(qū)動因素通常是 JavaScript,不過瀏覽器確實通過并非由 JavaScript 提供支持的控件(例如復選框、單選按鈕以及由 CSS 提供支持的控件)提供互動。
就 INP 而言,系統(tǒng)僅觀察以下互動類型:
用鼠標點擊。
點按帶有觸摸屏的設備。
按實體鍵盤或屏幕鍵盤上的鍵。
互動發(fā)生在主文檔或文檔中嵌入的 iframe 中,例如,點擊嵌入的視頻上的播放。最終用戶并不知道 iframe 中包含哪些內(nèi)容。因此,需要在 iframe 中使用 INP 來衡量頂級網(wǎng)頁的用戶體驗。請注意,JavaScript Web API 無權訪問 iframe 內(nèi)容,因此可能無法在 iframe 中衡量 INP,并且這會顯示為 CrUX 和 RUM 之間的差異。
互動可能由兩部分組成,每部分包含多個事件。例如,按鍵包含 keydown、keypress 和 keyup 事件。點按互動包含 pointerup 和 pointerdown 事件。系統(tǒng)會選擇互動中時長最長的事件作為互動的延遲時間。
描繪包含兩個互動的更復雜的互動。第一個是 mousedown 事件,該事件會在鼠標松開按鈕之前生成一幀,這會啟動更多工作,直到結(jié)果呈現(xiàn)另一幀。
描繪與多個事件處理腳本的互動?;拥牡谝徊糠謺谟脩酎c擊鼠標按鈕時接收輸入。不過,在用戶松開鼠標按鈕之前,系統(tǒng)會呈現(xiàn)一幀畫面。當用戶松開鼠標按鈕時,必須在顯示下一幀之前運行另一系列事件處理腳本。
INP 在用戶離開網(wǎng)頁時計算,其值將代表網(wǎng)頁在整個生命周期內(nèi)的總體響應情況。INP 較低意味著網(wǎng)頁能夠可靠地響應用戶輸入。
INP 與 First Input Delay (FID) 有何不同?
其中 INP 考慮所有頁面互動,F(xiàn)irst Input Delay (FID) 僅考慮首次互動。此外,它還會僅測量首次互動的輸入延遲,而不會測量運行事件處理腳本所需的時間或呈現(xiàn)下一幀時的延遲。
鑒于 FID 也是一個加載響應能力指標,計算依據(jù)是,如果在加載階段與網(wǎng)頁進行的首次互動幾乎沒有可察覺的輸入延遲,那么該網(wǎng)頁就能給用戶留下良好的第一印象。
INP 不僅僅代表第一印象。通過對所有互動進行采樣,可以全面評估響應性,使 INP 成為比 FID 更可靠的整體響應性指標。
如果未報告 INP 值,該怎么辦?
網(wǎng)頁可能不會返回 INP 值。造成這種情況的原因有很多:
頁面已加載,但用戶從未點擊、點按或按下鍵盤上的鍵。
該網(wǎng)頁已加載,但用戶使用了與點擊、點按或使用鍵盤類似的手勢來與該網(wǎng)頁互動。例如,滾動或?qū)⑹髽藨彝T谠厣喜粫绊?INP 的計算方式。
網(wǎng)頁由搜索抓取工具或無頭瀏覽器等漫游器訪問,但該網(wǎng)頁尚未編寫與網(wǎng)頁互動的腳本。
如何衡量 INP
如果您的網(wǎng)站符合列入 Chrome 用戶體驗報告 (CrUX) 的條件,您可以通過 PageSpeed Insights 中的 CrUX(和其他核心網(wǎng)頁指標)快速獲取 INP 的字段數(shù)據(jù)。您至少可以獲得網(wǎng)站 INP 的源級信息,但在某些情況下,您也可以獲取網(wǎng)頁級數(shù)據(jù)。
然而,雖然 CrUX 可以幫助您大致了解存在某個問題,但通常無法提供足夠的詳細信息,無法充分了解問題所在。RUM 解決方案可幫助您深入了解互動速度緩慢的網(wǎng)頁、用戶或用戶互動的細節(jié)。將 INP 歸因于各個互動可以避免猜測和浪費精力。
如何改進 INP
當您發(fā)現(xiàn)存在緩慢互動的情況,并且可以在實驗室中手動重現(xiàn)這類問題后,接下來就要對其進行優(yōu)化?;涌梢苑譃槿齻€階段:
輸入延遲,在用戶發(fā)起與網(wǎng)頁的互動時開始,并在互動的事件回調(diào)開始運行時結(jié)束。
處理時間,由事件回調(diào)運行完畢所需的時間組成。
展示延遲,即瀏覽器顯示下一幀(包含互動的視覺效果)所需的時間。