3

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

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

我将cherrypy用作迷你Web服务器(因此主要代码是用python编写的)并且我知道它在session 这里但是我根本不知道如何使用它,因为给出的示例并不是我真正想看到的.

仅供参考,我根本没有使用 PHP,所有内容都在一个页面中。我只是显示和隐藏它们。但我希望页面即使在刷新后也能保持显示#configtableTable和隐藏。#labelTable请注意,小提琴只是网络应用程序的一部分,只有在从另一台设备获得回复后才会显示所有这些。

不确定 cookie,因为我发现的所有链接似乎都已损坏。jQuery 会话怎么样?它适用于我的情况吗?不过,我需要一些应用示例:(

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

提前谢谢大家:)

4

1 回答 1

5

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

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

例如,您可以使用localStorage

或者,您可以从表中的数据创建一个对象,JSON.stringify()并将其附加到 url,如下所示example.com#stateData

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

第一个的缺点是并非所有浏览器都支持 localStorage。第二种方法的缺点是 URL 有长度限制,因此如果您需要大量数据,此解决方案不一定适合您。

编辑
看起来 Midori确实支持大多数 HTML5 功能,包括 localStorage,但是默认情况下它是关闭的。. (我正在努力寻找更好的参考)。如果可以,只需将 Midori 指向html5test以查看它支持哪些 HTML5 功能。

于 2013-05-15T02:08:45.843 回答