我一直在阅读GWT中一堆“最高投票”的问题。其中一些问题涉及GWT的缺陷或问题。
在文章:Which Javascript framework (jQuery vs Dojo vs … )?和Biggest GWT Pitfalls?中,一些海报似乎表明GWT不够轻,或者有更好的替代品可以使用。
你们中的大多数人是否认为GWT存在问题尚未通过GWT 2.0修复 - 这会让你倾向于建议在新项目中使用更简单的框架?
在某种程度上,GWT不应该在某种程度上面向未来(因为您不必担心它在发布之间发生巨大变化,因为它得到Google的支持)?
我意识到这个问题的答案很大程度上取决于你想做什么或你想做什么。我从创建一个最终将被数百万用户使用的新Web应用程序的角度来看这个。
答案 0 :(得分:52)
答案 1 :(得分:10)
我们正在使用GWT定期为中型(~6K)企业系统构建小型(~2K Java类),因为版本1.3已经淘汰。我知道在公共网站上有一组不同的问题要解决,每秒有一千次点击,但我会试着说明我们在GWT 1.x中遇到的最大问题以及GWT 2.0如何接近这个问题。
浏览器内存泄漏 IE6泄漏与GWT是巨大的,IE7泄漏可以通过定期页面刷新来补偿,IE8承诺在这方面有一些稳定性,但在企业中尚未被广泛接受。是的,即使是没有本机JS调用的有效GWT代码也会在某些情况下泄漏内存。特别是当UI很复杂并且你正在做很多Panel.clear()调用时。目前没有有用的工具来确定泄漏的真正原因。除非你知道如何破解浏览器本身。
呈现性能您必须非常仔细地编写UI代码,尤其是在构建常用的自定义小部件时。仍然需要深入的JavaScript,CSS和DOM知识。关于这个主题,互联网上有很多材料。您需要知道如何以及何时从GWT小部件级别下载到直接DOM操作。
可下载内容的大小在2.0之前,如果没有在应用程序中内置“硬”导航,将模块拆分为不同的可下载部分是不可能的。但这将清除JavaScript上下文并需要窗口重新加载。
UI开发人员思维转变经验丰富的UI开发人员只是不了解Java和OOP。有经验的Java开发人员不了解CSS,JS,HTML,也不喜欢构建UI。 UI Binder走向正确的方向。
我们已完成迁移1.3 - > 1.5 - > 1.7它总是只是一个重新编译和一些CSS修复。 GWT 2.0删除了许多已弃用的代码和初始方法(项目结构,GWTShell),并且可能很难快速迁移。但是所有功能看起来都很有前景,谷歌在某些时候已经放弃了遗留代码。我不确定2.0的稳定性,因为我们还没有在实际项目中使用它。
希望这有帮助。
答案 2 :(得分:4)
我们有一个GWT应用程序,带有一堆Selenium验收测试。我认为(像你一样)将GWT从1.7升级到2.0肯定是安全的。而且 - 主要是 - 。该应用程序仍然为“人类”用户工作相同,但硒测试全部破坏。有一个更新版本的Selenium正在准备中(在alpha版本中,有许多UnsupportedOperations),但如果我们想继续使用GWT 2,似乎我们必须放弃一些可测试性。所以要小心“面向未来”的假设。
我们决定使用GWT是在几个月前,在比较YUI和ZK后做出的。我很高兴我们选择了GWT。 GWT网站的支持程度和文档的总体质量似乎非常高。
GWT执行模块拆分并提供性能分析,这有助于反驳它不够轻量级的参数。