小编典典

最大的 GWT 陷阱?

all

我正处于我们选择使用 GWT 实施的项目的开始/中间。有没有人在使用 GWT(和 GWT-EXT)时遇到任何无法克服的重大陷阱?从性能的角度来看呢?

我们已经看到/听到的一些事情包括:

  • 谷歌无法索引内容
  • 总体而言,CSS 和样式似乎有点不稳定

也在寻找有关这些项目的任何其他反馈。谢谢!


阅读 99

收藏
2022-07-28

共1个答案

小编典典

我首先要说我是 GWT 的忠实粉丝,但是确实有很多陷阱,但我们能够克服的大部分(如果不是全部的话):

问题: 编译时间长,随着项目的增长,编译所需的时间也会增加。我听说过 20 分钟编译的报告,但我的平均大约 1 分钟。

解决方案: 将您的代码拆分为单独的模块,并告诉 ant
仅在更改时才构建它。此外,在开发过程中,您可以通过只为一个浏览器构建来大大加快编译时间。您可以通过将其放入 .gwt.xml 文件来执行此操作:

<set-property name="user.agent" value="gecko1_8" />

其中 gecko1_8 是 Firefox 2+,ie6 是 IE,等等。


问题: 托管模式非常慢(至少在 OS X 上),并且与您在编辑 JSP 或 Rails 页面等内容并在浏览器中点击刷新时获得的“实时”更改不匹配。

解决方案: 您可以为托管模式提供更多内存(我通常为 512M),但它仍然很慢,我发现一旦您对 GWT
足够好就停止使用它。您进行了大量更改,然后仅针对一个浏览器进行编译(通常需要 20 秒的编译时间),然后只需在浏览器中点击刷新即可。

更新:使用 GWT 2.0+
这不再是问题,因为您使用新的“开发模式”。这基本上意味着您可以直接在您选择的浏览器中运行代码,因此不会损失速度,而且您可以触发/检查它等。

http://code.google.com/p/google-web-
toolkit/wiki/UsingOOPHM


问题: GWT 代码是 java,与布局 HTML 页面有不同的心态,这使得采用 HTML 设计并将其转换为 GWT 更加困难

解决方案: 您再次习惯了这一点,但不幸的是,将 HTML 设计转换为 GWT 设计总是比将 HTML 设计转换为 JSP 页面之类的操作要慢。


问题: GWT 需要一些时间来了解,并且还不是主流。这意味着大多数加入您的团队或维护您的代码的开发人员必须从头开始学习

解决方案: GWT 是否会起飞还有待观察,但如果您是一家可以控制招聘人员的公司,那么您总是可以选择了解 GWT 或想学习 GWT 的人。


问题: 与 jquery 或纯 javascript 之类的东西相比,GWT 是一把大锤。实现它需要更多的设置,而不仅仅是包含一个 JS 文件。

解决方案: 使用 jquery 之类的库来完成适合这些任务的更小、更简单的任务。当您想在 AJAX 中构建真正复杂的东西,或者您需要通过 RPC
机制来回传递数据时,请使用 GWT。


问题: 有时为了填充您的 GWT 页面,您需要在页面首次加载时进行服务器调用。当您获取所需数据时,用户坐在那里观看加载符号可能会很烦人。

解决方案: 在 JSP 页面的情况下,您的页面在成为 HTML 之前已经由服务器呈现,因此您实际上可以进行所有 GWT
调用,并将它们预加载到页面上,以便即时加载。有关详细信息,请参见此处:

通过预序列化 GWT
调用来加速页面加载


我从来没有遇到任何问题 CSS 样式我的小部件,开箱即用,自定义或其他,所以我不知道你的意思是这是一个陷阱?

至于性能,我一直发现编译后的 GWT 代码很快,而且 AJAX 调用几乎总是比整个页面刷新要小,但这并不是 GWT 真正独有的,尽管如果你使用你会得到本机
RPC 数据包一个 JAVA 后端非常紧凑。

2022-07-28