2016-10-12 14 views
0

GWTのダッシュボードでは、顧客のデータをさまざまなグラフィック形式で表示するカスタムウィジェットが含まれています。ここでは、ダッシュボードにログインする各顧客がダッシュボードの異なる視点を見ることができる、よりカスタム/ユーザー固有のアプローチに移行したいと考えています。いくつかのウィジェットは、初期化パラメータが異なり、初期化パラメータが異なる場合があります。ユーザー固有のカスタムコンテンツを実装するための戦略GWTのEntryPoint

私たちはこれを行うための効率的な戦略を見つけようとしています。潜在的な解決策は、クライアント側がEntryPointのロード中にこの情報をすべて要求してから、その受信構成を使用してデータを構築し、さらにデータを要求することです。より効率的な解決法は、ユーザに関連するウィジェットだけをブラウザにダウンロードすることも可能にする。

GWTにはこのシナリオのデザインパターンはありますか?そうでない場合、この場合にはどのような高レベルの解決策が必要でしょうか?

ありがとうございます。

答えて

0

はい

  • Code Splitting要件を達成するために役立つことができ少なくとも1つのメカニズムがある: - アイデアは、コードの特定のセクションを分割し、独立した非同期呼び出しでそれをダウンロードすることです。このアプローチを使用すると、最初のページの読み込みを高速化する、主要なjavascriptファイルのサイズを減らすことができます。このアプローチにより、GWTは、プライマリjsファイル内のGWT.runAsync()メソッド内の参照のみを持つウィジェットをすべてスキップすることができます。そのようなウィジェットとコードは、アプリケーションが独立した呼び出しでそのコードを実行するとダウンロードされます。このアプローチを使用して、ユーザータイプなどの条件に基づいて追加のダッシュボードチャートをダウンロードしないようにすることができます。ここでGWT reference website

    public class Hello implements EntryPoint { 
    
        public void onModuleLoad() { 
    
         Button b = new Button("Click me", new ClickHandler() { 
          public void onClick(ClickEvent event) { 
    
           GWT.runAsync(new RunAsyncCallback() { 
    
            public void onFailure(Throwable caught) { 
             Window.alert("Code download failed"); 
            } 
    
            public void onSuccess() { 
             Window.alert("Hello, AJAX"); 
            } 
           }); 
          } 
         }); 
         RootPanel.get().add(b); 
        } 
    } 
    
+0

からのサンプルコードでは、あなたのAjaxをありがとうございます!私たちはこの未来を使うべきです、特に私たちがたくさんのウィジェットを持っているならば。また、私が説明したケースのデザインパターンがあるかどうかも疑問に思っていました。ここでは、さまざまなユーザーに対して異なる見解を持つことができます。それを設定する方法。コード分​​割は私が理解しているところでは最適化パターンのほうが多いです。 – SKY

関連する問題