保存页面的状态.Cookie或会话

Save the state of page. Cookie or session?

本文关键字:Cookie 会话 状态 保存      更新时间:2023-09-26

我有一个小的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功能。