[whatwg] Global Script proposal.
Ian Hickson
ian at hixie.ch
Mon Sep 14 04:41:36 PDT 2009
On Mon, 7 Sep 2009, Dimitri Glazkov wrote:
> On Sat, Aug 29, 2009 at 2:40 PM, Ian Hickson<ian at hixie.ch> wrote:
> >> Another case is an application that uses navigation from page to page
> >> using menu or some site navigation mechanism. Global Script Context
> >> could keep the application state so it doesn't have to be
> >> round-tripped via server in a cookie or URL.
> >
> > You can keep the state using sessionStorage or localStorage, or you
> > can use pushState() instead of actual navigation.
>
> First off, sessionStorage and localStorage are not anywhere close to
> being useful if you're dealing with the actual DOM objects. The JS code
> that would freeze-dry them and bring back to life will make the whole
> exercise cost-prohibitive.
Indeed. I don't see why you would want to be keeping nodes alive while
navigating to entirely new documents though.
> But more to the point, I think globalScript is a good replacement for
> the pushState additions to the History spec. I've been reading up on the
> spec an the comments made about pushState and I am becoming somewhat
> convinced that pushState is confusing, hard to get right, and full of
> fail. You should simply look at the motivation behind building JS-based
> history state managers -- it all becomes fairly clear.
>
> The best analogy I can muster is this: pushHistory is like creating
> Rhoad's-like kinetic machines for moving furniture around the house in
> an effort to keep the tenant standing still. Whereas globalScript
> proposes to just let the poor slob to walk to the chest to get the damn
> socks.
>
> My big issue with pushHistory is that it messes with the nature of the
> Web: a URL is a resource you request from the server. Not something you
> arrive to via clever sleight of hand in a user agent. So, you've managed
> to pushState your way to a.com/some/path/10/clicks/from/the/home/page.
> Now the user bookmarks it. What are you going to do know? Intuitively,
> it feels like we should be improving the user agent to eliminate the
> need for mucking with history, not providing more tools to encourage it.
The only criticism of substance in the above -- that pushState() lets you
change the URL of the current page when you change the page dynamically --
is pretty much the entire point of the feature, and I don't understand why
it's bad. I certainly don't want to require that every pan on Google Maps
require a new page load.
On Tue, 8 Sep 2009, Anne van Kesteren wrote:
>
> If JavaScript can be somehow kept-alive while navigating to a new page
> within a single domain, be in control of what is displayed and without
> security issues and all that'd be rather cool and also solve the issue.
This seems substantially less preferable, performance-wise, than having a
single Document and script, using pushState().
The pushState() model is basically fixing the AJAX model to work right; it
seems like a good thing to me.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list