0

我正在计划我的 GWT 应用程序。正如 Ray Ryan 在 Google IO 09 上所说:

“让你的历史正确,并尽早正确”。

我已经考虑过历史在我的应用程序中的作用,在第一印象中,我似乎可以通过历史令牌处理我的所有控制流。控制流都只涉及单个索引值的规范(例如 123):因此我可以将其表示为“i_123”历史令牌:UI 中的多个组件将在新的历史令牌中触发 - 以触发 UI 更新。我的记录显示 Presenter 只会监听以“i_”开头的历史事件,然后从匹配的标记中提取索引并更新。

这种策略有惩罚吗?如果我需要在应用程序周围传递复杂的消息,我很感激我会将这些消息包装到事件中,但这似乎没有必要。

对这个策略还有其他意见吗?

4

1 回答 1

4

最好将历史记录用于您希望用户能够使用浏览器的后退和前进按钮来回导航的所有内容。在单个记录之间移动似乎是一个很好的示例 - 您可能希望让它们浏览三个记录,然后向后移动它们。

但是,这对于某些事件来说是不够的。假设一些数据发生了变化,并且您希望所有各种显示都自行更新 - 即使您仍在查看i_123. 那时,您可能希望RefreshEvent通过您的事件总线发送类似于(您将创建的)的内容。

幸运的是,您可以使用与您正在监听历史事件完全相同的事件总线来监听您决定稍后添加的事件!因此,当您刚开始时,我确实建议*监听历史事件作为程序内通信的一种方式,然后根据需要添加更多事件。只要确保您没有开始将历史记录用于与导航无关的事情。

*PS:GWTActivityPlace类的构建是为了在您的历史记录和代码之间提供一层灵活性,并具有一些很大的好处,例如集中式 URL 映射/解析(因此您不必在需要时更改每个演示者更改 url 方案)和自动“你真的要离开吗?” 确认。如果您在真正开始之前有时间,我建议您从头开始使用ActivityandPlace而不是直接收听历史事件。

于 2011-04-05T12:27:07.840 回答