Gwt 在大型企业应用程序中使用ClientBundle?

Gwt 在大型企业应用程序中使用ClientBundle?,gwt,Gwt,我们正在用GWT构建一个大型企业应用程序(几十个模块),需要决定是否使用ClientBundle。我很好奇StackOverflow GWT社区将其视为这样一个用例的交易制定者和交易破坏者,有何利弊 就我们目前所见: 专业人士 消除了占用服务器资源下载的所有图像/css文件 由于上述原因(即内联图像URL),客户端加载速度更快 CSS名称被模糊化,因此命名空间冲突被消除 CSS是自动优化/验证的 消除了未使用的CSS类(如上所述) Java对类名的引用被可重构css接口替换 UiBinder对

我们正在用GWT构建一个大型企业应用程序(几十个模块),需要决定是否使用ClientBundle。我很好奇StackOverflow GWT社区将其视为这样一个用例的交易制定者和交易破坏者,有何利弊

就我们目前所见:

专业人士

  • 消除了占用服务器资源下载的所有图像/css文件
  • 由于上述原因(即内联图像URL),客户端加载速度更快
  • CSS名称被模糊化,因此命名空间冲突被消除
  • CSS是自动优化/验证的
  • 消除了未使用的CSS类(如上所述)
  • Java对类名的引用被可重构css接口替换
  • UiBinder对类名的引用被可重构css接口替换
  • 不再有大的“main.css”失败,因为资源是特定于模块包的
缺点

  • 对于维护,CSS要么在模糊模式下无法读取,要么在调试模式下极其冗长
  • 基本CSS工作需要更多步骤(如添加类)
  • 所有开发人员都必须了解Java、CSS和HTML的细微差别
  • GWT本机不支持CSS3和其他at规则(即@font-face)
  • 增加编译时间

谢谢

我一直在大量使用客户端包

困扰我的一件事是为没有开发模式的设备设计样式。因此,样式可能意味着重新编译整个应用程序

大多数情况下,所有CSS3规则都可以通过使用literal函数在ClientBundle中使用,所以这应该没问题。在@media查询中,它变得有点诡计多端。您可以将css作为一个简单的文本资源注入,作为一种解决方法,但它有点难看

当你谈论几个GWT模块时,考虑使用多个客户端包,这样你仍然可以使用分点来保持下载文件大小被控制(取决于你的.js文件有多大)


我在几个大型gwt应用程序中使用了ClientBundle,对我来说,编译时检查和重构支持克服了客户端bundle中仍然存在的一些小问题。

还有两个注意事项:

  • GWT中有一个可用的接口,它允许为CSSResources自动创建接口
  • 调试样式确实有点麻烦,因为名称模糊。我成功地使用Firebug在浏览器中直接在开发模式下更改样式,当我满意时,我在GWT应用程序中更改样式
谢谢丹尼尔!这也是我的希望。目前,利大于弊。我希望每个人都有和你一样的经历,并且没有太多的缺点。谢谢你。我发现这个实用程序非常方便。也许,如果能够完全自动化地构建这些接口并重构使用它们的ui.xml文件。。。这样,我们的用户界面人员就不需要编辑半打文件来更改类了。