如果基本,示例GWT应用程序需要30秒才能加载到浏览器中,这正常吗?真正的应用程序需要2分钟吗?

| 我有一台可以运行64位Windows 7的体面的机器。因此,无论何时我在“开发模式”下停止一个小型示例GWT应用程序,对其进行编辑并重新启动,都需要30秒才能在浏览器中响应,为什么呢?在最新的Firefox和最新的Chrome中? 对于当今的GWT开发人员来说,这种基于糖蜜的编辑-编译周期是否正常? 对于更现实的应用程序来说,情况会变得更糟吗?还是这30秒钟的时间仅仅是整个框架的开销,而我自己的代码不会使其变得比以往任何时候都更加肿吗? 可以通过使用其他“模式”或任何其他调整解决方案来缓解此问题吗? Google员工的机器比我快得多吗?在这方面,它的痛苦不那么大?还是他们像我们其他人一样受苦?     
已邀请:
我想我的回答是一个问题,“您确定真的需要重新启动吗?” 假设您正在运行在浏览器中的主机(听起来很像),那么大多数更改几乎在完成后就“很热”。昨天我花了很多时间对模块中的主代码文件进行各种更改,而不必为其中任何一个重新启动服务器。 我经常不得不在浏览器中重新加载页面以查看更改,但这是另一个问题。     
在开发过程中,GWT应用程序可以在不同的模式下运行,并且在何时需要 重新启动服务器, 重新加载服务器, 刷新浏览器, 或只是单击网页中的某个位置。 让我们退后一步,一方面查看开发模式/生产模式,另一方面查看“使用调试器” /“没有调试器”之间的所有差异。当然,使用GWT的每个人都已经听说过它们。 模式 开发模式 使用附加到代码服务器的特殊浏览器插件运行客户端。您始终可以通过查看URL轻松识别此模式-它将包含类似“ 0”的内容 开发模式的主要优点在于,它不需要您先将代码编译为JavaScript-它在代码服务器中以Java字节码的形式运行客户端。这基本上是JavaScript的仿真-但它是如此接近,以至于大多数人不再注意到它们之间的区别了(有些人甚至认为,GWT在开发模式下将Java编译为JavaScript,事实并非如此)。 由于代码是作为Java字节码运行的,因此此模式还允许您为客户端代码附加调试器,因为我们将在下面看到一些内容(但您不必这样做!) 生产方式 将客户端作为已编译的JavaScript运行。在使用它之前,必须首先使用GWT Java to JavaScript编译器(通常称为
gwtc
,或\“  图标\”) 完成后(花点时间!),就像在开发模式下一样,启动GWT嵌入式服务器,但是这次从您的URL中删除“ 0”。 (或者,您可以将War部署到单独的服务器(例如Tomcat),然后从那里运行它。) 这样做的好处是:a)您可以测试实际的编译结果,并且b)浏览器刷新比开发模式下的刷新速度快得多。 发射 \“没有调试器\” 您可以简单地运行应用程序而无需附加调试器(在开发和生产模式下都可以)。如果使用Eclipse,请使用\“运行方式... \”。 在开发模式下,这意味着您将运行Web服务器(嵌入式Jetty,通常在端口8888上)和代码服务器(通常在端口9997上)。在生产模式下,您不需要代码服务器。 如果您有客户端更改,则在刷新浏览器时将重新加载它们。这是相对较快的-您不必重新启动(代码)服务器。但这并不像调试器那样直接。 如果要更改服务器端,则必须重新加载服务器Web应用程序(在Eclipse中,使用“开发”视图中的黄色重新加载小图标),这比完全重新启动服务器要快得多,但是再次,它\'不像使用调试器那样直接! \“使用调试器\” 在开发和生产模式下,都可以使用附加的调试器运行应用程序。如果使用Eclipse,请使用\“ Debug As ... \”。 对于开发模式,调试器将附加到代码的客户端和服务器端-而在生产模式下,它只能附加到服务器端! 如果您使用附加的调试器进行了客户端更改,则代码更改将立即生效,因此您所要做的就是单击网页中导致代码运行的某个位置。 同样,如果使用附加的调试器进行服务器端更改,则代码更改将立即生效,因此您所要做的就是执行一些操作,从而引起相应的服务器调用。 所有这些都非常快,但是缺点是Java调试器只能处理某些类型的代码更改。如果您进行了更严格的更改,调试器将退出,您将不得不重新启动服务器(在这种情况下,我仍在寻找一种重新加载和重新连接的方法-我认为应该可以,但是有人已经有可行的解决方案了吗?) 另外,使用调试器时,您必须注意应用程序的状态。请记住,对代码所做的更改不会重新评估现有状态! 所以你基本上有四个组合 没有调试器的开发模式 客户端更改:使用浏览器刷新(中) 服务器更改:重新加载服务器(快速) 调试器的开发模式 客户端更改/服务器更改:只需单击网页(非常快)。如果失败(非常慢),请重新启动服务器。 没有调试器的生产模式 客户端更改:重新编译,然后刷新浏览器(非常慢) 服务器更改:重新加载服务器(快速) 使用调试器的生产模式(用于服务器端) 客户端更改:重新编译,然后刷新浏览器(非常慢) 服务器更改:只需单击网页即可发起新的服务器调用(非常快)。如果失败(非常慢),请重新启动服务器。 其他差异: 在生产模式下,简单的浏览器刷新比在开发模式下要快得多。 生产模式下的GWT-RPC比开发模式下快得多。 每种组合对于开发速度和便利性都有其自身的优缺点。我喜欢根据情况使用所有这些。 这篇文章已经有点长了,但是我已经看到了很多与此主题相关的问题,我想将其全部写下来。谢谢阅读 :-)     
在GWT开发模式下,每次重新加载页面时,开发服务器都会重新编译GWT应用程序的源代码。这样一来,您就可以对GWT代码进行一些更改,并且只需在浏览器中重新加载页面即可查看更改-无需重启开发模式服务器。 在生产服务器上部署应用程序时,将部署已编译的javascript文件。因此,您将看到的延迟将是加载这些页面的时间。     

要回复问题请先登录注册