gwt多页面应用程序

时间:2011-05-12 21:37:18

标签: gwt

我有一个需要手动从一个页面切换到另一个页面的多页面应用程序。它可以在GWT中完成,因为它针对单页面应用程序。我正在从Google代码和在线论坛中学习,但找不到任何具有多页的应用程序,这些应用程序没有通过共同的入口点链接。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

GWT通过URL fragment identifier(FI)支持应用程序中的“页面”,即http://www.yourhost.vom/main#pagename,其中“pagename”是表示应用程序中“页面”的片段标识符。

这个“页面”(注意浏览器从未真正重新加载页面,因此GWT应用程序保持不变),具有完整的历史记录支持并且可收藏。

注意:在整个GWT文档中,片段标识符有时被称为地方标记或历史标记。

  1. 通过向主页添加iframe来启用history support

    <iframe src="javascript:''" 
            id="__gwt_historyFrame" 
            style="width:0;height:0;border:0">
    </iframe>
    
  2. 注册一个ValueChangeHandler,以便在FI(页面)更改时收到通知:History.addValueChangeHandler(..)。在此处理程序中,您放置了一个显示新页面的逻辑。

  3. 致电History.newItem("newpage")(不含#)

  4. 转到特定页面
  5. 您甚至可以通过将片段标识符划分为子部分来将“参数”传递给页面:例如“#edit / user4”。只需解析此FI,调用显示编辑页面的代码并将“user4”传递给它。您可以使用任何字符将FI分成“页面”部分和“参数”部分(我在这里使用“/”)。要在现实生活中看到这一点:在Gmail中打开一条消息并查看URL。

答案 1 :(得分:1)

虽然您可以使用GWT切换页面,但生成的代码会很慢且次优,页面加载时间会更长。