H5中History模式的运用详解-
比来看到vue-router的HTML5 History 模式路由的实现,然后顺便又去研究了一下HTML5 的 History,下列是本人的一些了解,顺便用jquery写 一个实现相似vue-router里面HTML5 History 模式路由器,以达到练练手,熟知熟知的目的。
一、history.pushState
history.pushState(state, title, url);
上面首先和第二个参数可认为空,主要就是第三个参数,表示新历史纪录的地址,阅读器在调取pushState()办法后不会去加载这个URL,新的URL纷歧定如果绝对地址,要是它是相对的,它一定是相关于目前的URL
二、history.replaceState
history.replaceState(state, title, url);
window.history.replaceState 和 window.history.pushState 相似,不一样之处在于 replaceState 不会在 window.history 里新增历史记载点,其结果相似于 window.location.replace(url) ,都是不会在历史记载点里新增一个记载点的。
三、window.onpopstate
来监听url的变化
window.addEventListener("popstate", function() { var currentState = history.state; /* * 触发事件后要施行的程序 */ }); //或者 window.onpopstate = function(){}
javascript足本施行 window.history.pushState 和 window.history.replaceState 不会触发 onpopstate 事件,在阅读器点击前进或者后退会触发
谷歌阅读器和火狐阅读器在页面首先次打开的反馈是不一样的,谷歌阅读器蹊跷怪僻的是回触发 onpopstate 事件,而火狐阅读器则不会
四、下面贴一个相似vue-router的HTML5模式的例子,纯属加深了解,写的很粗糙。
HTML5 History 模式(第二版)
- 1
- 2
- 3