保存页面状态。 Cookie或会话?

时间:2013-05-15 01:29:52

标签: javascript jquery python cherrypy

我有一个小的网络应用程序(只有1页),允许用户输入和选择一些选项。输入文本和选择将以表格的形式显示在另一个div中。您可能需要参考此处的示例:http://jsfiddle.net/xaKXM/5/ 在这个小提琴中,您可以输入任何内容,点击submit后,它将获得文本输入并将其附加到另一个表#configtableTable

$('#labels #labelTable tr:last').after(addmore);
$('#configtable #configtableTable tr:last').after(displaymore);

我使用cherrypy作为迷你网络服务器(因此主要代码是用python编写的)我知道它有session here但我不知道如何使用它根本给出的例子并不是我想要看到的。

仅供参考,我完全没有使用PHP,而且所有内容都在一个页面中。我只是展示和隐藏它们。但我希望页面保持显示#configtableTable并隐藏#labelTable,即使在刷新后也是如此。请注意,小提琴只是网络应用程序的一部分,只有在收到其他设备的回复后才会显示所有这些内容。

不确定Cookie,因为我发现的所有links似乎都已损坏。 jQuery session怎么样?它适用于我的情况吗?我需要一些应用程序的例子:(

好的,结束我的问题: 1.我可以在刷新后保存页面状态吗?如何?上面提到的哪种方法值得一试?我有什么例子可以参考吗?或任何其他建议? 2.我可以在到达页面后轻松禁用刷新或返回吗?

提前感谢大家:)

1 个答案:

答案 0 :(得分:3)

不要禁用刷新和/或返回导航。这是一个糟糕的主意 - 用户对这些按钮执行和修改操作有一定的期望会导致糟糕的用户体验。

至于保存状态,虽然你可以使用会话或cookie,但如果你不需要那个数据服务器端,你也可以在客户端保存状态。

例如,您可以使用localStorage

或者,您可以在表格JSON.stringify()中的数据中创建一个对象,然后将其附加到网址:example.com#stateData

如果是任一选项,在页面加载时,您必须检查是否有状态数据。如果找到,则使用它重新创建表格,而不是显示表格。

第一个的缺点是not all browsers support localStorage。 第二个缺点是URL具有长度限制,因此如果您期望大量数据,此解决方案不一定适合您。

修改
似乎是Midori does support most HTML5 features including localStorage however, it's turned off by default.。 (我正在努力寻找更好的参考资料)。如果可以的话,只需将Midori指向html5test即可查看它支持的HTML5功能。