我在想,是否存在GWT不适用的特定情况?例如,使用GWT重新开发Stack Overflow合适吗?
我正在开发一个具有Java Restlet API的应用程序,计划使用GWT(以前我只是使用普通的HTML/CSS和后端PHP代码调用API)。我想知道为什么不应该选择这样做的原因?
我在想,是否存在GWT不适用的特定情况?例如,使用GWT重新开发Stack Overflow合适吗?
我正在开发一个具有Java Restlet API的应用程序,计划使用GWT(以前我只是使用普通的HTML/CSS和后端PHP代码调用API)。我想知道为什么不应该选择这样做的原因?
我的回答不是很全面,但我认为以下几点可能会有帮助。
请看这个主题:GWT 适合大型项目吗?
GWT 是用于在单个页面中操作复杂操作的最佳选择,例如 Google Wave、Google Mail 等等。您可以轻松更新(ajax)页面的任何部分。
由于 GWT 是 java-to-javascript 编译器,用户需要等待 .js 文件加载,如果您的 web 应用程序很大,则会导致许多问题。您的项目越大,javascript 文件越大,用户等待 .js 文件的时间也就越长。
个人认为,如果您有一个看起来像博客、新闻门户等静态网站,每个页面都有自己的身份表示一个实体,并单独请求,请不要仅使用GWT(您仍然可以将其与服务器端生成的页面混合使用,如FB)。
对于大多数其他Web应用程序,特别是如果用户登录以使用您的应用程序或您的应用程序是交互式的且没有技术问题,请使用GWT(例如Gmail设计)。
如果您在大型项目中使用GWT,则必须等待约1分钟才能编译应用程序。然后没有好的方法来调试它。Google提供了特殊的浏览器插件,但它们不稳定,并且不支持浏览器的最新版本,因此我不得不降级FF。此外,巨大的GWT应用程序调试需要大量的Java内存,因此您必须为Tomcat提供更多内存。最后,在实践中,您无法避免学习JS,如果您进行现代Web开发,则必须学习它。
更新于2017年5月15日:我的回答受到GWT粉丝的反对,但我想指出,我的信息是最新的:使用最新的IDEA和10Gb mem SSD笔记本电脑重建1页hello world应用程序需要约30秒。我还问过在生产中使用GWT进行严肃项目的朋友:他们声称平均重新部署时间为2分钟。