Frage

Wie wir GWT Performance-Probleme in einer mobilen App konfrontieren ich in Google Wave Code guckte, da es mit GWT entwickelt.

Ich dachte, dass alle Tasten dort Widgets sind, aber wenn Sie in generierten HTML-Look mit Firebug sehen Sie keine Onclick Attributsatz auf anklickbare divs. Ich frage mich, wie sie es erreichen ein Element mit, dass Fragen oder mousedown- Ereignisse klicken und scheinbar weder ein Widget noch injiziert mit Onclick-Attribut zu sein.

Die Möglichkeit, solche Komponenten zu schaffen, würde mich sicherlich einen Schritt nimmt die Leistung weiter zu optimieren.

Danke. ps: wasnt google auch zu Open-Source-Client-Code geht. Nicht in der Lage, es zu finden.

War es hilfreich?

Lösung

Die GWT Dokumentation zeigt, wie Handler erstellen innerhalb eines GWT Java App:

public void anonClickHandlerExample() {
  Button b = new Button("Click Me");
  b.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
      // handle the click event
    }
  });
}

Das wird ein HTML-Element und bindet einen Klick-Handler, um es zu erzeugen. Doch in der Praxis hat dies das gleiche Ergebnis wie document.getElementById('element').onclick() auf einem vorhandenen Element in Ihrer Seite mit.

Andere Tipps

Sie müssen keine onclick Attribut auf der HTML-setzen, um es einen Onclick-Handler zu machen. Dies ist ein sehr einfaches Beispiel:

<div id="mydiv">Regular old div</div>

Dann in Skript:

document.getElementById('mydiv').onclick = function() { 
    alert('hello!');
}

Sie würden die OnClick-Eigenschaft direkt nicht gesetzt ist, wäre es gewesen Satz in dem GWT-Code oder über eine andere Javascript-Bibliothek haben.

Sie können mit Hilfe von JavaScript-Funktionen zum onclick Ereignisse verknüpfen. Hier ist ein Beispiel unter Verwendung von jQuery :

$(document).ready(function(){
    $("#div-id").click(function(){
        /* Do something */
    });
});

Wenn Sie bei der Optimierung der Leistung um diese interessiert sind, müssen Sie möglicherweise Ereignis Delegation untersuchen, je nach Ihrer Situation.

Ein Klick Ereignis wird für jedes DOM-Element im Körper erzeugt. Die Veranstaltung läuft vom Körper nach unten auf das Element geklickt (es sei denn, Sie Internet Explorer verwenden), trifft das Element geklickt und dann sprudelt zurück. Das Ereignis kann entweder durch DOM-Element-Attribute, Event-Handler in der JavaScript oder der Attribute zu einem der übergeordneten Ebenen erfasst werden (das Sprudeln oder Aufnahmeereignis löst dies).

Ich könnte mir vorstellen, sie haben es gerade in einer Js-Datei festgelegt. Kein Problem mit sagt jQuery mit $ (document) .ready () zum Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top