保存动态Web界面状态的最佳方法

时间:2010-10-21 21:45:01

标签: ui-design

基本上在我的网站上,我有一个带有一叠盒子的侧边栏;每个框都可以由用户折叠或展开。我需要保存当前登录用户的每个框的状态。 我不想使用cookie,因为如果用户更改了浏览器或计算机,则所有框都将进入默认状态。

每次用户折叠/展开框时,是否应将此信息保存在数据库中进行查询?你会怎么处理这个?感谢。

修改:如果用户反复点击切换按钮,例如两秒内十次,只是因为他喜欢这些框的动画,该怎么办?他将在两秒钟内完成十次查询。所以也许问题应该是:何时我应该保存这些数据?

2 个答案:

答案 0 :(得分:1)

如果您需要从多台计算机中保留这些选项,则需要某种形式的服务器端存储。

这可能是数据库或平面文件。选择取决于您的可用性,技能组合以及扩展需求。如果您只有几个用户,平面文件可能是您的最佳选择。

答案 1 :(得分:1)

  1. 每次更改框时,调用(客户端)“已更改”功能。

  2. 保留两个(客户端)状态项:发送服务器的最后一次更新时间以及是否已设置计时器。

  3. 编写一个(客户端)“更新”函数,该函数发送更新并更新状态以标记上次更新刚才。

  4. 调用更改的函数时:如果设置了计时器,则立即返回;如果从未发送过更新或超过十秒前发送了上次更新,则调用更新函数并返回。否则设置计时器以在十秒后发送更新。

  5. 定时器回调应该只是清除定时器标志并调用更新功能。

  6. 同样在unload事件中检查是否设置了计时器,如果是,则清除计时器并调用计时器回调函数。

  7. 因此,结果是当用户振动时,您立即发送之外的更新,在这种情况下,您最多每10秒发送一次更新。

    在某些情况下,您可能会丢失更新,但这很可能只会在用户正在使用切换进行,然后在计时器触发之前关闭页面时发生,在这种情况下,他可能不会注意到。