刷新期间保持滚动位置

时间:2011-04-07 14:48:16

标签: javascript scroll

我有一个Web服务器,显示房间列表并显示状态。每30秒刷新一次,收集新事件并显示房间的任何状态变化。

问题是刷新率必须快,因此事件是实时注册的,但每次页面刷新时用户都会移回列表顶部,这可能有几百个房间。

服务器由.jsp文件组成,我认为这些文件是javascript,因为它在页面顶部附近的HTML标签中表示javascript。

我只使用过javascript和PHP的添加,所以我对它有点不确定。

有没有人知道我可以存储用户滚动位置的方法,并在页面刷新时将其重置。

由于

2 个答案:

答案 0 :(得分:2)

您可以将scrollTop的值存储在cookie中,然后onload,将scrollTop设置回该值,但这可能会给用户带来不稳定的体验。

您可能想尝试对新数据进行XHR / Ajax调用,然后将其附加到页面上的正确位置。

你最喜欢的JS库会让你很容易做到。

答案 1 :(得分:0)

现在你应该使用sessionStorage而不是cookie。 Cookie会在标签之间共享(可能非常混乱),而sessionStorage对于标签是唯一的:

  

sessionStorage类似于Window.localStorage,唯一的区别是当存储在localStorage中的数据没有到期设置时,存储在sessionStorage中的数据在页面会话结束时被清除。只要浏览器处于打开状态,页面会话就会持续,并且会在页面重新加载和恢复后继续存在。 在新标签页或新窗口中打开页面会导致启动新会话,这与会话Cookie的工作方式不同。

相关问题