2013-01-21 36 views
1

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

GWT谷歌应用程序引擎RequestFactories工作。我发现,应用程序向服务器发出了几个请求(〜10个请求)。

现在我想知道,我该如何提高盯着我的应用程序的性能。

  1. 将所有请求分组到一个请求中,该请求通过单个请求传递所有数据。 (〜300kb数据)
  2. 创建一个启动页面,请求和数据量较低。 (〜50kb数据)
  3. 更好的主意?

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

+0

你是否介绍了你的应用?由于您使用的是App Engine,因此您的新实例可能会面临冷启动时间,这与您的请求和数据传输无关。 –

+0

是的,这不是问题。无论如何感谢您的建议。 – Sam

+0

您可以在App Engine日志中看到每个请求需要多长时间。然后你可以看到问题出在哪里。即使对于10个请求和300kB的数据,40秒也是如此。 –

回答

2

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

1.-减少请求:使用RF,如果您共享相同的服务实例并只调用一次.fire()方法,则可以将所有请求分组到一个请求中。为图片,CSS和其他资源使用Bundle,以便在相同的请求中下载它们。

2.-减小js大小:使用GWT.runAsync()将代码拆分为块。因此,第一块代码可能是用户启动应用程序的最低限度内容,直到用户与其进行交互为止。你可以使用gwt编译报告来查看你的代码是否更大。您可以在gwt-2.5中使用新的闭包编译器来减少和优化最终的js。

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

4.-对于连续加载,我的意思是用户再次进入您的应用程序,考虑使用localstorage来缓存某些不会改变的事情,而不是再次请求它们。配置你的HTML5Manifest,如果你使用的是mgwt,那么它非常容易,因为它们包含一个链接器来在编译时生成清单。

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

0

我有几个建议:在在启动一个请求改变很少

  • 加载数据。
  • 在您的服务器上激活GZip压缩。
  • 当用户空闲时间结束应用程序时使用后台调用。
  • 单个请求中的组相关请求。
相关问题