0

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

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

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

如何最好地做到这一点?

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

4

2 回答 2

1

永久缓存文件的最简单方法是使用应用程序缓存

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

于 2012-09-30T13:48:01.920 回答
0

您可以使用数据资源:

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

您面临的唯一问题是文件大小。不同的浏览器有不同的限制——我见过 5MB 和 8MB 的数字。如果您可以将文件压缩到 5MB 以下,那么大多数浏览器都应该没问题。(顺便说一句,如果不能进一步压缩,这将是一个巨大的数据量。)

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

于 2012-09-30T15:40:12.063 回答