Patterns for caching/lookup of MVC partial views on client
===

Here's my scenario. I'm calling a url which points to a controller method that returns a partial view:

Controller method:

public ActionResult UserProfile() { return View("UserProfile"); }

Ajax request to get the view:

$.get('/Home/UserProfile', function (data) { $('.content').html(data); });

I would like to cache my "UserProfile" view so that each time the user clicks it, it doesn't have to go back to the server to fetch the view from the controller again.

I would also like to be able to determine if the view's been cached on the client before fetching it from the server, and if it has, get it out of cache and simply inject it into a div on my layout.

Has anyone done anything like this?