最近遇到一个用户体验问题,即从详情页回到列表页的时候,需要记住用户上次的位置,并且不刷新。
最开始返回使用的是 history.go(-1),发现并不好使,也许在有些浏览器下有效果。折腾半天,突然看到html5里新加的 window.history.replaceState的方法,以下是亲自实践:
假如 列表页位 list.html (其中有获取列表的方法 getList(),支持分页 和 构建列表的方法dealWithResult() 和 到详情页的方法 viewDetail() 和 一个全局变量data,用来累加存储列表数据),详情页是 detail.html ,我们不需要在detail页面做任何动作,只需要修改list页面。
1.在viewDetail方法里面处理,记住当前页码 和 当前滚动条的位置 和 当前列表显示的所有数据,如下:
var statedata = {}; statedata .curPage = curPage(当前页码);statedata. </