如何根据网页内容变换网址但不必重新加载网页?
自从 AJAX问世之后,由于节省带宽、提升网页回应速度的效果显著,被大量采用,甚至发展出了 SPA,但是这样反而出现了一个副作用,就是我们无法将网页最终呈现的结果通过URL分享出去,不利于 SEO,我们就来看一下,怎么在都是用非同步请求获取网页内容的情况下,变换网址。
window.history.replaceState
如果我们想要单纯地转换目前网址列中的网址,可以使用window.history.replaceState() 这个方法,我们可以通过这个方法去改变网址列上的网址,他有三个参数:
- state object: 是一个跟浏览历史记录有关的JavaScript物件,可以凭借window.history.state去的目前的state object,或是在window.onpopstate的事件中也会取得与触发该事件的相关历史浏览记录的 state object
- title:用来描述state object的标题
- URL:历史浏览记录的URL
window.history.pushState
window.history.pushState 跟window.history.replaceState()使用方式是一样的,差