Почему метод GWT wrap () выполняет итерацию всей DOM без необходимости? - PullRequest
2 голосов
/ 18 июля 2009

Я использую пользовательский компонент GWT, который оборачивает существующее текстовое поле на моей HTML-странице.

Страница возвращает список информации - так как загружаются большие наборы информации - процесс загрузки GWT занимает все больше и больше времени.

Глядя на исходный код метода wrap () - кажется, он перебирает DOM в поисках совпадающих идентификаторов.

Разве это не нужно? Есть ли способ заставить его просто перейти к моему компоненту и затем остановиться?

1 Ответ

3 голосов
/ 18 июля 2009

GWT занимается ведением домашнего хозяйства, и вы просто не сможете обойти это легко или вообще.

Звучит так, как будто у вас есть так много текстовых вводов, что вам все равно нужно переосмыслить, как вы к этому подходите. Динамическое создание полей ввода на панели форм в GWT довольно просто и быстро, и вы можете очень просто и быстро загрузить структуру json с данными, необходимыми для полей ввода при загрузке исходной HTML-страницы, преобразовать ее в словарь или просто массив в GWT и, используйте его для заполнения вашей формы.

Как только вы это сделаете, вы можете очистить указатель на данные, чтобы он получал GC, если он вам больше не нужен.

Чтобы получить доступ к данным в javascript, взгляните на создание нативного метода, его очень легко сделать. Если это имеет смысл, вы можете отформатировать данные json как словарь, и класс словаря GWT будет сопоставлен непосредственно с ним.

Я использую эти методы все время, и они надежны и почти настолько же быстры, насколько javascript может заполнить DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...