1

我有一个问题,当我启动我的混合应用程序时。加载第一页需要很长时间。约 40 秒。

我与GWTGoogle App EngineRequestFactories一起工作。我检测到,该应用程序向服务器发出了多个请求(约 10 个请求)。

现在我想知道,如何提高启动我的应用程序的性能。

  1. 将所有请求分组为一个请求,该请求通过一个请求交付所有数据。(~300kb 数据)
  2. 制作一个请求和数据量较少的启动页面。(~50kb 数据)
  3. 更好的主意?

我更喜欢,我可以保留当前的启动页面。你能分享你的经验吗?

4

2 回答 2

2

您已经指出了减少启动时间的两种主要方法。

1.- 减少请求:使用 RF,如果您共享同一个服务实例并且只调用一次 .fire() 方法,您可以将所有请求归为一个。将 Bundles 用于图像、css 和其他资源,以便在同一个请求中下载它们。

2.- 减少 js 的大小:使用 GWT.runAsync() 将代码分成几部分。因此,在用户与之交互之前,第一段代码可能是启动应用程序的最少内容。您可以使用 gwt 编译报告来查看您的代码是否更大。您可以使用 gwt-2.5 中新的闭包编译器来减少和优化最终的 js。

3.- 您必须检查的另一件事是您的网络服务器配置正在发送适当的标头,以便浏览器缓存 gwt 片段,以及您应该在发送到客户端之前检查它是否正在压缩文件。您可以制作 gwt 编译器来预压缩这些 js 片段。

4.- 对于连续加载,我的意思是用户第二次访问您的应用程序,考虑使用本地存储来缓存某些不会更改的内容,而不是再次请求它们。配置您的 HTML5Manifest,如果您使用的是 mgwt,这真的很容易,因为它们包含一个链接器来在编译时生成清单。

5.- 考虑使用轻量级的小部件和框架,而不是重的小部件(js 集合、元素、gquery、mgwt 等)。

于 2013-01-21T08:17:14.277 回答
0

我有几个建议:

  • 加载启动时在单个请求中很少更改的数据。
  • 在您的服务器上激活 GZip 压缩。
  • 当应用程序在用户空闲时间启动完成时使用后台调用。
  • 在单个请求中分组相关请求。
于 2013-01-21T07:09:21.767 回答