我是GWT新手,很难理解模块和ClientBundle之间的根本区别。在GWT文档的某些领域,两者似乎是同一件事,而在其他领域,它们显然并不相同。
我的理解是,模块是部署到用户浏览器上的客户端代码。这是一个包含HTML、CSS和JS的ZIP文件。
我的理解是,ClientBundle类似于模块,但它只包含静态资源(如图像)。
如果这些理解是正确的,那么为什么需要区分两者呢?HTML/CSS/JS也是静态资源吗?如果我离基础很远,请帮助我理解这些差异是什么,也许可以提供一个具体的例子,说明每一种方法,以及在什么时候使用它们。提前感谢!
发布于 2012-08-22 04:36:00
您对模块有了正确的认识--它(在开发端)描述了要使用的java源路径、从哪里开始编译的入口点以及编译时要使用的各种属性(浏览器、区域设置)。编译后,该模块还表示输出-- javascript和任何相关的已编译文件,无论它们是日志、图像、样式表等等。
相反,ClientBundle是开发人员告诉编译器编译后将使用java源路径中的某些资源的方式之一。CssResource附带额外的检查css样式名称是否使用(如果不使用,则应该删除它们以最小化编译后的输出),ImageResource确保文件在编译时存在,并且都以最佳的方式为每个浏览器输出这些文件。大多数浏览器的图像实际上都包含在庞大的JS文件中,以尽量减少对服务器的调用次数,而对于那些不支持此功能的浏览器,它们会自动合并到一起。
通过声明一个ClientBundle接口并调用GWT.create(MyClientBundle.class),您将要求编译器处理使这些引用的文件和类在应用程序中可用的ClientBundle细节。它是如何与GWT生成器有关的?GWT生成器是一个比在这样的答案中所能讨论的更高级的主题.
是的,ClientBundles描述了运行中的应用程序所需的静态资源,是的,编译后的模块由各种静态资源组成,但我要重新说明一下您的理解: ClientBundle是将静态内容包含在GWT模块中的方式之一,以便尽可能高效地加载静态内容。
https://stackoverflow.com/questions/12065511
复制相似问题