Histroy API

不能跨域,option 响应是浏览器来比较域的

改变 hash 不会发送请求。服务端拿不到客户端的 hash 字段。

location 可以修改hash而不改变document。但是每次修改会触发 hashchange 事件,都会加入历史。

histroy 仅仅服务于当前用户。
history.pushState(state,title,URL) 会改变 referrer 的值,之后的请求的referrer 值是当前值
不触发 popstate 事件
state 对象深拷贝,title现在浏览器忽略
history.replaceState()
history.back/forward 触发 popstate 事件也是异步的

在历史栈中切换时,都会触发popstate事件。如果被激活的历史记录条目是由 pushState 所创建,或是被 replaceState 方法影响到的,popstate 事件的状态属性将包含历史记录的状态对象的一个拷贝。

在页面加载时(只会发生 onload 事件不会发生 popstate 事件),可能会包含一个以前设置的非空状态对象,可以通过history.state 属性读取。