ByteScope

Mouse Test

五顆按鍵、連點直方圖、精準到格的滾輪計數,加上一個誠實的回報率估計——把你懷疑快壞的那顆滑鼠放上來檢測。

檔案不會離開你的瀏覽器 — 全部在本機處理。

1. 按鍵

在下面的圖上按下每個按鍵。按著時會亮起,按過一次就會留下綠色外框,所以五個鍵可以一個一個慢慢試。

按鍵按下次數狀態
側鍵(上一頁)0還沒測到
左鍵0還沒測到
中鍵(滾輪)0還沒測到
右鍵0還沒測到
側鍵(下一頁)0還沒測到

頁面已經要求瀏覽器不要讓側鍵觸發上一頁/下一頁,但不是每個瀏覽器都會聽。測到一半頁面跳走的話,是瀏覽器的決定,不是按鍵壞了。

2. 連點與抖動

用平常的節奏點擊目標區,單擊就好,不要刻意連按兩下。大約 30 次之後,乾淨的結果才開始有意義。

還沒有任何紀錄。

低於 50 ms 的間隔,比人放開再按一次的極限還快,微動開關磨損跳動就長這樣——但你手速夠快的一次雙擊也長得一模一樣。把它當線索,不要當診斷:偶爾出現一次不代表什麼;連續按 30 次以上還一直冒出來,才值得處理。

3. 滾輪

在下面的框裡滾動,游標在框內時頁面不會跟著捲動。剛好轉十格再看合計,就知道有沒有漏格或跳兩格。

在這裡滾動
格數(Y)
-
像素(Y)
-px
原始 deltaY
-
deltaMode
-
轉動總量
0.00
淨值(Y)
0.00
事件數
0
格數(X)
-

同樣轉一格,Chrome 送 deltaY 100、Firefox 送 deltaY 3。上面的格數已經換算成同一個單位,旁邊也附上原始值。

4. 回報率(polling rate)

在框裡畫圈移動游標幾秒鐘。間隔數不到 30 之前,信心度都會標成低。

把游標移進來
送達速率
-Hz
最接近的標準值
-Hz
信心度
-
間隔中位數
-ms
間隔數
-
已排除
-

這量的是瀏覽器把指標事件送到頁面的速度,不是滑鼠真正的回報率。事件合併、螢幕更新率、背景負載都夾在中間,所以把這個數字當成下限看。

DPI 在瀏覽器裡根本量不到:移動抵達頁面時已經是 CSS 像素,作業系統的指標加速與顯示縮放都套用過了。

關於這個工具

把那顆你懷疑快壞的滑鼠接上來,這一頁就是一座四合一檢測台。按鍵測試會在畫面上的滑鼠圖示亮起你按下的鍵——左、中、右加兩顆側鍵——每顆都留「按過」標記和按壓次數,「側鍵到底有沒有反應」五秒內就有答案;頁面會擋掉右鍵選單,也盡量攔住側鍵觸發上一頁、下一頁,但不是每個瀏覽器都攔得住。連點測試幫每一次按下和放開打上時間戳,把間隔畫成直方圖。滾輪測試逐筆記錄方向、格數和像素,還有一個累計格數——滾輪轉整整十格,就能對出有沒有跳格或多算;原始數值每家瀏覽器不同,一格在 Chrome 是 deltaY: 100、Firefox 是 deltaY: 3,這一頁把兩邊都正規化成一格。最後在目標區來回移動滑鼠,頁面會估出回報率幾 Hz,標出最接近的標準檔位(125 到 8000)和信心程度。這需要一顆真的滑鼠:觸控板只有捲動和移動兩項測出來有意義。

連點直方圖怎麼看

微動開關用久了會彈跳:接點在斷開的瞬間抖動,一次實體按壓被滑鼠回報成兩次——這就是俗稱的連點。在直方圖上,它會以「放開到下一次按下」間隔小於約 50ms 的樣子現身,因為人類手指要放開再按一次,物理上不可能這麼快。但這是證據、不是診斷:單看一筆資料,手速真的很快的雙擊長得一模一樣。所以請用平常的節奏對目標按個幾十下:健康的微動,50ms 以下那一區會一直是空的;在連點的微動會持續往裡面堆。就算圖形再明確,也只能說開關在彈跳——足夠讓你決定拆開清理或送保固,但不等於證明開關已經故障。

瀏覽器測得到什麼、測不到什麼

回報率那個數字,量的是「瀏覽器把事件送到頁面的速度」,不是滑鼠真正的回報率。瀏覽器會把指標事件合併到螢幕的更新頻率,這一頁用 getCoalescedEvents() 把被合併的事件挖回來,能救回很多,但終究不是在讀 USB 匯流排。把數字當下限和合理性檢查用就好:背景在跑重活的電腦、或一片 60Hz 的螢幕,都會把數字往下拖。至於 DPI / CPI,瀏覽器根本測不到:頁面拿到的位移是 OS 已經套過指標加速和縮放之後的 CSS 像素,沒有任何辦法逆推回每英吋計數。任何宣稱能在瀏覽器測滑鼠 DPI 的網站,其實都是拿你自己輸入的數值反推——這一頁不打算裝得測得到。

常見問題

滑鼠常常自己連點,怎麼確認是微動壞了?

用連點測試,照平常的節奏對目標按個幾十下——單擊就好,不要刻意雙擊。然後看直方圖:放開到再按下的間隔小於約 50ms,比人類手指物理上做得到的還快,所以單擊按出一堆這種間隔,就是微動把一次按壓回報成兩次的強力證據。零星一兩筆快的說明不了什麼;連續按下去、圖形持續長大,才算數。這足以讓你決定拆開清理或送保固,但它是證據,不是維修報告。

我的滑鼠是 1000Hz,為什麼測出來只有 60Hz 左右?

因為瀏覽器會把指標事件合併到螢幕更新頻率,再交給頁面。這一頁靠 getCoalescedEvents() 把被合併的回報拆出來,才有辦法測出超過螢幕更新率的數字。如果讀數還是卡在 60 附近,先看電腦這邊:60Hz 的螢幕、背景在忙的系統,都會把數字壓在天花板下。這個數字是滑鼠實際送達量的下限,不是 USB 匯流排上的實測。

筆電的觸控板可以測嗎?

只能測一部分。兩指捲動會進滾輪測試,游標移動也追蹤得到;但按鍵圖和連點測試是為有微動開關的實體滑鼠設計的,觸控板在那兩項按出來的數字沒有意義。想診斷哪顆滑鼠,就把那顆接上來直接測。

為什麼不顯示滑鼠的 DPI?

因為瀏覽器測不到,我們也不打算假裝測得到。頁面收到的位移,是 OS 套完指標加速和螢幕縮放之後的 CSS 像素,原始的每英吋計數(CPI)在那之前就已經丟失。會顯示 DPI 數字的網站,都是拿你自己輸入的標示值去反推——那是推算,不是測量。想知道真正的 DPI,去看原廠軟體或規格表。

我雙擊本來就很快,會不會被判定成連點?

照建議的方式用就不會。刻意的快速雙擊和微動連點,單看一筆的確分不出來——所以這個測試本來就不看單筆。它要的是一串普通的單擊:用放鬆的節奏連續按,這時還冒出 50ms 以下的放開間隔,那就不是你的手。真的不放心就故意按慢一點——連點不管你按多慢,每一次按壓都會跟著出現。