2016-10-12 2 views
0

Wir haben in GWT ein Dashboard entwickelt, das einige benutzerdefinierte Widgets zur Anzeige von Kundendaten in verschiedenen grafischen Formen enthält. Wir möchten nun zu einem benutzerspezifischeren Ansatz übergehen, bei dem jeder Kunde, der sich im Dashboard anmeldet, eine andere Perspektive des Dashboards sehen kann. Einige Widgets werden für einige Benutzer verfügbar sein, für einige andere nicht und mit anderen Initialisierungsparametern.Strategien zur Implementierung eines benutzerspezifischen - benutzerdefinierten Inhalts EntryPoint in GWT

Wir versuchen eine effiziente Strategie dafür zu finden. Eine mögliche Lösung wäre, dass die Clientseite während des Ladens von EntryPoint alle diese Informationen anfordert und diese eingehende Konfiguration verwendet, um sich selbst zu erstellen und weitere Anforderungen für die Daten zu stellen. Eine effizientere Lösung würde auch ermöglichen, nur die für den Benutzer relevanten Widgets in den Browser herunterzuladen.

Hat GWT irgendein Entwurfsmuster für dieses Szenario? Wenn nicht, was wäre eine gute Lösung auf hohem Niveau für diesen Fall?

Vielen Dank.

Antwort

0

Ja, es atleast ein Mechanismus ist, die nützlich sein können Ihre Anforderungen

  • Code Splitting zu erreichen: - Die Idee ist, den besonderen Abschnitt des Codes zu teilen und sie in unabhängigen async Anruf herunterladen. Mit diesem Ansatz können Sie die Größe der primären JavaScript-Datei reduzieren, wodurch die erste Seite schneller geladen wird. Dieser Ansatz erlaubt es GWT, die Einbeziehung all jener Widgets zu überspringen, die nur Referenzen innerhalb der GWT.runAsync() Methode in der primären js-Datei haben. Solche Widgets und Code werden heruntergeladen, wenn die Anwendung diesen Code in einem unabhängigen Aufruf ausführt. Sie können diesen Ansatz verwenden und den Download zusätzlicher Dashboard-Diagramme aufgrund bestimmter Bedingungen wie Benutzertyp usw. vermeiden. Hier ist ein Beispielcode aus 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

Vielen Dank Ajax! Wir sollten diese Zukunft nutzen, besonders wenn wir eine große Anzahl von Widgets haben. Ich habe mich auch gefragt, ob es für den Fall, den ich beschrieben habe, ein Designmuster gibt, bei dem Sie unterschiedliche Ansichten für verschiedene Benutzer haben können. Wie man es einrichtet. Code-Aufteilung ist nach meinem Verständnis eher ein Optimierungsmuster. – SKY

Verwandte Themen