Cache view data, then re-generate view using cached data on request