<p>Geohash is an interesting concept, but for this purpose we want something where the location and zoom can be read off the URL directly -- it's handy to be able to look at the location bar and see what zoom level you're at.</p>
<p>The ITO solution uses <a href="http://caniuse.com/#search=replaceState">sesssion history management</a> (in particular, <code>history.replaceState</code>), which is less widely available than <code>location.replace</code> (it's notably missing from IE<10). I would eventually like to progressively enhance part of OSM.org using <code>history.pushState</code>, but in my opinion it's best used for a different purpose:</p>
<ul>
<li>
<code>history.pushState</code>: Progressively enhance sites to add seamless, fast page loads between conceptually different pages. The GitHub file browser is an example of a good use.</li>
<li>
<code>location.replace</code>: Change the URL hash to reference a different section or location on the existing page -- in other words, for similar cases as a normal hash anchor.</li>
</ul><p>Importantly, both of these uses preserve the normal browser history semantics; <code>history.pushState</code> adds to the history when navigating to a conceptually different page, and <code>location.replace</code> <em>avoids</em> adding a history entry for the conceptually same page.</p>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href='https://github.com/openstreetmap/openstreetmap-website/pull/378#issuecomment-21497102'>view it on GitHub</a>.<img src='https://github.com/notifications/beacon/uTRSc6ihLa7Shf84BpiOpiUrGUapkX5IpvHQvKW5tj4sebzHIR9_xuyLZJp4vOv2.gif' height='1' width='1'></p>