Его,
Может быть, некоторые из вас могут поделиться своим опытом разработки мобильных приложений на GWT?
Мы разрабатываем симпатичный интерактивный веб-сайт с множеством интерактивных панелей / кнопок и испытываем огромную медлительность браузера. Это виртуальный запрет, переход на следующую страницу занимает больше минуты.
Это может быть слабостью архитектуры: каждый элемент - это представление, возможно, содержащее подпредставления. И каждое представление поддерживается DTO, который приходит с сервера. Может быть, такой глубокий объектный граф слишком велик, но мы пытаемся сконцентрироваться на оптимизации эффективности рендеринга представлений, так как идея разделения всего на компоненты нам так дорога :) Вот некоторые моменты, которые меня беспокоят, но, вероятно, есть больше.
Как показывают видео из конференции по вводу-выводу Google 2010, я пытался создавать виджеты с помощью UiBinder. Но это не принесло значительного улучшения скорости. Мы используем множество панелей - HTMLTable, HTMLPanel, VerticalPanel, - поскольку каждое представление, в котором размещены другие представления, должно каким-либо образом присоединять их. Может ли замена их новым CellList принести пользу или простая горизонтальная панель уже достаточно легкая?
На странице потеряны интерактивные виджеты. И хотя общая рекомендация заключается в сокращении виджетов, нам нужны все они для обработки событий onMouseDown. Какой компонент с наименьшей нагрузкой на процессор будет активен - VerticalPanel с обработчиком MouseDown, Button и т. Д.
Как только пользователь нажимает кнопку, выдается запрос PRC. Я заметил, что если PRC-вызовы останавливаются на некоторое время, тогда стиль рендеринга нажатых кнопок происходит намного быстрее, чем если бы RPC-вызов выполнялся сразу после нажатия кнопки. Существует ли шаблон, который диктует, как вызывать вызов RPC, который не мешал бы стилевой визуализации.
Профилирующие отчеты (Firebug и Speedtracer) указывают, что setInnerHTML () и add () вызывают учетную запись для большей части нагрузки. add () должен вызываться, когда представления привязаны к их родителям, и я не знаю, почему setInnerHTML занимает так много времени (согласно видео-презентациям они должны быть очень быстрыми). Есть ли разумный способ оптимизировать вызовы add ()? Я действительно не могу придумать, как это сделать.
Я ценю каждое предложение. Благодарю.