自1.3版本发布以来,我们正在使用GWT定期构建小型(~2K Java类)到中型(~6K)企业系统。我知道在每秒有数千次点击的公共网站中,有一组不同的问题需要解决,但我会尝试讲述我们在GWT 1.x中最大的问题以及GWT 2.0如何解决这个问题。
浏览器内存泄漏GWT的IE6泄漏是巨大的,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的稳定性,因为我们还没有在实际项目中使用它。
希望这有帮助。