This has been a very long chapter with some advanced concepts being covered. You learned how to trigger different caching strategies based on the request URL, modularizing the service worker logic, and employing cache invalidation strategies. Plus, you got to play with a new progressive web app!
There was a lot of valuable information and source code covered in this chapter, but these examples should only serve as a base reference for your applications. Not only should you be a good steward of the storage your application is allocated, but you should be mindful of your users' data plans.
In the next chapter, we'll continue to review how to use service workers and caching to make applications perform better. You will also see how to use available tools to evaluate and diagnose performance issues so that you can make a better application.