【问题标题】:Google App Engine APIs that are irrelevant when using GWT? [closed]使用 GWT 时不相关的 Google App Engine API? [关闭]
【发布时间】:2012-08-22 17:55:50
【问题描述】:
我一直在阅读 GAE 和 GWT,似乎如果您将 GWT 应用程序部署到 GAE,那么以下 API 是不必要的:
由于 GWT 已经对所有客户端代码进行了超级优化,并且包含了所有必要的 AJAX 机制来生成“单页 Web 应用程序”,所以在我看来,在部署 GWT 应用程序时可以忽略这两者到 GAE。
我对这两个 API 的理解是 PageSpeed 有助于优化客户端代码(GWT 已经这样做了),并且 Channel API 用于长轮询(GWT 已过时)。
如果我不正确,请帮助我理解原因。或者,帮助说明 GWT 应用程序仍可从这些 API 中受益的场景。提前致谢!
【问题讨论】:
标签:
java
google-app-engine
gwt
pagespeed
channel-api
【解决方案1】:
我不认为它们是完全不相关的。
-
PageSpeed:老实说,我对PageSpeed 没有太多经验。 GWT 进行了大量优化以确保快速加载资源(免责声明:如果您使用的是ClientBundle)。因此,当您为您的 GWT 应用程序激活 PageSpeed 时,您可能看不到多少速度提升。但是根据文档,它说:
PageSpeed 服务不会向您的用户提供陈旧的 HTML。通常
呈现页面所需的 95% 的字节是可缓存的,但 HTML
本身不是。 PageSpeed 服务通过以下方式加快页面的加载速度
缓存页面的可缓存部分(以及其他技术)。
这包括图像、JavaScript 和 CSS 等资源。请
参考关于控制什么资源PageSpeed的信息
服务缓存。
因此,您可能可以通过配置为静态资源提供服务的 Web 服务器缓存它们自己来实现静态资源的缓存,但是我猜 PageSpeed 会为您提供开箱即用的功能。此外,与GAE 相比,Google 似乎会预取资源,然后从他们的服务器提供它们,这可能会针对提供静态资源进行优化。
我建议您尝试一下,看看它有多大帮助。
-
Channel API:通道 API 可能对您的 GWT 应用程序非常有用。与传统的 AJAX 调用相比,长轮询具有不同的用例。例如,如果您想在 GWT 中创建一个基于 Web 的聊天应用程序,您可以使用 Channel API 来支持客户端和后端之间的“实时”通信。
所以Channel API 肯定有它的用例,尽管 90% 的时间你可能会使用普通的 AJAX 调用。