[whatwg] Firing popstate for all history entry changes
ian at hixie.ch
Fri Aug 27 16:03:18 PDT 2010
On Wed, 25 Aug 2010, Mihai Parparita wrote:
> [...] it seems like the (web) developer's mental model for popstate
> would be much simpler if it fired whenever the current session history
> entry changed, regardless of whether it has a state object or was the
> first entry. Then if someone wished to listen to all history events,
> they would just have to use onpopstate, instead of a combination of
> onpopstate and onhashchange.
Ok, I've changed popstate to get fired (or queued up, if before 'load')
for every traversal, not just those to non-null states.
On Wed, 25 Aug 2010, Justin Lebar wrote:
> > It might also help if the event wasn't called "popstate", since that
> > implies a 1:1 relationship with pushState calls, but you can already
> > get popstate events without corresponding pushState calls.
> > "historytraversal" perhaps?
> I think we've decided here that the time for major changes to this API
> has past -- it's already in use in the wild. If we *do* want to change
> the API, I'd like to get in line. :)
> > However, it seems like the (web) developer's mental model for popstate
> > would be much simpler if it fired whenever the current session history
> > entry changed, regardless of whether it has a state object or was the
> > first entry.
> This is the model Firefox uses, and we're prepared to ship it in the
> upcoming release of version 4. It's divergent from WebKit, which has
> already shipped, but WebKit is going to have to change anyway.
BTW, there's another problem with this API, which is that since popstates
are dropped while the document is loading, calling pushState() while the
document is loading leads to a very confused state. Should we make
pushState() throw an exception if called before load? (replaceState() is
probably ok, though even that's a bit dodgy.)
I assume we don't want to change this, in which case I should probably put
a note in the spec warning about using pushState() and replaceState()
before load. Any opinions on this?
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg