【问题标题】:Maintaining Scroll Position With Back Button and Ajax Dom Manipulation使用返回按钮和 Ajax Dom 操作保持滚动位置
【发布时间】:2014-01-31 15:52:51
【问题描述】:
我正在使用无限滚动的 ajax 加载结果,但是,当您单击列表中的项目并离开页面,然后单击返回按钮时,您将返回列表顶部。
我不知道如何让用户回到他们离开的位置。
查看我正在处理的网站:
https://www.studenthouses.com/search/manchester/
向下滚动几次,然后单击一个属性,然后单击返回,您就会明白我的意思了。
我不记得结果位置并加载它们,因为它会花费太长时间,所以我真的需要浏览器在返回页面时记住 DOM,或者以某种方式缓存它。
有解决办法吗?
非常感谢
【问题讨论】:
标签:
javascript
jquery
html
ajax
【解决方案1】:
当然有,而且是小菜一碟。好吧,实际上它是一个 cookie :)
解决这个问题不需要太多。
首先,在这里获取一些 cookie:Cookie API
其次,您必须以某种方式对 cookie 中的数据进行编码。如果您有多个这样的页面,则必须以某种方式将它们分开或使用键值对并存储如下内容:
manchester=3522
每当您进入页面时,加载 cookie,等待页面完全展开(您使用 AJAX 或类似的,您必须等待页面被展开 em>,window.onload 不行)。
如果没有cookie,跳过这一步:
接下来,每当页面滚动时,修改 cookie。为避免抖动,您需要以轮询 的方式进行。在大约 500 毫秒时使用 setInterval() 并检查用户是否更改了滚动位置。如果他这样做了,请使用新值保存 cookie。