单页面 历史状态管理

历史状态管理API可以让你改变URL而不用载入一个新的页面
history.pushState({name:”Nicholas”}, “Nicholas’ page”, “nicholas.html”);
执行了这个方法以后,新的地址会被加到历史记录状态里,而且location.href也会反映新的地址。
 
后退按钮也会被激活,当后退按钮按下时,会触发popstate事件,事件对象有一个叫做state的属性,包含了传进来对象内容:
EventUtil.addHandler(window, “popstate”, function(event){
var state = event.state;
if (state){                       //state is null when at first page load
processState(state);
}
});
 
修改state信息的方法:
history.replaceState({name:”Greg”}, “Greg’s page”);
 
确保自己做的URL在服务器有对应的地址,不然按刷新按钮会导致404
 
 
if (typeof history.pushState != 'undefined') { 
 
     // Async elements and that one-page-app snazziness
 
} else {
 
     // It still works. Don't panic. Normal URLs and requests FTW.
 
}

posted on 2016-01-28 13:57  迷茫小飞侠  阅读(260)  评论(0编辑  收藏  举报

导航