- From: Liza Daly <liza@safaribooksonline.com>
- Date: Mon, 22 Jun 2015 15:14:55 -0400
- To: Dave Cramer <dauwhe@gmail.com>
- Cc: W3C Digital Publishing IG <public-digipub-ig@w3.org>
- Message-ID: <CAF1pCNg-aWn7yzNrSiq+owSn9k50PCLHwj6gOOem7EcpVO8ncA@mail.gmail.com>
I have even stronger language to use for the AppCache spec and
implementation than that ALA article. :) We gave up on supporting web-based
offline usage via Ibis Reader (now the core Safari platform) because it was
simply unworkable in practice.
Putting aside that the implementations have all been wildly buggy, a
practical difficulty with the app cache is that it expects a 1:1
relationship between a cache manifest and a domain. If you host a single
book on a single domain, this isn't much of a scaling problem, but if you
wanted to host 100 or 100,000 books on a domain, you'd have to expire the
entire cache any time you added or removed a single title. Also, the cache
is not infinite on most platforms, and has a per-domain hard limit.
Bookish (now the Overdrive web app) does still use app cache, and gets
around this problem by creating subdomains _for every title_:
https://odcom-366d624d6b53b08a9d0a2c90b1dcea88.read.overdrive.com/
https://odcom-c2b601cb17f569fd4711e467edd142c1.read.overdrive.com/
I imagine this would be an unpopular general purpose solution.
Liza
On Mon, Jun 22, 2015 at 2:54 PM, Dave Cramer <dauwhe@gmail.com> wrote:
> We've recently spent a lot of time discussing how to make a book [1]
> readable both offline and online. As usual, this is an issue that has come
> up in the larger web world. and there is a solution already supported by
> every major browser. I'm speaking of AppCache [2], of course.
>
> At first glance, AppCache seems well-suited for books. An application
> manifest file (text-only) lists the resources used by the book, including
> CSS, images, scripts, fonts, etc.:
>
> CACHE MANIFEST
> #v3 2015-06-05
> css/mobydick.css
> metadata.json
> manifest.json
> title-page.html
> copyright.html
> introduction.html
> epigraph.html
> c001.html
> c002.html
>
>
> When you first visit a page, the files listed in the manifest are
> downloaded. The next time you visit the page, you'll get the cached
> version. This is a problem for the regular web, but could be an advantage
> for us. If you change the manifest file on the server, you will trigger an
> update of the cache.
>
> So my question is, why does everyone hate [3,sorry about the language]
> this? The cache manifest itself would be helpful for EPUB+WEB, as it gives
> us the list of files everyone seems to want, but far simpler than EPUB's
> <manifest> element.
>
> * * *
>
> To be fair, the word "manifest" is probably less overloaded than the word
> "template." Nevertheless, the "Manifest for a web application"
> specification [4] appears to be unrelated to the application manifest used
> by AppCache. Manifests for web applications are JSON files that provide
> metadata for a web app. They could provide a location and syntax for book
> metadata, and identify a starting point for the book:
>
> {
> "name": "Moby-Dick",
> "short_name": "Moby-Dick",
> "icons": [{
> "src": "icons/moby-dick-icon.webp",
> "sizes": "64x64",
> "type": "image/webp"
> }],
> "start_url": "title-page.html",
> "display": "minimal-ui",
> }
>
> Together, these two manifests seem to meet several of EPUB+WEB's
> requirements. I'm interested in further exploring these ideas to see if
> they can be adopted or modified to meet our needs.
>
> Dave
>
>
> [1] Feel free to think "publication" every time I write "book" :)
> [2] https://html.spec.whatwg.org/multipage/browsers.html#offline
> [3] http://alistapart.com/article/application-cache-is-a-douchebag
> [4] https://w3c.github.io/manifest/
>
Received on Monday, 22 June 2015 19:15:42 UTC