I was browsing thought GitHub today and noticed that the individual repository navigation doesn't use hash-bangs in the URL /#! or /# and the back button still works. How do you think they are accomplishing this? How does this affect search engine crawling from Googlebot? I know it looks for # in the url.
I'm really quite curious as I know using /# is quite debatable.
Here's an example: https://github.com/mirah/pindah
Thanks!
The effect is implemented
history.pushState()
function and handlers on thepopstate
event — both a part of the HTML5 DOM interface in some browsers.Clicking the link uses
pushState()
to update the location and load new data into the page without reloading the whole page. Handlingpopstate
makes the back button work correctly.The GutHub blog calls their particular usage the “Tree Slider” (it loads the content for tree members and visually slides it into place). The effect and its implementation was described on the GitHub blog.
They blogged about it a while back:
https://github.com/blog/760-the-tree-slider