In this chapter, we learned that using response caching in action methods and views is essential, but it must be used judiciously because you do not want your content to become outdated. Cache profiles are preferred for action methods, as they provide a centralized location, which makes it easier to make changes. You can have as many profiles as you need.
Distributed caching can help if you need to share data among a cluster of servers, but be warned that transmitting data over the wire can take some time, even if, trivially, it is faster than retrieving it from a database, for example. It can also take a lot of memory, and so can cause other unforeseeable problems.
Then, we saw that bundling and minification are also quite handy because they can greatly reduce the amount of data to be transmitted, which can be even more important for mobile browsers.
Asynchronous operations should also be your first choice; some modern APIs don't even allow...