ClientBundles и ресурсы: что они и зачем их используют? Какие проблемы они решают?
Я тоже новенький GWT, и сколько бы я ни читал официальный документ наClientBundle
Я просто не могу обернуться вокруг того, кто они и чем занимаются. То же самое касается CssResource
, DataResource
, TextResource
, GWTCreateResource
, так далее.
Я думаю, что они существуют как своего рода оптимизация производительности для статических файлов (таких как CSS, JavaScript или некоторый статический источник данных, такой как файл JSON). По-видимому, они также являются "инъекционными", что не имеет смысла для меня, если они должны быть статическими CSS/JS/JSON/ и т.д. файлы...
Поэтому я спрашиваю: может ли кто-нибудь дать мне простое, простое, простое объяснение английского языка короля, что это за объекты и как они используются? Могу ли я быть настолько смелым, чтобы попросить рабочий пример этой инъекции в действии (фрагмент кода в ссылке выше говорит о внедрении, но на самом деле никогда не показывает его!)? Как они отображаются на реальные файлы (my-styles.css
, dataTable-static-data.json
, так далее.)? На самом деле, я думаю, что это мое самое большое умственное препятствие: привязать эти объекты Java к статическим файлам, которые они представляют.
Кроме того, зачем связывать? Возможность повторного использования в других проектах? Может быть, именно здесь вводится инъекция? Я весьма озадачен.
1 ответ
Они решают много проблем:
Ваш CSS безопасен для компиляции. Если вы используете css-класс, который не существует, компиляция покажет вам, какой класс не существует
Ваш CSS безопасен для имени. Если у вас есть два разных виджета, которые используют одно и то же имя класса css, компилятор гарантирует, что ваш класс виджета "A" не повредит виджет "B" css
Вы автоматически компилируете изображения в data-url или спрайтовые изображения. Это уменьшит количество http-звонков.
Посмотрите на цели: https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle