1

我正在开发一个 Web 应用程序(bottle + beaker + jQuery),我希望用户有一个可以修改的项目列表,这些列表在各种表单提交和页面更新中持续存在。单击列表中的项目可查询数据库以获取有关该列表项目的信息,并且该信息可以由用户更新。我希望列表在查询/更新不同的列表项时保持不变。此外,为了方便用户,该列表允许“勾选”(或取消勾选)项目,例如在处理或查看项目时。

我已经研究了几种不同的方法来实现这一点(例如,更新页面上每个表单中的隐藏元素,然后使用会话管理在每次往返时更新服务器上的工作列表;每次使用 Ajax 更新会话变量列表中的项目被选中或成为“活动”列表元素),但它们看起来都不是非常令人满意或优雅。

我的问题是有处理这类事情的标准方法吗?当然,这对于类似的 Web 应用程序来说是相当普遍的要求。

4

1 回答 1

1

对 stackoverflow.com 的进一步研究(这些链接很有帮助:

如何在浏览器选项卡中区分会话?

管理多个选项卡的 webapp 会话数据/控制器流

连同与同事的一些有益讨论,给出了一个应该适用于大多数现代浏览器的答案,即使用 HTML5 本地存储。由于原始问题中提到的列表仅与该特定用户会话相关,因此甚至没有理由将此信息传递给服务器。每次刷新页面时,使用jStorage之类的东西在本地保存列表,然后在返回时使用预定义的键再次检索它。唯一的技巧是如何为不同的浏览器选项卡或窗口维护不同的工作列表。您不能使用会话或 cookie 来执行此操作(这些由所有选项卡/窗口共享);但是,您可以使用 javascript 设置(或使用,如果已设置)window.name. 这省去了在每次往返服务器时将选项卡或窗口 ID 作为 GET 变量传递的麻烦,因为您可以使用 window.name 作为存储本地列表/数据的键。

于 2012-08-17T15:12:01.787 回答