实现多页GWT网站

时间:2009-11-17 03:16:57

标签: java gwt client-side

我对管理多页GWT网站有疑问。现在我只有一个html页面,其中嵌入了很多div来存储我使用的小部件。然后,根据用户的操作,我使用GWT DOM类添加或删除必要的div。因此,我只使用一个html页面来模拟多个页面。有一个更好的方法吗?

感谢。

5 个答案:

答案 0 :(得分:5)

我不同意克莱图斯。根据我的经验,gwt在增强多页面应用方面与在gmail这样的单页应用程序方面一样出色。这取决于您对Web应用程序的要求。

我同意编写单页应用程序绝对是开始的地方,但是一旦获得gwt模块的概念,它们就可以轻松地用于向多个页面添加自定义javascript。

回答你的问题;我认为你使用一个页面和交换小部件的设计是完全可以接受的。

这些讨论可能有助于您了解多页面应用何时有意义:

答案 1 :(得分:4)

GWT主要用于单页应用程序。这是有充分理由的。每次使用如此多的Javascript进行页面转换时,您都会受到影响。页面加载时间非常明显。想到GMail吧。加载时间为1-5秒。现在,只要用户访问新页面并且发生了很多事情,您的用户体验会如何?

您也不需要在页面上放置每个小部件。您可以根据需要动态创建和添加(或删除)小部件。这与你通常如何做一个传统的多页面以HTML为中心的网站有点不同。

答案 2 :(得分:1)

我发现有用的东西是使用GWT DeckPanel。甲板面板就像一副牌,其中每张“牌”都是GWT面板。您可以将这些“卡”面板视为页面并初始化,并在启动时使用小部件填充它们。然后,您可以通过将“卡”面板放在卡座前面来响应用户导航操作,以便用户可以看到它。

这种方法最适合作为MVC(模型 - 视图 - 控制器)或MVP(模型 - 视图 - 演示者)设计模式的一部分。

答案 3 :(得分:1)

为了实现这一目标,你应该有历史管理 - 比如Gmail,可以使用后退/前进。它由锚点和this class

实现

答案 4 :(得分:0)

除了优秀的DeckPanel和History建议之外,我还补充说,您可以使用GWT将您的应用分成多个JS文件,这些文件根据需要使用runAsync动态加载。这让你有一个非常快的初始页面加载并加载新的“页面”,因为用户需要它们。

LazyPanel。createWidget()是一个方便的地方,可以粘贴runAsync调用,可以与DeckPanel或TabPanel结合使用,以动态加载内容和UI代码。用于导航的控制器/演示器甚至更好(尽管有时会对程序员进行更多的工作)。