Client-side caching with JavaScript, HTML5 and shitty browser friendly.