Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是一个可接受的GWT解决方案吗_Gwt_User Interface - Fatal编程技术网

这是一个可接受的GWT解决方案吗

这是一个可接受的GWT解决方案吗,gwt,user-interface,Gwt,User Interface,我想创建一个GWT UI,其中基本上只有一个加载PanelA对象的HTML页面。然后,用户将执行他们的操作,并最终执行一个将他们移动到另一个视图/屏幕上的操作。 我简化了我现有的视图,只包含一个按钮,可以将用户移动到下一页等。为了简单起见,我只有两个视图开始。 这是我的创业切入点 public class StockWatcher implements EntryPoint { public void onModuleLoad() { final RootPa

我想创建一个GWT UI,其中基本上只有一个加载PanelA对象的HTML页面。然后,用户将执行他们的操作,并最终执行一个将他们移动到另一个视图/屏幕上的操作。
我简化了我现有的视图,只包含一个按钮,可以将用户移动到下一页等。为了简单起见,我只有两个视图开始。 这是我的创业切入点

public class StockWatcher implements EntryPoint 

{
    public void onModuleLoad()
    {
        final RootPanel rootPanel = RootPanel.get();
        rootPanel.add( PanelA.getInstance() );
    }
}
这是课堂讨论会

    public class PanelA extends HTMLPanel
    {
        private static PanelA panel;            
        private PanelA()
        {
            super("Panel A");
            final RootPanel rootPanel = RootPanel.get();

            Button btnNewButton = new Button("Go to panel B");
            btnNewButton.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) 
                {
                    rootPanel.clear();
                    rootPanel.add( PanelB.getInstance() );
                }
            });

            add(btnNewButton);
        }

        public static PanelA getInstance()
        {
            if (panel == null)
            {
                panel = new PanelA();
            }
            return panel;
        }
    }
我的另一个PanelB类与PanelA几乎相同,即button将我带回PanelA 我的UI工作正常。 我的问题是,这种单例模式是正确的还是正确的方法?ie有一堆在主面板上弹出的单例UI视图吗? 另外,通过GWT应用程序处理hitory/breadcrumb跟踪的最佳方式是什么,即允许用户返回上一屏幕,同时记住他们可以从PanelA、PanelB或PanelC导航到PanelX

我使用“活动和地点”来管理所有这些,大约一年来,它一直在生产中运作良好

我认为对视图使用单例机制是可以的,但必须确保完全重置存储的任何状态。对我来说,每次用户导航到一个新的位置时创建新的视图,然后如果我检测到加载时间有问题,或者追溯到某个原因导致视图重用其组件,那么创建新视图就更容易了。我建议您先让导航正常工作,然后再考虑单例优化(或不优化)。

我使用“活动和地点”来管理所有这些,并且它在生产中已经运行了一年左右

我认为对于视图使用单体机制是很好的,但是您必须确保完全重置存储的任何状态。对我来说,每次用户导航到一个新的位置时创建新的视图,然后如果我检测到加载时间有问题,或者追溯到某个原因导致视图重用其组件,那么创建新视图就更容易了。我建议您先让导航正常工作,然后再考虑单例优化(或不优化)。

我推荐

它涵盖了您在问题中提出的所有问题,以及您尚未想到(或未询问)的更多问题,如本机浏览器历史记录管理和在应用程序中为不同位置添加书签的能力、页面重新加载的处理、高效的内存管理与优化的DOM操作、可扩展性(构建一个具有几十个/数百个视图且代码重复最少的应用程序)、可测试性和代码拆分(在何处拆分大型应用程序)。

我推荐

它涵盖了您在问题中提出的所有问题,以及您尚未想到(或未询问)的更多问题,如本机浏览器历史记录管理和在应用程序中为不同位置添加书签的能力、页面重新加载的处理、高效的内存管理与优化的DOM操作、可扩展性(构建一个具有数十个/数百个视图且代码重复最少的应用程序)、可测试性和代码拆分(在何处拆分大型应用程序)。

我建议您参考“框架”来创建GWT项目,GWTP当前支持的一些功能:

  • 通过GIN和Guice进行依赖注入
  • 简单而强大的历史管理机制
  • 支持嵌套的演示者
  • 演示者和视图的延迟实例化
  • 轻松高效的代码拆分
  • 支持撤销/重做的集成命令模式
因此,您的问题和查询,如Singleton UI视图、处理hitory/breadcrumb跟踪和Singleton类型模式的最佳方式,将涵盖其中,一个好的框架将简化项目管理。

我建议您参考“框架”来创建GWT项目,GWTP目前支持的一些功能:

  • 通过GIN和Guice进行依赖注入
  • 简单而强大的历史管理机制
  • 支持嵌套的演示者
  • 演示者和视图的延迟实例化
  • 轻松高效的代码拆分
  • 支持撤销/重做的集成命令模式
因此,您的问题和查询(如Singleton UI视图、处理hitory/breadcrumb跟踪和Singleton类型模式的最佳方式)将涵盖其中,一个好的框架将简化项目管理