Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT:模块vs客户端包?_Java_Gwt_Module_Clientbundle - Fatal编程技术网

Java GWT:模块vs客户端包?

Java GWT:模块vs客户端包?,java,gwt,module,clientbundle,Java,Gwt,Module,Clientbundle,我是GWT新手,很难理解模块和ClientBundle之间的根本区别。在GWT文档的某些领域,两者似乎是同一事物中的一个,而在其他领域,它们显然是不一样的 我的理解是,模块是部署到用户浏览器的客户端代码。这是一个包含HTML、CSS和JS的ZIP文件 我的理解是ClientBundle类似于模块,但它只包含静态资源,如图像 如果这些理解是正确的,那么为什么要区分两者呢?HTML/CSS/JS不是静态资源吗?!?如果我有点不对劲,请帮助我理解它们的区别,也许可以提供一个具体的例子,说明每一个,以及

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

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

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


如果这些理解是正确的,那么为什么要区分两者呢?HTML/CSS/JS不是静态资源吗?!?如果我有点不对劲,请帮助我理解它们的区别,也许可以提供一个具体的例子,说明每一个,以及何时使用它们是合适的。提前谢谢

您对模块的理解是正确的——它(在开发端)描述了要使用的java源路径、开始编译的入口点以及编译时要使用的各种属性(浏览器、区域设置)。编译后,模块也表示输出——javascript和任何相关的其他编译文件,无论是日志、图像、样式表等

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

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


是的,ClientBundles描述了运行中的应用程序所需的静态资源,是的,一个编译的模块由各种静态资源组成,但是我想重新表述一下您的理解:ClientBundle是一种将静态内容包含在GWT模块中的方式,可以使其尽可能高效地加载。

您对模块的理解是正确的,它(在开发端)描述了要使用的java源路径,入口点开始编译,以及编译时要使用的各种属性(浏览器、区域设置)。编译后,模块也表示输出——javascript和任何相关的其他编译文件,无论是日志、图像、样式表等

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

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


是的,ClientBundles描述了运行中的应用程序所需的静态资源,是的,一个编译的模块由各种静态资源组成,但我想重新表述一下您的理解:ClientBundle是GWT模块中包含静态内容的一种方式,可以使其尽可能高效地加载。

感谢@Colin Alworth给出了一个非常棒的答案(+1)-但是我仍然不太了解“树中森林”的含义在这里…也许继续您的
CssResource
ImageResource
示例,您可以向我展示一个目录结构,其中包括同一项目中的模块和其中一个ClientBundle,并将它们与发送回客户端浏览器的最终输出相关联吗?再次感谢!结构非常简单-声明CssResource子接口,然后在同一个包中创建一个ClientBundle类型作为一组图像和css文件,并使用@Source注释将ClientBundle方法映射到文件。输出比较困难,因为特别是对于图像,它因浏览器而异,但CSS总是烘焙到最终编译的JS中,并且只在需要时注入。我喜欢讨论如何使用它以及一些例子——如果这还不够清楚,我会修改答案。感谢@Colin Alworth给出了一个很棒的答案(+1)——但是我仍然没有看到这里的“穿越树木的森林”…也许还是坚持你的
CssResource
ImageResource
,您能否向我展示一个目录结构,其中包括同一项目中的模块和其中一个ClientBundle,并将它们与发送回客户端浏览器的最终输出关联起来?再次感谢!结构非常简单-声明CssResource子接口,然后在同一个包中创建一个ClientBundle类型作为一组图像和css文件,并使用@Source注释将ClientBundle方法映射到文件。输出更困难,因为特别是f