- From: Ian Hickson <ian@hixie.ch>
- Date: Fri, 27 Aug 2010 23:03:18 +0000 (UTC)
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. :) Indeed. > > 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. > (http://webkit.org/b/41372) Ok. 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. `._.-(,_..'--(,_..'`-.;.'
Received on Friday, 27 August 2010 16:03:18 UTC