Difference between revisions of "Webapps/AppCacheUseCases"
(added some cases yandex wants (with name of someone real who cares). First messy scribble)
Revision as of 14:53, 2 May 2013
1. Initial loading - Yandex
Our SERP (and Yandex main page www.yandex.ru) uses embedded styles and scripts for faster loading than with multiple requests for styles/scripts/...
But users load them every time they visit the results page, because the browser doesn't cache it. It would be nice on the first visit to extract the styles and scripts and store them in the cache.
2. Bundles - Yandex
Sometimes we need to load several resources (js/css/json/...) before we can actually show something to user. Like a dialog, or another complex control. Or if it's a single page application before change "page". Again, it's often faster to make one request than several, but it would be even faster if we could then cache them separately: HttpCache.store(url1, content1); HttpCache.store(url2, content2); ... So that later we can use the files as usual (<script>, <link>...).
3. Diffs (delta updates) - Yandex
Every static file (js/css/...) has a version, e.g. http://yandex.st/mail/1.3.8/mail.js Whan we release a new version our users have to download it. It could be hundreds of kilobytes (or more). But the difference between versions is often not very big. So we want to make delta updates.
It would be nice if we could download the diff, apply it in the browser and store the update in cache e.g.:
var oldVersion = '1.3.8'; var newVersion = '1.3.9'; var oldContent = HttpCache.get(oldUrl); var newContent = applyPatch(oldContent, patch); HttpCache.store(newUrl, newContent);
4. Preloading - Yandex
Well, we can use normal xhr for that but maybe we can do more with HttpCache.
Basically we want methods for loading resources, storing them in cache, fetching them from cache, checking if something is in the cache, ...