0

GWT2.1 の Places and Activities は初めてです。

以下の例と同じ ActivityMapper を使用しており、数回のナビゲーションの後、ボタンのクリックが遅くなります。

私が使用している MVP アーキテクチャでは、Presenter がリスナーを作成し、View インターフェイスを定義しますが、View オブジェクトはシングルトンです。

私の問題は、すべてのリスナーが指数関数的に増加することによる遅延の問題ですか? ビューが代わりにすべてのリスナーを作成するように変更する必要がありますか? または、代わりにバインドを解除してみるべきですか?

たとえば、GWT2.1 の例は、 が呼び出されるたびに新しいアクティビティが作成さ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;
}
4

2 に答える 2

0

このビューは、ウィジェットにイベント ハンドラーを追加します。その後、適切なタイミングでプレゼンターを呼び出します。イベントのバインドを解除しても、多くのメモリが解放されたり、ブラウザーのイベント キューが高速化されるとは思いません。

実際のボタンのクリックが遅いのか、それともイベント時に発生するアクティビティの作成なのか、その他のことなのかをさらに調査する必要があると思います。

于 2010-11-17T08:46:34.667 に答える
0

最後に、MVP アーキテクチャをここの例と同じものに変更し、アクティビティを定義するビューと UI ハンドラーを含む ViewImpl を使用しました。アクティビティにはハンドラーが含まれなくなり、ViewImpls はシングルトンであるため、問題は解消されます。

于 2010-11-19T02:56:07.120 に答える