Jquery 不带.pushstate的无限滚动后退按钮
我有一个网站,使用无限滚动系统来加载我所有的帖子。一切都很好,除了在Chrome和Firefox中,当用户单击帖子,然后单击后退按钮时,页面完全从顶部重新加载,不必向下滚动到用户的最后位置。我已经研究了一些解决方案,其中之一是实现一个Jquery 不带.pushstate的无限滚动后退按钮,jquery,html,infinite-scroll,Jquery,Html,Infinite Scroll,我有一个网站,使用无限滚动系统来加载我所有的帖子。一切都很好,除了在Chrome和Firefox中,当用户单击帖子,然后单击后退按钮时,页面完全从顶部重新加载,不必向下滚动到用户的最后位置。我已经研究了一些解决方案,其中之一是实现一个.pushState系统来更新url,但我想把它作为最后的手段保存下来 我注意到,像和这样的网站都实现了无限滚动系统,但是当用户单击帖子然后单击后退按钮时,它会将它们返回到最后一个位置,而不会使用.pushState更新url。他们是怎么做到的?谢谢,朱利安,下面是
.pushState
系统来更新url,但我想把它作为最后的手段保存下来
我注意到,像和这样的网站都实现了无限滚动系统,但是当用户单击帖子然后单击后退按钮时,它会将它们返回到最后一个位置,而不会使用
.pushState
更新url。他们是怎么做到的?谢谢,朱利安,下面是一个基于回购协议的例子
pushState
,并使用唯一的uuid
将其推入窗口历史对象window.history.state.uuid
现在可以作为我们可以查询的内容提供李>
窗口。滚动,通过uuid
将其存储在缓存中李>
此外,在路由更改(onpopstate
)上,我们可以使用当前的window.state.uuid
查询缓存,检索scrollY
位置并调用window.scrollTo(scrollY)
以下是一个基于回购协议的突出要点示例
我们实现了pushState
,并使用唯一的uuid
将其推入窗口历史对象
window.history.state.uuid
现在可以作为我们可以查询的内容提供李>
在更改路由之前,我们可以获得当前的窗口。滚动,通过uuid
将其存储在缓存中李>
此外,在路由更改(onpopstate
)上,我们可以使用当前的window.state.uuid
查询缓存,检索scrollY
位置并调用window.scrollTo(scrollY)