But wait a minute, is the github use the ajax page slide effect and work perfectly? After a peek on the source, I found they are using the html5 pushstate api on webkit and ff4, which can let you change the url without actually redirect the page.
sample:
$(function(){ //check if the browser support it. $.get('/new_page',function(data){ if(history.pushState){ //push the url to the browser history, with state object and title. history.pushState({isAjax:true},"push the state"), 'new_page'); } //update the data... }); //popstate event will triggered whenever the url changed //but the page won't reload if url is pushed into history //so you have to update page yourself or reload it. $(window).bind("popstate",function(e){ if (e.state.isAjax) { //make the ajax call for update page } }); });
try it yourself by typing
history.pushState({},"test","/test:);in your browser console, and you'll see the effect.
reference: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
No comments:
Post a Comment