Mostly Satellite or Cellular
All with low data caps
Most with HUGE latencies
- 1s RTT satellite not uncommon
- 100+ms cellular is “good”, can be MUCH higher
Traditional development – mocks and feature lists
Loading is an experience – treat it like one
What should they see while loading?
On slow connections, what are acceptable blank page times?
Can the content move/relayout?
- Hint, the answer should always be NO!
How should text load/display, how long is blank text acceptable for?
What order should the images load?
Can content be displayed incrementally?
Weblight – transcoded pages on slow mobile connections in select countries
- 4x Faster page loads
- 80% Less Data
- 50% Increase in page views
Runtime content decisions
Reduce number of ads
Fall back to text ad placements
Eliminate tag manager or A/B testing calls
Lazy image loading
Single domain HTTP/2 Serving
Start of the head
performance.timing.responseStart - performance.timing.navigationStart
End of the head
Before each optional external resource/script (ads, widgets, whatever)
Defeats preload scanner
Client-side Decisions – Service Worker
Observe request/response times
Block 3rd-party requests
Alter image requests to low quality
Fetch “lite” version of modules
Track/store over time
Server-side Decisions – Tracking CIDR blocks
Based on historical performance
Slow reaction time
Accounts for full experience
Watch out for usage shifts
Aggregate performance stats showed slower
Due to new users who could not previously use it at all
Chrome Resource Priorities Change
Aggregate performance stats showed no change
Slight increase in population
Adjusted stats showed expected 5-10% improvement in tail
Data saver mode
Browsers becoming more agressive
Removing active scroll listeners
Throttling timers in background frames
Immediately fall back to system fonts (shipped in 49)
Lazy load images
Cleaning up navigation history
Anything that can make the web better for users, regardless of specs