GWT代码如何在开发代码中运行

Ana*_*and 2 gwt

在GWT Web /生产模式中,Java代码被编译到在浏览器中呈现的Javascript代码中.

此外,我一直认为在GWT开发模式中,GWT开发人员插件将我的Java代码编译成JavaScript以在浏览器中呈现它.但在阅读了一些网站后,我才知道没有编译代码可以在开发模式下在浏览器中查看它.

所以,我想知道:如果这些小部件不是JavaScript代码,我在浏览器中看到的这些小部件是什么?我不明白.

请帮助理解这一点.

Tho*_*yer 6

开发模式的关键在于你的代码是用Java运行的.如果您可以使用标准Java调试器,那么这是先决条件.您将在GWT文档中找到高级概述.

神奇的发生与JSNI方法覆盖类型:在加载类,提取它的所有JSNI方法及其JS的身体被发送到浏览器,准备执行(如JavaScript的话),和类重写对飞重新实现JSNI方法来调用浏览器(通过你在那里安装的Dev插件并?gwt.codesvr=在URL中触发)来执行相应的JS函数.这就是为什么Java对象在JSNI方法中被视为不透明句柄的原因; 它们被分配了一个数字ID,用于将Java对象与服务器端的虚拟JS对象配对.对覆盖类型进行了类似但更复杂的重写,并且在将JS对象传递给Java代码(作为覆盖类型)时使用相同的ID映射.

顺便说一句,超级开发模式即时编译到JavaScript(几乎).