New storytelling methods are incredibly useful for AJAX navigation. For example, pushState or replaceState allow you to update your browser’s address bar so that the user sees a clean URL instead of an ugly hash.
However, as I am sure, you know, support for the new API is still limited. location.hash is much more widely supported at this stage, which means that you have to write a hash reserve for browsers that cannot use the new window.history properties.
source share