对于每个Web开发人员来说,这都是一个众所周知的问题。 就我试图找到一个解决该问题的好方法而言-没有解决方案(或者至少我找不到它)。

让我们假设以下内容:

用户没有表现出预期的行为。 我正在从事的实际项目使用Web门户中的导航。 但是,如果用户使用浏览器的“后退”按钮,整个事情就变成jeoprady [?],并且结果并非总是可预测的。

我们使用了struts框架,并将反向URL存储到表单中(在某些需要反向URL的地方),该URL已从此表单的反向URL中呈现出来。 因为只有一个单一字段可用于此信息,因此不可能返回多个步骤。

当您更改“ struts-flow”(可能会导致使用其他格式)时 ,此信息将丢失。

如果用户敢于在您的Web应用程序中的某个地方放置书签 -可能永远不会设置此信息,并且结果将再次变得不可预测或不够灵活!

我的“解决方案”

我将用户访问的每个与导航相关的页面都存储到会话中 的类似堆栈的存储中。 这意味着将收集并存储一个导航路径,以用于以后的导航。

在涉及反向导航的webapp内的任何页面上,我都使用了一个自制标签,该标签将堆栈内容呈现到url中。

就是这样 单击此反向URL时,堆栈已被用户单击的反向URL内容填充(一旦呈现反向链接,该内容将保留来自堆栈的所有信息)。

这很清楚,因为单击链接是一个清晰的状态,Web开发人员确切知道该位置,而用户“就是”此刻-完全独立于用户之前所做的操作(例如,多次按下浏览器后退按钮)次)。 然后,导航堆栈将基于此新状态构建。

简历:很明显,这不是最好的解决方案。 但是它允许将其他信息(如页面参数)和一些其他有用的东西存储在堆栈上(可能会进一步开发)。

那么,您对此问题有什么解决方案?

干杯,

法力值

===============>>#1 票数:1 已采纳

堆栈解决方案听起来很有趣,但是如果用户选择在不同选项卡上或使用书签“并行”导航,它可能会中断。

恐怕我真的不太明白为什么您必须为每个用户保留所有这些状态:理想情况下,Web应该遵循REST原理并且完全无状态。 因此,单个URL应该标识单个资源,而不必保留每个用户的导航历史记录。

如果您的Web应用程序严重依赖AJAX,则可以尝试实现类似GMail的方法(公认的,不是那么容易...),其中界面的每次更改都反映在页面URL的更改中。 因此,每个页面都由当前URL标识,并且用户可以像往常一样同时导航或使用“后退”按钮。

  ask by mana translate from so

未解决问题?本站智能推荐:

1回复

有关浏览器会话的问题

在Java Web应用程序中,如果我正在浏览一个站点,然后打开另一个IE 8窗口*并转到相同的站点,则有一种方法可以检测到新请求来自同一计算机的另一个窗口。 基本上,我的要求是提醒用户他们无法打开具有相同站点的另一个窗口。 *在IE 8中,所有窗口共享同一会话。 因此request
2回复

浏览器从请求参数中删除+

我正在尝试将Java Applet的SQL查询字符串作为参数传递给Servlet。 问题是在Applet中我有话要说:sql = select * from p where(+ p = 1) Servlet中生成的sql参数为sql = select * from p where(+
1回复

更改浏览器中显示的strut动作的标题

我正在尝试通过struts动作在浏览器中打开PDF文件。 但是,当我打开窗口时,它显示的是操作的名称,而不是我为该窗口设置的标题。 我应该如何设置窗口标题? 如图所示,viewPdfDocument.do出现在窗口中,甚至出现在窗口标题中。 我想改变它。
1回复

浏览器后退按钮导致iframe被导航

我有一个网页,我正在使用iFrame 。 这个iFrame包含iFrame两个按钮。 在下一个按钮单击我更改iFrame的来源让我们说page2.html和上一个按钮单击我将源更改回page1.html 。 问题是,当我单击浏览器后退和前进按钮时,它会导致iFrame导航(描述上述按钮的功
2回复

不同浏览器中CSS导航的变化

我的导航存在问题 - 在Safari和Firefox中使用这个CSS效果很好,但在Chrome或IE10中效果不佳。 这是网站: http://66.147.240.166/~peakeffe : http://66.147.240.166/~peakeffe 这是驱动主导航的CSS
2回复

jquery - 浏览器右侧的滑动导航

任何人都可以帮我滑动导航? 类似于代码的东西,但是当鼠标位置在浏览器的右侧时执行效果。 提前致谢..
1回复

在Fire TV上导航以浏览器上打开的网页

我有一个在“ Fire TV”浏览器Amazon Silk&Mozilla中打开的Web应用程序。 遥控器上有一个导航按钮: https : //developer.amazon.com/docs/fire-tv/remote-input.html#capturing-input ,单击鼠
3回复

如何让浏览器导航到JavaScript中的URL [重复]

这个问题在这里已有答案: 如何重定向到其他网页? 58个答案 使用JavaScript让Web浏览器导航到您选择的URL的最佳(正确,现代,跨浏览器,安全)方法是什么?
1回复

导航按钮后迅速WebView打开不需要的浏览器

我webview打开一个网页,效果很好,当它随机在以后浏览器中打开的页面,除了goBack或goForward方法。 我一直在寻找解决方案,但没有找到任何阻止浏览器打开的方法。 当我立即按下此按钮时(或在断开互联网连接并尝试前进或后退时发生相同的情况),会发生此问题,我试图在加载页面时
1回复

在所有设备和浏览器上都支持移动导航:但是它的名字是什么?

我在移动设备上使用以下代码进行导航。 (代码被截断了。) 通过点击“导航”,您可以显示和隐藏导航。 效果很棒。 我还用几种设备和浏览器进行了检查,但是当然不是全部。 自然,我希望这对我的网站的每个用户都有效,并且与浏览器完全兼容。 我也尝试过谷歌浏览器的支持,但这并不容易,