I personally prefer pushState because it makes nicer looking URLs and I think that is important for user experience.
You can use history.pushState with a hash fallback using the history.js polyfill if you want to use pushState, but don't want to have issues with older browser support.