Back to home

Browser Change History Event

网页应用为了支持浏览器的前进或者后退,除了使用URL作为状态区分的标准多页面应用,更多的时候需要自己维护状态,存放在某个地方,然后进行解析。




URL HashChange PJax
存储位置 URL URL Fragments URL
事件响应 Server端 $(window).trigger("hash change") $(window).trigger("popstate.pjax")
适用场景 多页应用 单页应用 伪单页应用


## HashChange

原版已经有三年没有维护了,使用了他的一个Fork版 https://github.com/dadario/jquery-bbq

### 问题

使用HashChange的好处是显式的状态信息,将状态已URL Fragments形式维护,便于传递(复制),支持Browser的前进和后退。
缺点也很明显,以URL Fragments的状态参数入口,序列化类型有限,而且需要自己维护(相比其他方案) 。
优化方案是只提供给URL Fragments一部分的状态,其余的不予支持。