如何只将App Engine数据提供给GET客户端一次

时间:2012-09-30 12:08:01

标签: html5 google-app-engine gwt

我的AppEngine支持应用程序中有一个6MB的二进制文件。我需要将此文件提供给我的GWT客户端以进行许多计算。我试图避免在服务器上进行计算以保存我的实例小时配额。但这意味着我必须以某种方式将文件传送给我的客户端。

每次打开应用程序时我也不想将其下载到应用程序,这会损害我的appengine传出带宽配额。

下载一次会很好,然后让客户端以某种方式存储它以便下次打开应用程序时使用。

如何做到最好?

ClientBundle?使用HTML5存储?这种事情是不是没有完成,我应该在服务器上进行计算并将结果发送给客户端吗?

2 个答案:

答案 0 :(得分:1)

永久缓存文件的最简单方法是使用application cache

另一种方法是HTML5存储(localStorage),但有2.5 MB的限制。要使用超过这个数量,您可以使用IndexedDB(Chrome,Firefox,IE10)和WebSQL(Safari,Opera)。在这种情况下,像YDN-DB这样的包装器库会有所帮助。

答案 1 :(得分:0)

您可以使用DataResource:

https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle#DataResource

您面临的唯一问题是文件大小。不同的浏览器有不同的限制 - 我见过5MB和8MB的数字。如果您可以将文件压缩到5MB以下,那么大多数浏览器都可以。 (顺便说一句,如果无法进一步压缩,则需要大量数据。)

此外,您可以检测移动浏览器(或为移动版提供不同的URL),并在服务器上为移动用户进行计算。