2011-04-07 98 views
0

我有一个Web服务器,显示房间列表并显示那些状态。每隔30秒刷新一次以收集新事件并显示房间的任何状态变化。刷新期间保持滚动位置

问题是刷新率必须很快,以便实时注册事件,但用户每次刷新页面时都会移回列表的顶部,这可能会导致数百间客房。

服务器是由.jsp文件构成的,我认为它是JavaScript,因为它在靠近页面顶部的HTML标记中显示了javascript。

我只使用JavaScript为PHP添加一个,所以我有点不确定它。

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

感谢

+1

*他们。如果你使用php + ajax,你可以加载数据而不刷新页面。你可以发布任何代码/更多细节? – Calum 2011-04-07 14:50:58

+1

JSP代表JavaServer Pages,它不是Javascript。这可能会帮助您进行搜索。 – Dai 2011-04-07 14:53:21

+0

@Calum我不使用PHP。我正在增强别人的代码(以前的员工),我不知道我在做什么,因为我只知道PHP。 – Skeith 2011-04-07 14:57:25

回答

2

你可以scrollTop的值存储在cookie中,然后onload事件,设置scrollTop的回到那个价值,但它可能会为一个生涩的体验给用户。

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

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

0

现在你应该使用sessionStorage而不是cookie。甲cookie将跨接片(潜在地非常混乱)被共享,而sessionStorage的是唯一的选项卡:

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

相关问题