2013-12-17 2 views
1

По многостраничной я имею в виду отдельные HTML-файлы, скажем, index.html, admin.html и т.д.Создание приложение GWT многостраничный

Теперь одно решение для достижения этой цели, чтобы иметь это в классе EntryPoint:

if (!Window.Location.getPath().toLowerCase().endsWith("myhtmlpage.html") { 
    return; 
} 

Я хочу глубоко понять здесь, что мое приложение GWT имеет основное приложение, приложение администратора и т. Д. Тенденция к файлу приложения nocache.js станет больше, поэтому дольше загружаться.

Вопрос в том, не содержит ли код выше других частей скомпилированного приложения GWT для загрузки ненужных частей приложения, например, для кода IndexPointPoint или Admin EntryPoint загружаются отдельно?

ответ

1

Право Патрик,

Кроме того, нет никакого способа, чтобы использовать метод расщепления код для JS библиотек, которые не в вашем проекте (не GWT). Таким образом, разделение страниц правильно, чтобы избежать использования js-библиотек, которые вы используете для своего кода администратора, но вы не используете его в своем фронт-офисе, это нормально, если вы включили js на странице, и вы не вводите его через GWT. В противном случае вы несете ответственность за разделение кода (у вас есть общий пакет, доступный для всех, но индивидуальные нагрузки на «страницу»)

Теоретически, говорят, хорошая точка разделения - это активность (но я не убежден, поскольку у меня много действий на моих страницах, и загрузка каждого сценария может быть плохим для производительности, так что это анализ каждого случая), вы можете увидеть все, что включено в ваш раскол в compiler report

Найдите время чтобы посмотреть это видео, это сэкономит вам массу проблем https://www.youtube.com/watch?v=0F5zc1UAt2Y

2

Нет, ваш оператор if/return не помешает загрузить ненужный код javascript.

Стандартный способ разделить код пользовательского интерфейса на code splitting.

Стандартный способ эмулировать несколько страниц - управлять history & hyperlinks. В основном используйте маркеры для управления состояниями приложений с хэш-кодом в конце URL-адреса, например, #home, #admin.

Образец, который мне нравится, представляет собой комбинацию двух вышеуказанных. Для страницы, которая не требуется загружать изначально, я скрываю ее за вызовом для разделения кода на GWT.runAsync на сервер с отдельным маркером истории. Для страниц, для которых я хочу динамически управлять контентом на стороне сервера, не перекомпилируя javascript, я создаю серверный вызов, который я полностью контролирую, который возвращает html, отображаемый в браузере через GWT HTMLPanel - конечно, не нужно перекомпилировать так долго поскольку структура html и соответствующий код HTMLPanel не изменяются. Дополнительным преимуществом последнего является то, что вы можете контролировать регистрацию на стороне сервера для отслеживания статистики загрузки страниц.

Наконец, вы можете прочитать о деятельности GWT & Места, из которых я прочитал стандарт для ведения истории & таких.

Смежные вопросы