保存页面的状态.Cookie或会话
Save the state of page. Cookie or session?
我有一个小的web应用程序(只有1页),允许用户输入和选择一些选项。输入文本和选择将以表格的形式显示在另一个div中。您可以参考下面的示例:http://jsfiddle.net/xaKXM/5/在这里,你可以输入任何东西,点击submit
后,它将获得文本输入并将它们附加到另一个表#configtableTable
$('#labels #labelTable tr:last').after(addmore);
$('#configtable #configtableTable tr:last').after(displaymore);
我使用cherryypy作为一个小型web服务器(因此主要代码是用python编写的),我知道它在这里有session
,但我不知道如何使用它,因为给出的例子并不是我真正想看到的。
供参考,我是不是使用PHP,一切都在一个页面。我只是展示和隐藏它们。但我希望页面保持显示#configtableTable
和隐藏#labelTable
即使刷新后。请注意,小提琴只是web应用程序的一部分,只有在从另一个设备获得回复后才会显示所有这些。
不确定cookie,因为我发现的所有链接似乎都坏了。jQuery会话怎么样?它适用于我的情况吗?我需要一些应用的例子:(
好的,结束我的问题:1. 刷新后可以保存页面状态吗?以及如何?以上哪一种方法值得一试?有什么例子供我参考吗?还有其他建议吗?2. 我可以简单地禁用刷新或返回到达页面后?
提前感谢大家:)
不要禁用刷新和/或返回导航。这是一个糟糕的想法——用户对这些按钮将执行的操作和修改有一定的期望,这会导致糟糕的用户体验。
至于保存状态,虽然您可以使用会话或cookie,但如果您不需要服务器端数据,您也可以在客户端保存状态。
例如,您可以使用localStorage或者,您可以从表中的数据中创建一个对象,JSON.stringify()
它并将其附加到url,如下所示:example.com#stateData
。
在任何一种情况下,在页面加载时,您都必须检查是否有状态数据。如果发现有,则使用它来重新创建表,而不是显示表单。
第一种方法的缺点是,并非所有浏览器都支持localStorage。第二种方法的缺点是url有长度限制,所以如果你想要大量的数据,这种解决方案不一定适合你。
编辑
Midori似乎支持大多数HTML5功能,包括localStorage,但是默认情况下它是关闭的。(我正在找一个更好的参考)。如果可以,让Midori使用html5test,看看它支持哪些HTML5功能。
- 新的会话cookie直到下一个服务器请求才提供
- 将会话登录页存储在cookie中以进行表单解析(通过隐藏字段)
- 有人可以帮助我调试带有addClass和removeClass函数的“每个会话一次”cookie吗?
- 如何清除会话cookie
- 如果服务器上的会话已被禁用,是否仍可以使用Cookie或sessionStorage
- 从Javascript中读取Django会话密钥cookie
- Passport本地策略未将用户保存在cookie或会话中
- 我应该在注销时清理会话 cookie 吗?
- 如何设置会话 Cookie 以保护和使用 CSRF 令牌
- 什么是 Cookie 和会话,以及它们如何相互关联
- jQuery Cookie,设置上次访问的页面并重定向到新会话上次访问的页面
- PHP 会话与 JavaScript cookie 冲突
- 安全性 - 会话(默认使用 - Cookie)与本地存储
- JavaScript 会话何时过期?如何在会话结束时删除 Cookie
- 异步检查会话 Cookie
- 是否可以使用(加密强)会话cookie作为CSRF令牌
- 仅限 Javascript 读取会话 Cookie
- 记录整个网站的用户偏好的 Cookie 或会话变量
- 无法从带有 Socket.IO 的 Cookie 获取快速会话 ID
- 如何从浏览器的 cookie 存储中删除会话 ID