经过多次RIA / Ajax框架的长期争论,我们选择了GWT。在阅读它时,这个框架会让一切都变得简单。但是,与任何技术一样,总是存在不足之处,我们会以艰难的方式学习它们。
使用Google Web Toolkit(GWT)时出现的主要缺陷或问题是什么?
(例如:后退/前进按钮支持,慢响应时间,布局定位,JavaScrit错误等)
到目前为止,我从回复中得到以下信息:
谢谢
答案 0 :(得分:14)
我已经使用GWT近2年了。虽然我可以被称为关于GWT的狂热分子,但是有些问题应该让人知道......
正如其他人所说,JavaScript编译很慢。我的应用程序需要将近4分钟的核心i7 CPU,8 GB内存。生成的JavaScript总大小约为5 MB。但是由于开发模式,不需要经常编译JavaScript。
GWT RPC在开发模式下非常慢。它比托管模式慢100倍。对我们来说这是一个很大的问题。我们确实考虑过因为这个原因而放弃GWT。在开发模式下GWT RPC性能低下的原因是序列化。在String模式下,String以外的类型的序列化速度令人难以置信地慢。我们确实实现了自定义序列化,它比GWT内置序列化快近30倍。
声称编写GWT应用程序只需要了解Java只是一种幻想。你应该有关于CSS和DOM的可靠信息。如果不这样做,您将花费太多时间来调试用户界面。
您应该考虑只能使用JDK的一小部分来实现GWT应用程序。反思不可用;您应该使用第三方库,例如GWT ENT,或者编写您自己的generator进行反思。
需要考虑的另一个警告是GWT编译器生成的JavaScript的大小。大多数GWT应用程序由单个Web页面组成,而不是多页面传统Web应用程序。因此,加载应用程序需要大量时间。虽然可以通过使用多模块方法和代码拆分来缓解这种情况,但使用这些技术并不总是直截了当。
对服务器的所有调用都是异步的。你应该适应自己编写异步代码。而异步代码的缺点是它比等效的同步代码更复杂,更不易读。
答案 1 :(得分:8)
以下是我对垮台的观察:
如果我要开始新的GWT项目,我会:
spring roo工具可以为标准应用程序元素生成大量基于GWT的代码。
答案 2 :(得分:2)
前段时间我用GWT做了一个原型应用程序,我发现将java编译成javascript所花费的时间花了很长时间。随着我们编写的每行代码,编译时间越来越多。
我对代码不满意,编译测试阶段越来越慢。
有关编译器的另一个问题:How do I speed up the gwt compiler?
答案 3 :(得分:2)
我认为主要的缺点是GWT经常需要编写大量代码来完成简单的任务(但每次发布时它会变得越来越好)。另一方面,它在开发复杂的自定义小部件时非常出色。 在几个项目中,GWT已经证明在性能方面非常出色并且没有太多错误 - 它在跨浏览器支持方面非常好。
答案 4 :(得分:0)
作为耶稣诞生的粉丝...... 我更喜欢JQuery而不是GWT,因为在不编写许多类的情况下,很容易制作动画或完成复杂的任务。