RAIL is what Google calls a "user-centric performance model". It's a set of guidelines for measuring our app's performance. We should try to avoid straying outside of these suggestions.
We will use RAIL's principles to speed up our application and ensure that it performs well enough for all users. You can read Google's full docs on RAIL at https://developers.google.com/web/fundamentals/performance/rail.
RAIL outlines four specific periods in an application's life cycle. They are as follows:
- Response
- Animation
- Idle
- Load
Personally, I think it's easier to think about them in reverse order (since it's more true to their actual order), but that would have spelled LIAR, so we can see why Google shied away from that. Either way, that's how we'll cover them here.