Jquery 不带.pushstate的无限滚动后退按钮

Jquery 不带.pushstate的无限滚动后退按钮,jquery,html,infinite-scroll,Jquery,Html,Infinite Scroll,我有一个网站,使用无限滚动系统来加载我所有的帖子。一切都很好,除了在Chrome和Firefox中,当用户单击帖子,然后单击后退按钮时,页面完全从顶部重新加载,不必向下滚动到用户的最后位置。我已经研究了一些解决方案,其中之一是实现一个.pushState系统来更新url,但我想把它作为最后的手段保存下来 我注意到,像和这样的网站都实现了无限滚动系统,但是当用户单击帖子然后单击后退按钮时,它会将它们返回到最后一个位置,而不会使用.pushState更新url。他们是怎么做到的?谢谢,朱利安,下面是

我有一个网站,使用无限滚动系统来加载我所有的帖子。一切都很好,除了在Chrome和Firefox中,当用户单击帖子,然后单击后退按钮时,页面完全从顶部重新加载,不必向下滚动到用户的最后位置。我已经研究了一些解决方案,其中之一是实现一个
.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)