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