ClientBundles и ресурсы: что они и зачем их используют? Какие проблемы они решают?

Я тоже новенький GWT, и сколько бы я ни читал официальный документ наClientBundle Я просто не могу обернуться вокруг того, кто они и чем занимаются. То же самое касается CssResource, DataResource, TextResource, GWTCreateResource, так далее.

Я думаю, что они существуют как своего рода оптимизация производительности для статических файлов (таких как CSS, JavaScript или некоторый статический источник данных, такой как файл JSON). По-видимому, они также являются "инъекционными", что не имеет смысла для меня, если они должны быть статическими CSS/JS/JSON/ и т.д. файлы...

Поэтому я спрашиваю: может ли кто-нибудь дать мне простое, простое, простое объяснение английского языка короля, что это за объекты и как они используются? Могу ли я быть настолько смелым, чтобы попросить рабочий пример этой инъекции в действии (фрагмент кода в ссылке выше говорит о внедрении, но на самом деле никогда не показывает его!)? Как они отображаются на реальные файлы (my-styles.css, dataTable-static-data.json, так далее.)? На самом деле, я думаю, что это мое самое большое умственное препятствие: привязать эти объекты Java к статическим файлам, которые они представляют.

Кроме того, зачем связывать? Возможность повторного использования в других проектах? Может быть, именно здесь вводится инъекция? Я весьма озадачен.

1 ответ

Решение

Они решают много проблем:

  1. Ваш CSS безопасен для компиляции. Если вы используете css-класс, который не существует, компиляция покажет вам, какой класс не существует

  2. Ваш CSS безопасен для имени. Если у вас есть два разных виджета, которые используют одно и то же имя класса css, компилятор гарантирует, что ваш класс виджета "A" не повредит виджет "B" css

  3. Вы автоматически компилируете изображения в data-url или спрайтовые изображения. Это уменьшит количество http-звонков.

Посмотрите на цели: https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle

Другие вопросы по тегам