Развертывание приложения GWT как единого файла JavaScript - PullRequest
4 голосов
/ 13 марта 2012

Скомпилированный вывод JavaScript приложения GWT делится на различные файлы, например

  • *. Cache.html
  • *. Gwt.rpc
  • hosted.html
  • *. Nocache.js

...

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

Однако, особенно для небольших GWT-приложений, часто может быть быстрее загрузить один файл, скажем, 500 КБ, чем делать два последовательных запроса сначала для сценария 5 КБ * .nocache.js, а затем для остальной части приложения (кеш. HTML-файлы и т. д.).

Это подводит меня к вопросу: Существует ли какая-либо инфраструктура или процедура для объединения вывода компилятора GWT в один файл JavaScript ?

Ответы [ 3 ]

4 голосов
/ 13 марта 2012

Во-первых, вы можете объединить все перестановки в одном файле, используя так называемые «мягкие перестановки» .

Затем вы можете встроить ваши * .nocache.js в HTMLСтраница хоста (например, с использованием директивы JSP @include) для вырезания одного дополнительного запроса (вам может потребоваться добавить <meta name=gwt:property content='baseUrl=myapp'>, где myapp - подпапка, в которой находятся файлы .nocache. ).
AFAIK это то, что Google делает для своих приложений GWT.

В качестве альтернативы, вы можете запустить выбор перестановки на стороне сервера, если вы можете полностью заменить скрипт выбора (*.nocache.js) с согласованием содержимого на стороне сервера (например, на основе заголовков запросов User-Agent и Accept-Language), который может напрямую генерировать тег <script> для соответствующего файла * .cache.js (при условии, что вы используете xsiframe linker).

AFAIK, Google использует все эти методы для своих приложений GWT (таких как группы Google).Однако для небольшого приложения я не уверен, что оно того стоит ...
Кроме того, последние два метода работают лучше всего, когда ваша HTML-страница хоста уже динамична и, следовательно, уже не кэшируется;иначе вы в основном переносите проблему, а не решаете ее.

Интересно, можно ли использовать компоновщик sso, когда вы сворачиваете все свойства и программные перестановки вплоть до одной жесткой перестановки.

1 голос
/ 13 марта 2012

Да, но это может быть не то, что вы хотите.См. Этот ответ: https://stackoverflow.com/a/4453716/66416 на этот вопрос:

0 голосов
/ 14 августа 2015

Я нашел другой способ сделать это: написание собственного компоновщика для GWT.Два примера компоновщиков, которые компилируются в один файл JavaScript:

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