gwt的核心是它的编译器,它的职责就是将java代码编译成javascript代码,类似于标准的java编译器(将java代码编译成字节码).
gwt编译器有三种风格模式,这决定了编译后的javascript是什么样子. 分别是:
- obfuscate
- pretty
- detailed
缺省的情况下是obfuscate模式,这种模式下形成的javascript代码的形式如下:
function b(){return this.c + '@' + this.d();}
这种代码的可读性不好,但是产生的javascript文件很小.
pretty模式下,产生的javascript的样式:
function _toString(){
return this._typeName + '@' + this._hashCode();
}
detailed模式:
function java_lang_Object_toString__(){
return this.java_lang_Object_typeName + '@' + this.hashCode__();
}
detailed模式下产生的javascript代码的可读性最好,可以从中判断出相应的java代码的一些信息.
在开发阶段一般使用pretty或detailed模式,提高程序可调试能力.
但是在发布时,使用obfuscate模式,这样产生的javascript代码不会泄露不必要的java代码的信息,而且产生代码量也比其他两种要少.