2

我今天成功运行了 GWT 2.6.1 SuperDevMode,我想知道我们是否可以将这一行留在 .gwt.xml 文件中:

<set-configuration-property name="devModeRedirectEnabled" value="true"/>

在这篇文章 ( http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/ ) 中,它建议将其删除以进行生产。我想知道为什么?

如果我们将其保留用于生产,是否会对性能或安全性产生影响?

4

2 回答 2

4

实际上,从 GWT 2.6.0 开始,它现在默认开启,因为添加了安全措施。

发行说明

2.6.0 (RC4) 发行说明

此版本默认启用超级开发模式挂钩

[…]

超级开发模式

  • 安全性:在 2.6 中,我们认为打开 Super Dev Mode 挂钩并将其留在生产中是安全的。作为额外的预防措施,我们建议设置 devModeUrlWhitelistRegexp 配置属性,以确保它只能从 localhost 和您自己域中的开发人员计算机加载 JavaScript。

  • 安全性:在 https 页面上自动禁用超级开发模式(另一个预防措施,由于混合内容的限制,它无论如何都不起作用。)

(注意:devModeUrlWhitelistRegexp默认只允许localhostand 127.0.0.1

于 2014-05-23T12:45:29.613 回答
3

但是,由于 Super Dev Mode 仍然是一项实验性功能,因此默认情况下不启用重定向。要为 GWT 应用程序启用超级开发模式,您当前必须在其 module.xml 文件中添加以下行:

 <add-linker name="xsiframe"/>
 <set-configuration-property name="devModeRedirectEnabled" value="true"/>

(目前,只有 xsiframe 链接器支持超级开发模式。)


但是,您还应该注意一些缺点:

  • 确保超级开发模式的工作尚未完成。同时,我们建议只在 localhost 或防火墙后面运行代码服务器。此外,作为一项安全措施,应在生产应用程序中禁用超级开发模式。(即,将 devModeRedirectEnabled 设置为 false。)
  • 我们预计 Super Dev Mode 将能够支持任何现代浏览器,但目前,我们仅在 Chrome 和 Firefox 上对其进行了测试。目前,超级开发模式不适用于经典开发模式工作的一些非常大的 GWT 应用程序。
  • 只有一个 GWT 链接器支持超级开发模式
  • 目前,只有 Chrome 调试器支持 Source Maps。我们希望浏览器支持能够改进,以便您可以轻松调试仅在其他浏览器中发生的问题,但与此同时,您将不得不求助于其他调试技巧,例如添加日志语句和重新编译。
  • Java 调试器的许多功能在使用超级开发模式时不可用。例如,在 Chrome 调试器中检查变量时,字段名称和值是 JavaScript,而不是 Java。
  • 目前,超级开发模式不支持像经典开发模式那样运行 Java Web 应用程序(war 文件)。解决方法是在单独的服务器上运行它们。
  • 由于 Super Dev Mode 不在 JVM 中运行 GWT 应用程序,因此不会发生某些运行时检查。例如,当数组索引超出范围时,不会有任何 IndexOutOfBoundsException。

由于这些原因,超级开发模式仍被认为只是实验性的。

完整描述请参考GWT 超级开发模式,最后更新于 2012 年 6 月。


请查看以生产模式运行

您指的是一篇文章GWT 的超级开发模式如何工作?最后更新于 2012 年 6 月。

于 2014-05-23T11:35:29.983 回答