通过HTML5的history实现无刷新页面动态加载功能,实现一些单页面应用场景,比如网易音乐等,页面改变时音乐不会停止,原因就是,音乐在外层容器,页面刷新不改变外层,history中加入pushState用于改变地址栏中的地址,给人一种页面跳转的感觉。
$(function(){
// 页面加载,写入history
var load_page = function(title, url, post_data){
history.pushState({"name": title, "data": post_data}, name, url);
}
// 历史记录改变时执行(解决了浏览器前进、后退按钮功能实现)
$(window).bind('popstate', (e)=>{
load_page(e.target.document.title, e.target.location.hash, {});
});
// 页面加载时执行(解决了手动输入地址页面加载)
$(window).bind('pageshow', (e)=>{
load_page(e.target.title, e.target.location.hash, {});
});
});