我有一个需要手动从一个页面切换到另一个页面的多页面应用程序。它可以在GWT中完成,因为它针对单页面应用程序。我正在从Google代码和在线论坛中学习,但找不到任何具有多页的应用程序,这些应用程序没有通过共同的入口点链接。有什么想法吗?
答案 0 :(得分:9)
GWT通过URL fragment identifier(FI)支持应用程序中的“页面”,即http://www.yourhost.vom/main#pagename
,其中“pagename”是表示应用程序中“页面”的片段标识符。
这个“页面”(注意浏览器从未真正重新加载页面,因此GWT应用程序保持不变),具有完整的历史记录支持并且可收藏。
注意:在整个GWT文档中,片段标识符有时被称为地方标记或历史标记。
通过向主页添加iframe来启用history support:
<iframe src="javascript:''"
id="__gwt_historyFrame"
style="width:0;height:0;border:0">
</iframe>
注册一个ValueChangeHandler,以便在FI(页面)更改时收到通知:History.addValueChangeHandler(..)
。在此处理程序中,您放置了一个显示新页面的逻辑。
致电History.newItem("newpage")
(不含#)
您甚至可以通过将片段标识符划分为子部分来将“参数”传递给页面:例如“#edit / user4”。只需解析此FI,调用显示编辑页面的代码并将“user4”传递给它。您可以使用任何字符将FI分成“页面”部分和“参数”部分(我在这里使用“/”)。要在现实生活中看到这一点:在Gmail中打开一条消息并查看URL。
答案 1 :(得分:1)
虽然您可以使用GWT切换页面,但生成的代码会很慢且次优,页面加载时间会更长。