2009-07-18 4 views
2

Ich verwende eine benutzerdefinierte GWT-Komponente, die eine vorhandene Textbox in meiner HTML-Seite umschließt.GWT Wrap() Methode iteriert das gesamte DOM unnötig?

Die Seite gibt eine Liste von Informationen zurück - so dass größere Informationsmengen geladen werden - der Ladevorgang dauert länger und länger.

Blick auf den Quellcode der Wrap() - Methode - es scheint, es durchläuft das DOM auf der Suche nach passenden IDs.

Ist das nicht unnötig? Gibt es eine Möglichkeit, es einfach zu meiner Komponente zu iterieren und dann zu stoppen?

+0

Auf welche 'wrap()' Methode beziehen Sie sich? –

Antwort

3

GWT macht eine Reihe von DOM House Keeping und Sie werden es einfach nicht oder überhaupt nicht umgehen.

Es klingt, als ob es einen Punkt gibt, an dem Sie so viele Texteingaben haben, dass Sie überdenken müssen, wie Sie sich dem nähern. Das dynamische Erstellen von Eingabefeldern in einem Formularfenster in GWT ist ziemlich einfach und schnell, und Sie können sehr einfach und schnell eine JSON-Struktur mit den Daten herunterladen, die Sie für die Eingabefelder in Ihrer ursprünglichen HTML-Seitenladung benötigen, in ein Wörterbuch oder einfaches konvertieren Array in GWT und verwenden Sie es, um Ihr Formular zu füllen.

Sobald Sie fertig sind, können Sie den Zeiger auf die Daten löschen, so wird es GC'd, wenn Sie es nicht mehr benötigen.

Um auf Daten in Javascript zugreifen, schauen Sie sich eine native Methode erstellen, ist es sehr einfach zu tun. Wenn es sinnvoll ist, können Sie die JSON-Daten als ein Wörterbuch formatieren und die Wörterbuchklasse von GWT wird direkt darauf abgebildet.

Ich benutze diese Techniken die ganze Zeit und sie sind robust und so ziemlich so schnell wie Javascript das DOM bevölkern kann.

Verwandte Themen