gpt4 book ai didi

java - GWT:模块与 ClientBundle?

转载 作者:行者123 更新时间:2023-12-01 19:01:35 27 4
gpt4 key购买 nike

我是 GWT 新手,很难理解模块ClientBundle之间的根本区别。在 GWT 文档的某些区域中,两者似乎是同一件事,而在其他区域中,显然它们并不相同。

我的理解是,模块是部署到用户浏览器的客户端代码。这是一个包含 HTML、CSS 和 JS 的 ZIP 文件。

我的理解是,ClientBundle 类似于 Module,但它只包含静态资源,例如图像。

如果这些理解都是正确的,那么为什么需要区分两者呢? HTML/CSS/JS 不也是静态资源吗?!?如果我的说法离谱,请帮助我理解差异是什么,也许还提供每个差异的具体示例以及何时适合使用每个差异。提前致谢!

最佳答案

关于模块,您已经有了正确的想法 - 它描述了(在开发方面)要使用的 java 源路径、开始编译的入口点以及要使用的各种属性(浏览器、区域设置)编译时。编译后,该模块还表示输出 - javascript 和任何关联的其他编译文件,无论是日志、图像、样式表等。

相比之下,ClientBundle是开发人员可以告诉编译器编译后将使用java源路径中的某些资源的方式之一。 CssResource 附带了额外的检查,检查是否使用了 css 样式名称(如果没有,则应将其删除以最小化编译输出),ImageResource 确保编译时文件存在,并且都以针对每个浏览器的最佳优化方式输出这些文件。大多数浏览器的图像实际上都包含在庞大的 JS 文件中,以最大限度地减少对服务器的调用次数,对于那些不支持此功能的浏览器,它们会自动 Sprite 化在一起。

通过声明 ClientBundle 接口(interface)并调用 GWT.create(MyClientBundle.class),您要求编译器处理 ClientBundle 细节,使这些引用的文件和类在您的应用中可用。 如何实现它与 GWT 生成器有关,这是一个比 SO 答案中可以解决的更高级的主题......

是的,ClientBundles描述正在运行的应用程序所需的静态资源,是的,编译的模块包含各种静态资源,但我会将您的理解改写为这么说吧:ClientBundle 是将静态内容包含在 GWT 模块中的方法之一,以使其尽可能高效地加载。

关于java - GWT:模块与 ClientBundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12065511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com