Достижение многостраничного сайта GWT - PullRequest
3 голосов
/ 17 ноября 2009

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

Спасибо.

Ответы [ 5 ]

5 голосов
/ 17 ноября 2009

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

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

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

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

4 голосов
/ 17 ноября 2009

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

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

1 голос
/ 17 ноября 2009

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

1 голос
/ 17 ноября 2009

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

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

0 голосов
/ 18 ноября 2009

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

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

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