Re: [whatwg] Application Cache for on-line sites

2011-02-18 Thread Michael Nordman
On Fri, Feb 11, 2011 at 1:14 PM, Michael Nordman micha...@google.com wrote:
 Once you get past the should this be a feature question, there are
 some questions to answer.

I'll take a stab at answering these questions.

 1) How does an author indicate which pages should be added to the
 cache and which should not?

 A few ideas...
 a. html useManifest='x'
 b. If the main resource has a no-store header, don't add it to the
 cache, but do associate the document with the cache.
 c. A new manifest section to define a prefix matched namespace for these 
 pages.

Option (c) isn't precisely targeted at individual resources, authors
would have to arrange their URL namespace more carefully to achieve
the desired results. Option (a) and (b) can be applied specifically to
individual pages offering greater control over. And option (a) is the
more explicit the two. Authors need only edit the page to get the
desired result instead of having to arrange for the appropiate http
headers. Readers of the code (and view sourcers of the pages) can more
easily determine how this page should utilize the appcache just by
looking at the source of the page.

My pick would be option (a), html useManifest='x'

 2) What sequence of events does a page that just uses the cache w/o
 being added to it observe?

The same sequence of events as a master entry that does get added to the cache.

 3) At what point do subresources in an existing appcache start getting
 utlized by such pages? What if the appcache is stale? Do subresource
 loads cause revalidation?

Swap the cache into use upon successful update completion, so again
just like for master entry pages that do get added to the cache.

But this observation is the crux of it. There's a window of time
between page loading and update completion. During that interim
resources resident in the appcache can be used to effectively augment
the browser's regular HTTP cache. For example, when the page requests
a subresource and the resource in the appcache is fresh enough per
http caching rules, it may be returned immediately w/o any validation.

WDYT?


Re: [whatwg] Application Cache for on-line sites

2011-02-13 Thread Felix Halim
I have a use case where it is preferable that the main page is not cached:

Suppose you have a main page that changes based on it's ID:

http://example.com/page.php?id=10

The appCache will store each main page with different id in separate
cache, which is undesirable!
And we DON'T want to cache the main pages, since the content differs
significantly (think of it as a forum website).

Of course, you can make the page.php as an application entirely,
then the id + its content are loaded via AJAX, but that violates the
nature of URL linking! Other websites cannot easily link to the
application with page id = 10 (since you remove the ?id=10 from
the URL). Of course you can use SHE BANG into the URL (to specify
the id) to bookmark (or to link to) AJAX pages, but that means
browsers without Javascript enabled will break! (it doesn't degrade
gracefully).

That is why, we have to have a mechanisms to exclude the main page to be cached.

The main goal here is NOT to make the page offline, but to cache the
resources that the page uses (i.e, .js, .css, images, etc...) that are
very likely to be IMMUTABLE (particularly the jQuery.js and jQueryUI
css+images that almost every sites uses!). It should degrade
gracefully for older browsers if they don't understand the manifest
files.

Felix Halim


On Sat, Feb 12, 2011 at 7:03 AM, Jeremy Orlow jor...@chromium.org wrote:
 bcc chromium-html5

 In addition to what Michael has cited, I've had many developers (at various
 Google events) ask why we don't have some API like this as well.  I think
 it's clear there's demand.

 On Fri, Feb 11, 2011 at 1:14 PM, Michael Nordman micha...@google.comwrote:

 Waking this feature request up again as it's been requested multiple
 times, I think the ability to utilize an appcache w/o having to have
 the page added to it is the #1 appcache feature request that I've
 heard.

 * The Gmail mobile team has mentioned this.

 * Here's a thread on a chromium.org mailing list where this feature is
 requested: How to instruct the main page to be not cached?

 https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/a254e2090510db39/916f3a8da40e34f8

 * More recently this has been requested in the context of an
 application that uses pushState to alter the url of the main page.

 To keep this discussion distinct from others, I'm pulling in the few
 comments that have been made on another thread.

 hixie said...
  Why can't the pages just switch to a more AJAX-like model rather than
  having the main page still load over the network? The main page loading
  over the network is a big part of the page being slow.

 and i replied...
  The premise of the feature request is that the main pages aren't
  cached at all.
 
  | I tried to use the HTML5 Application Cache to improve the performances
  | of on-line sites (all the tutorials on the web write only about usage
  | with off-line apps)
 
  As for why can't the pages just switch, I can't speak for andrea,
  but i can guess that a redesign of that nature was out of scope and/or
  would conflict with other requirements around how the url address
  space of the app is defined.

 Once you get past the should this be a feature question, there are
 some questions to answer.

 1) How does an author indicate which pages should be added to the
 cache and which should not?

 A few ideas...
 a. html useManifest='x'
 b. If the main resource has a no-store header, don't add it to the
 cache, but do associate the document with the cache.
 b. A new manifest section to define a prefix matched namespace for these
 pages.

 2) What sequence of events does a page that just uses the cache w/o
 being added to it observe?

 3) At what point do subresources in an existing appcache start getting
 utlized by such pages? What if the appcache is stale? Do subresource
 loads cause revalidation?

 On Mon, Dec 20, 2010 at 12:56 PM, Michael Nordman micha...@chromium.org
 wrote:
  This type of request (see forwarded message below) to utilize the
  application cache for subresource loads into documents that are not
 stored
  in the cache has come up several times now. The current feature set is
 very
  focused on the offline use case. Is it worth making additions such that
 a
  document that loads from a server can utilize the resources in an
 appcache?
  Today we have html manifest=manifestFile, which adds the document
  containing this tag to the appcache and associates that doc with that
  appcache such that subresource loads hit the appcache.
  Not a complete proposal, but...
  What if we had something along the lines of html
  useManifest=''manifestFile, which would do the association of the doc
 with
  the appcache (so subresources loads hit the cache) but not add the
 document
  to the cache?
 
  -- Forwarded message --
  From: UVL andrea.do...@gmail.com
  Date: Sun, Dec 19, 2010 at 1:35 PM
  Subject: [chromium-html5] Application Cache for on-line sites
  To: Chromium HTML5 

Re: [whatwg] Application Cache for on-line sites

2011-02-11 Thread Michael Nordman
Waking this feature request up again as it's been requested multiple
times, I think the ability to utilize an appcache w/o having to have
the page added to it is the #1 appcache feature request that I've
heard.

* The Gmail mobile team has mentioned this.

* Here's a thread on a chromium.org mailing list where this feature is
requested: How to instruct the main page to be not cached?
https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/a254e2090510db39/916f3a8da40e34f8

* More recently this has been requested in the context of an
application that uses pushState to alter the url of the main page.

To keep this discussion distinct from others, I'm pulling in the few
comments that have been made on another thread.

hixie said...
 Why can't the pages just switch to a more AJAX-like model rather than
 having the main page still load over the network? The main page loading
 over the network is a big part of the page being slow.

and i replied...
 The premise of the feature request is that the main pages aren't
 cached at all.

 | I tried to use the HTML5 Application Cache to improve the performances
 | of on-line sites (all the tutorials on the web write only about usage
 | with off-line apps)

 As for why can't the pages just switch, I can't speak for andrea,
 but i can guess that a redesign of that nature was out of scope and/or
 would conflict with other requirements around how the url address
 space of the app is defined.

Once you get past the should this be a feature question, there are
some questions to answer.

1) How does an author indicate which pages should be added to the
cache and which should not?

A few ideas...
a. html useManifest='x'
b. If the main resource has a no-store header, don't add it to the
cache, but do associate the document with the cache.
b. A new manifest section to define a prefix matched namespace for these pages.

2) What sequence of events does a page that just uses the cache w/o
being added to it observe?

3) At what point do subresources in an existing appcache start getting
utlized by such pages? What if the appcache is stale? Do subresource
loads cause revalidation?

On Mon, Dec 20, 2010 at 12:56 PM, Michael Nordman micha...@chromium.org wrote:
 This type of request (see forwarded message below) to utilize the
 application cache for subresource loads into documents that are not stored
 in the cache has come up several times now. The current feature set is very
 focused on the offline use case. Is it worth making additions such that a
 document that loads from a server can utilize the resources in an appcache?
 Today we have html manifest=manifestFile, which adds the document
 containing this tag to the appcache and associates that doc with that
 appcache such that subresource loads hit the appcache.
 Not a complete proposal, but...
 What if we had something along the lines of html
 useManifest=''manifestFile, which would do the association of the doc with
 the appcache (so subresources loads hit the cache) but not add the document
 to the cache?

 -- Forwarded message --
 From: UVL andrea.do...@gmail.com
 Date: Sun, Dec 19, 2010 at 1:35 PM
 Subject: [chromium-html5] Application Cache for on-line sites
 To: Chromium HTML5 chromium-ht...@chromium.org


 I tried to use the HTML5 Application Cache to improve the performances
 of on-line sites (all the tutorials on the web write only about usage
 with off-line apps)

 I created the manifest listing all the js, css and images, and the
 performances were really exciting, until I found that even the page
 HTML was cached, despite it was not listed in the manifest. The pages
 of the site are in PHP, so I don't want them to be cached.

 From
 http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html
 :
 Authors are encouraged to include the main page in the manifest also,
 but in practice the page that referenced the manifest is automatically
 cached even if it isn't explicitly mentioned.

 Is there a way to have this automating caching disabled?

 Note: I know that caching can be controlled via HTTP headers, but I
 just wanted to try this way as it looks quite reliable, clean and
 powerful.

 --
 You received this message because you are subscribed to the Google Groups
 Chromium HTML5 group.
 To post to this group, send email to chromium-ht...@chromium.org.
 To unsubscribe from this group, send email to
 chromium-html5+unsubscr...@chromium.org.
 For more options, visit this group at
 http://groups.google.com/a/chromium.org/group/chromium-html5/?hl=en.





Re: [whatwg] Application Cache for on-line sites

2011-02-11 Thread Jeremy Orlow
bcc chromium-html5

In addition to what Michael has cited, I've had many developers (at various
Google events) ask why we don't have some API like this as well.  I think
it's clear there's demand.

On Fri, Feb 11, 2011 at 1:14 PM, Michael Nordman micha...@google.comwrote:

 Waking this feature request up again as it's been requested multiple
 times, I think the ability to utilize an appcache w/o having to have
 the page added to it is the #1 appcache feature request that I've
 heard.

 * The Gmail mobile team has mentioned this.

 * Here's a thread on a chromium.org mailing list where this feature is
 requested: How to instruct the main page to be not cached?

 https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/a254e2090510db39/916f3a8da40e34f8

 * More recently this has been requested in the context of an
 application that uses pushState to alter the url of the main page.

 To keep this discussion distinct from others, I'm pulling in the few
 comments that have been made on another thread.

 hixie said...
  Why can't the pages just switch to a more AJAX-like model rather than
  having the main page still load over the network? The main page loading
  over the network is a big part of the page being slow.

 and i replied...
  The premise of the feature request is that the main pages aren't
  cached at all.
 
  | I tried to use the HTML5 Application Cache to improve the performances
  | of on-line sites (all the tutorials on the web write only about usage
  | with off-line apps)
 
  As for why can't the pages just switch, I can't speak for andrea,
  but i can guess that a redesign of that nature was out of scope and/or
  would conflict with other requirements around how the url address
  space of the app is defined.

 Once you get past the should this be a feature question, there are
 some questions to answer.

 1) How does an author indicate which pages should be added to the
 cache and which should not?

 A few ideas...
 a. html useManifest='x'
 b. If the main resource has a no-store header, don't add it to the
 cache, but do associate the document with the cache.
 b. A new manifest section to define a prefix matched namespace for these
 pages.

 2) What sequence of events does a page that just uses the cache w/o
 being added to it observe?

 3) At what point do subresources in an existing appcache start getting
 utlized by such pages? What if the appcache is stale? Do subresource
 loads cause revalidation?

 On Mon, Dec 20, 2010 at 12:56 PM, Michael Nordman micha...@chromium.org
 wrote:
  This type of request (see forwarded message below) to utilize the
  application cache for subresource loads into documents that are not
 stored
  in the cache has come up several times now. The current feature set is
 very
  focused on the offline use case. Is it worth making additions such that
 a
  document that loads from a server can utilize the resources in an
 appcache?
  Today we have html manifest=manifestFile, which adds the document
  containing this tag to the appcache and associates that doc with that
  appcache such that subresource loads hit the appcache.
  Not a complete proposal, but...
  What if we had something along the lines of html
  useManifest=''manifestFile, which would do the association of the doc
 with
  the appcache (so subresources loads hit the cache) but not add the
 document
  to the cache?
 
  -- Forwarded message --
  From: UVL andrea.do...@gmail.com
  Date: Sun, Dec 19, 2010 at 1:35 PM
  Subject: [chromium-html5] Application Cache for on-line sites
  To: Chromium HTML5 chromium-ht...@chromium.org
 
 
  I tried to use the HTML5 Application Cache to improve the performances
  of on-line sites (all the tutorials on the web write only about usage
  with off-line apps)
 
  I created the manifest listing all the js, css and images, and the
  performances were really exciting, until I found that even the page
  HTML was cached, despite it was not listed in the manifest. The pages
  of the site are in PHP, so I don't want them to be cached.
 
  From
  http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html
  :
  Authors are encouraged to include the main page in the manifest also,
  but in practice the page that referenced the manifest is automatically
  cached even if it isn't explicitly mentioned.
 
  Is there a way to have this automating caching disabled?
 
  Note: I know that caching can be controlled via HTTP headers, but I
  just wanted to try this way as it looks quite reliable, clean and
  powerful.
 
  --
  You received this message because you are subscribed to the Google Groups
  Chromium HTML5 group.
  To post to this group, send email to chromium-ht...@chromium.org.
  To unsubscribe from this group, send email to
  chromium-html5+unsubscr...@chromium.org.
  For more options, visit this group at
  http://groups.google.com/a/chromium.org/group/chromium-html5/?hl=en.