问题是这样子:
我现在有一个页面(比如列表页面),分为很多结构相同的条目,然后用上拉加载等方式通过ajax请求更多的数据放到页面中。
然后点击其中的一条进入下一个页面(比如详情页面,是一个新的页面),然后返回上一页(也就是列表页面)。
这时候会刷新列表页面,呈现的页面又是第一次进入该页的效果,我刚请求的那些数据没了,又得重新请求,如果用户请求了很多,页面很长,返回到这页时都没了,用户体验太差了。
如何做到返回到前一页时保留上一次从该页跳转到其他页面时该页的状态?ajax请求的数据都在,并且页面滚动到跳转时的地方。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
•有一个比较土的方式是锚点,每次加载你都改变一次锚点,当重新载入这个页面时,根据锚点来重新加载信息
•更加现代的方式你可以用history.pushState方法和history.replaceState以及window对象的popstate事件,这个方式可以让你用JS自己控制URL和前进后退事件,并且用ajax刷新网页的局部内容,新浪微博就用了这个技术,我早年写过一个demo: http://vifix.cn/atelier/demos/html5-update-browser-url-without-reloading-page/,详细API介绍你可以看MDN: https://developer.mozilla.org/en-US/docs/Web/API/History_API#Adding_and_modifying_history_entries