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.
pointerdown and touchstart — matching desktop's mousedown. Visible improvement only on touch devices.
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 meEvent timeline
Why the gap matters
- On desktop, moderate-eagerness rules use
mousedownas the arm trigger. Browser-measured average gap to click: 50-80ms. - On mobile, that trigger never fired — mouse events don't happen on touch screens. So the entire prefetch window was lost.
- v138 adds
pointerdownandtouchstartas moderate-eagerness triggers on mobile. Same 50-80ms head start, now on touch. - 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.