On Fri, Nov 8, 2013 at 9:45 AM, Antoine Musso <hashar+...@free.fr> wrote:

> So what is a cache manifest? :D


tl;dr - Cache manifests are made for offline web apps, and Wikipedia is not
an offline web app.

Cache manifests are a new HTML5 feature that is specifically made for
single page (or, at the very least, few-paged) offline web apps. You add a
special attribute to the <html> tag of all pages in your application. The
value of the attribute is a URL to a manifest file (it has its own mime
type and everything). In this file it specifies what pages in your
application should be explicitly cached.

The difference between cache manifests and normal browser caching is that
the browser will never update the cache unless the manifest changes. In
other words, if it has an offline copy, it will always serve it unless the
manifest file changes.

This is useful in cases where you have a web app that is entirely
front-end, i.e., once you download the HTML files you don't need to do
anything else (think something along the lines of a single player game).
That way the files will be permanently cached and the user can view the
website even if the site itself is offline. Most apps in the Chrome Web
Store will use this technique to have their web app stored.

There are multiple reasons it is not used here:

1) Wikipedia is not a single-paged app, it is many, many pages, and every
page of the app usually links to the manifest. It would be strange to have
any Wikipedia article a user visits permanently stored in the user's
browser. (Before somebody says "well just don't put articles in the
manifest", any page that has the manifest attribute is implicitly cached,
regardless of if it's in the manifest.)

2) It doesn't solve the actual problem. The problem here is the issue of
combining all JS files into one. We combine all the files using RL in order
to reduce round-trip time for first-time visitors, but at the same time it
increases what has to be downloaded for previous visitors when updates are
made. Cache manifests do not get around the round-trip time issue, so it
doesn't allow us to split up JS files. And with the JS files still
combined, cache manifests don't have a way to partially update modules. So
in the end it is completely useless.

See the following links for more information:
https://en.wikipedia.org/wiki/The_cache_manifest_in_HTML5
http://www.html5rocks.com/en/tutorials/appcache/beginner/

*-- *
*Tyler Romeo*
Stevens Institute of Technology, Class of 2016
Major in Computer Science
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to