滑鼠延遲是指從實體滑鼠動作到軟體回應該動作之間的延遲。由於每一個可量測的環節——USB 輪詢、驅動程式處理、作業系統處理、瀏覽器事件傳遞,以及應用程式邏輯——都會增加各自的延遲,因此延遲很少是一個可以直接從螢幕上讀出的單一數字。在瀏器內開始進行延遲調查最快速的實務方式,是先確認每次按鍵確實都有傳遞到網頁。一個完全沒有反應的按,從使用者觀點來看,其延遲等同於無限大。滑鼠測試工具將這個初步檢查變成一個全螢幕、無需安裝的程序:將指標移進虛線目標區內,逐次按下每個可用的按,並觀察具名計數遞增,同時覽器會依據 MouseEvent.button 代碼為每個事件加上標籤。接著,你就能判斷問題是出在瀏器之下(網頁永遠看不到的開關、驅動程式或傳輸層),還是介於瀏覽器與你實際感覺到延遲的應用程式之間。

how to test mouse latency
如何測試滑鼠延遲:從覽器事件開始

滑鼠延遲實際包含哪些部分

當讀者搜尋如何測試滑鼠延遲時,往往期待得到一個以毫秒為單位的單一數字。實際的輸入延遲至少是五個獨立階段的總和,而網頁只能觀察到最後幾個階段:

  • 硬體開關啟動——微動開關在滑鼠本體內部閉合的實體瞬間。
  • USB 或無線傳輸——決定裝置回報狀態頻率的輪詢間隔,常見為 125 Hz、500 Hz、1000 Hz 或更高。
  • 裝置驅動程式與作業系統——核心處理、按鍵重新對應、無障礙軟體,或可能在任何網頁看到事件之前就將其取用的廠商工具。
  • 瀏器事件傳——從原始輸入到網頁可以監聽的 mousedown 事件之間的路徑。
  • 應用程式處理——對事件做出回應的遊戲引擎、設計工具或網頁應用程式邏輯。

網頁工具無法存取前三個階段,只能回報抵達自身事件監聽器的內容。這正是網頁層級測試作為第一步如此有用的原因:它能將你實際能在瀏覽器中觀察到的結部分隔離開來,並在進入需要不同工具或硬體的時間量測之前,先為每個按提供一個是或否的答案。

為什麼按鈕偵測要擺在第一步

在量測點擊抵達的速度之前,你必須先知道點擊確實有抵達。如果按下側邊按鈕時頁面上的任何計數器都沒有增加,那麼你想量測的延遲數字根本還不存在——沒有事件就沒有時間戳記。這正是滑鼠測試工具所填補的缺口。這個小工具會設定一個大型目標區,監聽 mousedown 事件,並使用 MouseEvent.button 的標準 Web 對應來為每個事件分類:0 Primary(主要)、1 Auxiliary(輔助)、2 Secondary(次要)、3 Back(上一頁)、4 Forward(下一頁)。超出該集合的代碼會保留為數值未識別項;分數形式的代碼則會被拒絕。

目標區會抑制自身的右鍵選單與輔助啟動功能,以免次要按鍵或中鍵立即取代你正在記錄的結果。計數與最近八筆的標籤會保留在當前的分頁中;無需上傳、無需安裝、無需動程式。Reset(重設)會清除記憶體中的工作階段,重新整理或關閉分頁則會完全移除狀態。

確認瀏覽器接收到每一次按鍵

這是使用瀏覽器確認滑鼠上每個可用按鈕都已傳遞到網頁的實務工作流程。

  1. 在全新的分頁中開啟滑鼠測試工具,等待頁面載入完成;虛線目標區應填滿測試區域。
  2. 將指標移入線目標區內,以主要按鈕點擊一次;確認總計與 Primary 計數都剛好增加 1。
  3. 在目標區內點擊次要按,驗證 Secondary 計數增加 1,而 Primary 維持不變。
  4. 按下滾輪或中鍵並檢查 Auxiliary 計數;目標區會抑制一般的預設行為,避免測試自行脫離正軌。
  5. 按下滑鼠上每個側邊按;當瀏覽器轉發時,Back 與 Forward 應分別產生獨立的具名遞增。
  6. 檢查「最近」(Recent) 列表,確認瀏覽器實際傳遞事件的順序,而非你以為自己按下按鈕的順序。
  7. 重複測試任何可疑的按鈕數次,以排除單次不穩定的按壓,然後使用 Reset test 來清除記憶體中的工作階段,再進行新一輪測試。

若要在同一台機器上與作業系統的工作流程進行交叉比對,配套指南如何在 Windows 11 上測試滑鼠按鈕會逐步介紹 Windows 層級的設定面板;這兩種檢視方式結合起來,能告訴你某個無法識別的按壓到底是在瀏覽器層之前還是在之後被攔截。

對應五個按代碼

頁面會依據整數代碼為每個接受到的事件進行分類。對應方式遵循 Web 平台規範,而非對按鈕位於哪一側的實體位置進行假設。

代碼 具名標 常見的實體按鈕 通常用途
0 Primary 主要啟動按鈕 選取、啟動、觸發預設動作
1 Auxiliary 中鍵或滾輪點擊 在新分頁中開啟連結、在設計工具中平移
2 Secondary 次要啟動按鈕 開啟右鍵選單
3 Back 側邊按鈕(後側) 瀏覽器上一頁、遊戲專屬按鍵綁定
4 Forward 側邊按鈕(前側) 瀏器下一頁、遊戲專屬按鍵綁定
any other integer Unknown (numeric) 廠商專屬或經過重新對應 以其原始代碼回報,不會強行對應到已知名稱

這個表格的重點在於,Primary 是由 Web 模型所定義,而不是由你的拇指決定。作業系統的設定可以交換實體左右鍵的角色,交換之後頁面仍然會將 0 回報為 Primary,因為依據瀏覽器的定義,那才是主要的啟動按鈕。同樣的原則也適用於額外的按鈕:一個用於瀏覽器歷史記錄導覽的側邊按鈕可能根本不會抵達網頁,因為覽器本身在任何頁面監聽器執行之前就已經取用了該事件。對應方式遵循MDN 的 MouseEvent.button 參考資料以及W3C Pointer Events — the button property中所描述的 Web 規範。

當按鈕計數停留在零時

在刻意按下按鈕後,任何具名標籤出現零的結果都是有用的訊號,但這並不能視為硬體診斷。它只告訴你,在測試期間,帶有預期 MouseEvent.button 代碼的事件並未抵達本頁面。在實體開關之上,有好幾個層級可能會在事件成為頁面事件之前就將其攔截:

  • 瀏器導覽——上一頁與下一頁按鈕通常由瀏覽器本身處理,根本不會抵達網頁。
  • 擴充功能與無障礙軟體——輸入重新對應工具和輔助技術可能會在監聽器執行之前取用或改寫事件。
  • 驅動程式與作業系統設定——廠商軟體可能會重新指派按鈕、停用額外的輸入,或將其交由系統快捷鍵處理。
  • 遠端桌面與虛擬化層——這些層級可能會改變抵達監聽器的整數代碼,有時會產生預期標籤的 Unknown 數值結果。

由於這些層級都位於頁面之上,因此在目標區內防止預設行為僅能抑制瀏器原本會執行的一小組頁面內預設動作。它無法覆寫優先順序更高的系統處理。若要從零結果中進一步釐清,請在實際出現問題的應用程式中重複測試,並與製造商軟體進行比對,以便確認裝置認為自己按下的是哪一個實體開關。單一分頁中的單一零結果,是關於頁面的證據,而非關於硬體的證據。

滑鼠測試工具無法量測的項目

該頁面誠實地說明了其範圍之外的內容。以下項目不在其合約範圍內,若沒有對裝置的特殊權限,網頁也無法量測:

類別 所需條件 瀏覽器網頁無法執行的原因
以毫秒為單位的點擊延 頁面前後的同步硬體時間戳記 頁面無法存取實體開關的發瞬間
輪詢率 原始 HID 回報或廠商診斷資料 瀏覽器只會公開合成後的事件,不會公開原始回報
彈跳或抖動 長時間高解析度的事件記錄 頁面觀察到的是離散事件,而非開關的振動
無線傳輸延遲 接收器端的計時或韌體工具 無線電波路徑對網頁來說是不可見的
點擊速度(CPS) 帶時間戳記的點擊配對 屬於專屬點擊速度頁面的範疇
滾輪動增量 滾輪事件取樣 屬於不同的事件家族,需使用不同的測試頁面

上述每一項量測都屬於不同工具、不同合約的範疇。若將這個頁面視為能夠認證硬體狀態、遊戲適用性或無線延遲的工具,將會誤導它的實際功能。這個頁面可靠的合約範圍較窄:解讀抵達目標區的 MouseEvent.button 代碼、明確地計算這些事件的數量、保留簡短的最近事件清單,並在軟體於頁面看到按壓之前就將其攔截時,清楚地發出警告。

Reading the Recent List as a Signal

Because the page keeps only the latest eight accepted labels, the Recent list doubles as a quick integrity check. If your intended sequence was Primary, Secondary, Back, Forward and the Recent list shows Back, Back, Back, Back, you have just learned that either the browser is reissuing that single back press four times or the key is mechanically chattering. The list makes the order visible at a glance, which is more useful than a single running total when you are trying to spot a pattern.

When the recent list is empty after a deliberate press, that is the same signal as a count of zero: no matching event reached the target during the session. Treating the list as a short audit trail, rather than a permanent history, also matches the tool's real limits — refreshing the tab or selecting Reset test removes the in-memory state, and nothing is uploaded or saved anywhere outside the current page. Combining the Recent list, per-button counts, and a fresh Reset before retesting gives you a reproducible browser-only session you can describe to a vendor or compare across browsers without installing anything.

If you're weighing options, Break Reminder for PC: Pick One and Start in Minutes covers this in detail.