Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
使用被動事件監聽器改善捲動效能
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
觸控和滾輪事件監聽器有助於追蹤使用者互動及建立自訂捲動體驗,但也會延遲網頁捲動。目前瀏覽器無法判斷事件監聽器是否會防止捲動,因此一律會等待監聽器執行完畢,再捲動網頁。被動事件監聽器可讓您指出事件監聽器絕不會阻止捲動,藉此解決這個問題。
瀏覽器相容性
大多數瀏覽器都支援被動事件監聽器。請參閱「瀏覽器相容性」一節。
Lighthouse 被動事件監聽器稽核失敗的原因
Lighthouse 會標記可能延遲網頁捲動的事件監聽器:
Lighthouse 會透過下列程序,找出可能影響捲動效能的事件監聽器:
- 收集網頁上的所有事件監聽器。
- 篩除非觸控和非滾輪的接聽器。
- 篩除撥打
preventDefault() 的聽眾。
- 篩除來自不同主機的接聽器。
Lighthouse 會篩除來自不同主機的監聽器,因為您可能無法控管這些指令碼。可能有些第三方指令碼會影響網頁的捲動效能,但這些指令碼不會列在 Lighthouse 報表中。
針對 Lighthouse 識別出的每個事件監聽器,新增 passive 旗標。
如果您只支援具備被動事件監聽器支援功能的瀏覽器,只要新增旗標即可。例如:
document.addEventListener('touchstart', onTouchStart, {passive: true});
如果您支援不支援被動事件監聽器的舊版瀏覽器,則需要使用功能偵測或 Polyfill。詳情請參閱 WICG 被動事件監聽器說明文件中的「功能偵測」一節。
資源
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2019-05-02 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2019-05-02 (世界標準時間)。"],[],[]]