How to rewrite URL without refresh, like GitHub.com

前端 未结 3 638
别跟我提以往
别跟我提以往 2020-11-29 05:56

I was browsing GitHub.com and I noticed when looking at the source for a repository, and you click on a file, the source code slides in and the URL changes, but it doesn\'t

相关标签:
3条回答
  • 2020-11-29 06:39

    Github uses window.history.replaceState()

    Here you can see how they do it

    0 讨论(0)
  • 2020-11-29 06:41

    XMLHttpRequest is used on the client-side in Chrome/Webkit browsers to fetch server-side resources without page refreshing, and content is dynamically loaded in, and animations can be hooked in during that content being appended.

    I'm not sure exactly why only Chrome is targeted by the ajax, as usually the hash mark changes when ajax is applied in the same manner ( like twitter ).

    For the url changing dynamically, I believe all that's done is location.href is updated. On second thought, it could be some new HTML5 feature that only chrome supports.

    0 讨论(0)
  • 2020-11-29 06:57

    I found this article which explains these HTML5 features - window.history.pushState(), window.history.replaceState() and the onpopstate() event: http://www.spoiledmilk.dk/blog/?p=1922

    As the article mentions, Flickr is also using this technique in several places.

    0 讨论(0)
提交回复
热议问题