代码之家  ›  专栏  ›  技术社区  ›  upshake

使用GWT2.1中的位置/活动,GWT按钮单击会很快变慢。

  •  0
  • upshake  · 技术社区  · 15 年前

    我不熟悉GWT2.1的地点和活动。

    我使用的ActivityMapper与下面的示例相同,只需进行几次导航,就可以获得滞后的按钮单击。

    我使用的MVP体系结构让演示者创建监听器并定义视图接口,但是视图对象是单例的。

    我对延迟的问题是因为所有的听众都是指数级增长的吗?我应该更改它以便视图创建所有侦听器吗?或者我应该尝试 unbinding 相反?

    例如,在GWT2.1示例中 here 每次都创建一个新活动 getActivity(Place) 被称为。

    public Activity getActivity(Place place) {
        if (place instanceof HelloPlace)
            return new HelloActivity((HelloPlace) place, clientFactory);
        else if (place instanceof GoodbyePlace)
            return new GoodbyeActivity((GoodbyePlace) place, clientFactory);
        return null;
    }
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   Gipsy King    15 年前

    这个 view here 向其小部件添加事件处理程序。稍后,它会在适当的时候打电话给演示者。我不认为取消绑定事件会释放大量内存或加快浏览器的事件队列。

    我相信您应该进一步调查一下实际的按钮点击是否缓慢,或者是否是事件发生时的活动创建,或者其他什么。

        2
  •  0
  •   upshake    15 年前

    最后,我将MVP架构更改为与示例相同的架构。 here 使用视图定义活动和包含UI处理程序的VIEWIMPL。因为活动不再包含处理程序,而viewImpl是单例的,所以问题就消失了。

    推荐文章