0

提交表单时的良好设计解决方案,“返回”然后“前进”浏览器按钮的行为应该是什么。类似的问题是当用户注销应用程序然后单击“转发”浏览器按钮时会发生什么?

我很高兴听到上述情况的一些场景。

谢谢。

编辑-应该很好分享和我的观点:-)

我个人的意见是,用户在注销后不应该通过登录页面就无法进入应用程序。对于提交场景 - 提交并返回浏览器按钮后,用户应该能够返回到表单但不包含任何数据。

4

2 回答 2

1

使用状态机来保持用户(会话)和请求状态是很常见的。如果您有这样的状态机,那么您就知道用户正在尝试错误的转换。根据用户状态和错误的转换,您可以将用户转发到页面。例如,如果用户试图进入一个需要登录的页面,但她/他已经注销,您可以将她/他发送到登录页面,但您可以提供用户名并且只要求输入密码。

要添加此功能,您可以通过在代码中硬编码状态机来编写自己的代码,或者您可以使用可用的库之一。例如, Spring Web Flow为 Spring 框架提供了此功能。

于 2011-06-28T10:01:12.183 回答
1

一种常见的模式是Post/Redirect/Get。在这种模式下,帖子的结果是一个可添加书签的(并且向后/向前导航)页面。“后退”按钮具有“我不是有意去这里,带我回到原来的位置”的常见含义之一,就像在大多数 Windows 对话框中按 ESC 一样,而“前进”按钮的意思是“我不是故意要打后面的”按钮,毕竟我想要那个页面。” 这种模式并不适用于所有人。当每个页面(包括对表单提交的响应)代表一些您想要添加书签的概念实体时,它最有意义。

至于注销场景,大多数应用程序都会检查您是否已登录,无论 URL 中指定了哪个页面,如果您未登录,则重定向到登录表单。(您不必在每个页面上都编写代码)页面;检查通常是 Valve 或其他东西。)一个很好的功能是记住用户试图去哪里,并在成功登录后将他们带到那里。

您的问题更多是关于设计而不是技术,因此 GWT 并没有真正改变情况,只是要注意 GWT 历史机制旨在模仿通过链接连接的静态页面的行为,post/redirect/get 模式也这样做.

于 2011-06-28T16:06:31.043 回答