ajax 本身不支持 浏览器 前进 后退操作。

目前采用 rsh 来模拟通过设置window.location.hash属性的值来人工的改变DOM属性window.location。通过编辑这个属性的值,可以改变地址栏中的URL,还可以向网页游览历史记录中添加一条记录,但是页面并不会被重新加载,这主要是由于被改变的只有片段识别符,所谓的片段识别符是指URL中#之后的部分,由于网页游览历史中记录的都是不同的URL,所以,游览器的后退和前进按钮就通过改变window.location.hash的值在这些URL间进行导航。只要对window.location.hash保持监视,一旦它的值发生了改变,就会触发一个事件。用户的代码可以与这一事件建立连接,一旦该事件被触发,就可以根据被改变的片段识别符来加载内容。

下边是例子 demo