首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT历史机制

GWT历史机制
EN

Stack Overflow用户
提问于 2012-09-17 23:39:33
回答 3查看 1K关注 0票数 1

我正在尝试向我的GWT应用程序添加历史功能。

据我所知,GWT必须提供的基本历史支持确实是基本的.或者我应该说是非常基本的。

除了当前位于堆栈顶部的令牌之外,它实际上不存储任何关于状态的其他信息。这意味着,我希望得到信息,比如弹出令牌,这是我们刚刚留下的信息&也可能得到信息,无论是后退还是前进。

基本机制假设页面不存在“高级”状态,也就是说,如果当前令牌是“菜单”,那么我们从哪里到这个菜单页面并不重要。但是,我想检查一下我们现在是否要离开一个特定的页面,因为如果我们离开了,那么我想先显示一个保存数据的警告。

此外,我的一些页面没有使用默认构造函数,而是从当前显示的页面中获取特定信息。这使我无法在一个集中的地方创建所有页面,而应用程序中的所有按钮都只是在玩历史标记。(例如,如第37页所建议的这里。)

不管怎样,我在这里很迷茫。我不知道在不重写我的应用程序的情况下,要实现基本的后退/转发支持,该走哪条路。

有什么想法或想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-18 09:35:29

如果您需要跟踪您来自何处,您可以轻松地自己进行跟踪:它就像将令牌存储在全局状态中一样简单,只有在对新令牌进行操作之后才能更新它。

FYI,PlaceController就是这样做的(使用Place抽象而不是基于字符串的令牌)。它还会触发一个PlaceChangeRequestEvent,您可以在该setMessage上请求用户在实际执行移动(PlaceChangeEvent)之前进行确认。

我并不是建议您转而使用PlaceController而不是原始的History (尽管我确信您不会后悔),只是指出这是可能的。

另见如何通过GWT中的历史来确定我是“前进”还是“倒退”?GWT 2.1位置/活动技术故障:确认导航前的URL更改

票数 1
EN

Stack Overflow用户

发布于 2012-09-18 00:48:55

我假设您熟悉GWT活动和场所设计模式。它提供了您需要的所有机制,即活动中的令牌和mayStop()方法。

如果我有一个可能有未保存数据的视图,我总是实现从mayStop()调用的一个mayStop()方法,如果可能丢失任何更改,就警告用户。

请注意,您可以使您的令牌特定于您的需要。令牌可能包含有关所需页面的任何信息,因此您可以解析它并对其执行操作。类似于:

myPage.jsp/#CALENDAR:classId=900&option=teachers&menuItem=month

如果需要,可以轻松地将前一页添加到令牌中。

about &Place模式为我提供了我所需要的一切,我不需要担心历史管理--我让浏览器来做。

票数 1
EN

Stack Overflow用户

发布于 2012-09-18 00:46:26

令牌机制是基本的,但是没有什么可以阻止您构建一个复杂的令牌来表示附加状态,并在以后解析它以检索该状态。当然,它受到浏览器支持的令牌或URL大小的限制,但是您仍然可以使用它做很多事情。您说得对,它没有为更复杂的事情提供太多支持,比如面包屑和历史跟踪。要实现这些功能,需要进行一些编码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12468553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档