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