demo · v138

Touch latency bench

Pre-v138 on mobile, moderate-eagerness rules armed on mousedown (only desktop fires that). On touch, the prefetch never started before click — losing the entire 50–80ms gap. v138 adds pointerdown and touchstart as triggers. This bench shows the gap: tap the target, look at the latency stat.

Unflagged in Chrome 138. Moderate-eagerness rules on mobile now fire on pointerdown and touchstart — matching desktop's mousedown. Visible improvement only on touch devices.
probing speculation rules…

Tap the target. The stat below records: time from pointerdown to click (the gap moderate eagerness now uses), time from click to navigation.

Target 1 — tap me Target 2 — tap me
pointerdown → click gap
total interaction events
0
eagerness configured
moderate

Event timeline

Why the gap matters

  1. On desktop, moderate-eagerness rules use mousedown as the arm trigger. Browser-measured average gap to click: 50-80ms.
  2. On mobile, that trigger never fired — mouse events don't happen on touch screens. So the entire prefetch window was lost.
  3. v138 adds pointerdown and touchstart as moderate-eagerness triggers on mobile. Same 50-80ms head start, now on touch.
  4. Average mobile interaction: pointerdown happens at finger-touch, click fires at finger-lift. That's a real window the browser can use to start the fetch.

What's happening here

This page declares a moderate-eagerness speculation rule targeting ./target-*. The events panel below tracks pointerdown, touchstart, and click on the two link buttons. On v138+ devices, the prefetch is initiated at pointerdown / touchstart — before the click ever fires. Devtools → Application → Speculative Loads will show "Triggered" before you've lifted your finger.

see also