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

我应该在用户折叠/扩展一个框时将这些信息保存在数据库上吗?您将如何处理?谢谢。

编辑: 如果用户重复单击“切换”按钮,例如两秒钟内的十次,只是因为他喜欢盒子的动画吗?他将在两秒钟内进行十个查询。所以也许问题应该是: 什么时候 我应该保存此数据吗?

有帮助吗?

解决方案

  1. 每当盒子更改时,请调用(客户端)“更改”功能。

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

  3. 编写(客户端)“更新”功能,该功能发送更新并更新状态以标记最后一个更新刚刚是现在。

  4. 当调用更改的函数时:如果设置了计时器,请立即返回;如果从未发送更新或最后一次更新已在十秒钟前发送,请致电更新功能并返回。否则,将计时器设置为十秒钟后发送更新。

  5. 计时器回调应简单地清除计时器标志并调用更新功能。

  6. 也在 卸下 事件检查是否设置了计时器,是否是清除计时器并调用计时器回调函数。

因此,结果是您立即发送更新 除了 当用户拍打时,在这种情况下,您最多只能每十秒发送一次更新。

在某些情况下,您可能会丢失更新,但是只有当用户使用切换并在计时器启动之前关闭页面时,这可能会发生,在这种情况下,他可能不会注意到。

其他提示

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

这可以是数据库或平面文件。选择取决于您拥有的东西,技能集和扩展需求。如果您只有少数用户,那么平面文件可能是您的最佳选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top