Seeing The Light
Achieving Performant Web Applications
Agenda
Owen Buckley
@thegreenhouseio
My goal is not build the next best thing.
My goal is to help you and your team build the next best thing.
{
}
Why?
Improving the User’s (network) Experience
By The Numbers (as of 9/2016)
Modern JavaScript Applications
The JavaScript Renaissance
“Modules” (before)
Modules (current)
Module “Bundling” (before)
Module Bundling (current)
Entry Point (before)
Entry Point (current)
static analysis, ftw
The Critical Rendering Path
Key Challenges
Number of Requests
Browsers have a limit of how many simultaneous requests can be made at once.
Too many of these requests can block fetching and thus loading / execution.
Size of Bundles / Assets
With JavaScript, the larger the file size, the longer the time to parse / evaluate / execute.
CSS is render blocking too, meaning parsing will delay layout / paint phases.
Caching
We should be intelligently caching / cache busting our assets.
Any good caching strategy should start with a good code splitting strategy.
Key Measurements
Shining
A Light(house)
What is Lighthouse?
Recommendations
Recommendations: Operations
Recommendations: Web Application
Recommendations: Product
Demo
Closing
Thoughts
Recap
Takeaways
What About...?
Thank you!
Links / References