2009-11-17 2 views
3

У меня возник вопрос по управлению многостраничным веб-сайтом GWT. Пока у меня есть только одна html-страница, в которую я вставляю множество div для хранения виджетов, которые я использую. Затем, согласно действиям пользователя, я добавляю или удаляю необходимые divs с использованием класса DOM DWW. Поэтому я использую только одну страницу html для имитации нескольких страниц. Есть лучший способ сделать это?Достижение многостраничного сайта GWT

Спасибо.

ответ

5

Я не согласен с cletus. По моему опыту, gwt так же хорош в расширении приложений многостраничных приложений, как в одностраничных приложениях, таких как gmail. Это зависит только от ваших требований к вашему веб-приложению.

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

Чтобы ответить на ваш вопрос; Я думаю, что ваш дизайн использования одной страницы и замены виджетов вполне приемлем.

Эти переговоры могут помочь дать вам идеи о том, когда несколько страниц приложения может иметь смысл:

4

GWT предназначен в первую очередь для одностраничных приложений. Для этого есть веские причины. Вы делаете удар каждый раз, когда вы делаете переход страницы с таким большим количеством Javascript. Время загрузки страницы настолько заметно. Подумайте о том, как обращаться с GMail. У вас есть период 1-5 секунд, когда он загружается. Как будет выглядеть ваш пользователь, если это произойдет, когда пользователь перейдет на новую страницу, и это произошло много?

Вам также не нужно размещать каждый виджет на странице. Вы можете динамически создавать и добавлять (или удалять) виджетов по своему усмотрению. Это несколько иной подход к тому, как вы обычно делаете традиционный многостраничный веб-сайт, ориентированный на HTML.

+0

Спасибо или разъяснение. Это в значительной степени то, что я делаю. Однако мне было интересно, есть ли более эффективная альтернатива (например, шаблон дизайна) для использования GWT для многостраничных веб-приложений. – jaxvy

1

Что-то, что я нашел полезным, это использование GWT DeckPanel. Палубная панель похожа на колоду карт, где каждая «карта» представляет собой панель GWT. Вы можете обрабатывать эти «карточные» панели, как страницы, и инициализировать и заполнять их виджетами при запуске. Затем вы можете реагировать на действия пользователя, подключая панель «карта» к передней части колоды, чтобы пользователь мог ее видеть.

Такой подход работает лучше всего как часть шаблона проектирования MVC (модель-вид-контроллер) или MVP (модель-представление-презентатор).

1

Для того, чтобы достичь такой вещи, вы должны иметь управление историей - например, Gmail, который может использовать back/forward. Это достигается с помощью анкеров и this class

0

В дополнение к хорошим DeckPanel и истории предложений, я бы также добавить, что вы можете получить GWT разбить приложение на несколько файлов JS, которые динамически загружаются по мере необходимости с runAsync. Это даст вам очень быструю начальную загрузку страницы и загрузите новые «страницы» по мере необходимости.

LazyPanel .createWidget() - удобное место для запуска вызова runAsync, который можно комбинировать с DeckPanel или TabPanel для динамической загрузки содержимого и кода пользовательского интерфейса. Контроллер/презентатор для навигации еще лучше (хотя иногда немного работает над программистом).