我是Eclipse RAP的新手,没有使用SWT或Eclipse RCP的经验。 但我知道开发人员负责处理SWT小部件,因为他们有本地对等方,会阻止操作系统的资源。
但是在RAP应用程序中“处理”呢? 管理操作系统资源是浏览器的问题(可能是文件对话框)。 因此,对于纯粹RAP的应用程序来说,“dispose”似乎是不必要的,对吗?
现在,如果我想使用SWT和RWT进行单一来源 ,即相同的源代码作为独立的RCP应用程序和RAP Web应用程序运行。 关于“处置”的最佳做法是什么? 该如何触发? 需要处理什么?
在处理小部件时,SWT和SWT / RAP之间没有区别。
虽然SWT小部件在未处理的情况下保留本机OS /窗口系统资源,但RAP小部件只要它们存在就会保存浏览器资源,即DOM节点。 在不再需要小部件时处理小部件并尽可能懒惰地创建小部件。
至于需要处理什么 - 任何dispose
方法! 这是从Widget
或Resource
派生的任何东西。
处理从Widget
派生的对象(控件,合成,......)通常在Shell关闭时自动处理。
处理从Resource
派生的对象(诸如Color
, GC
, Font
,...之类的东西)必须由您的代码完成。 您应该在不再需要它们时立即将其丢弃。 未能处理这些物体是一个常见的错误。