Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何将AppEngine数据仅获取一次到GWT客户端_Html_Google App Engine_Gwt - Fatal编程技术网

Html 如何将AppEngine数据仅获取一次到GWT客户端

Html 如何将AppEngine数据仅获取一次到GWT客户端,html,google-app-engine,gwt,Html,Google App Engine,Gwt,我在AppEngine支持的应用程序中有一个6MB的二进制文件。我需要把这个文件送到我的GWT客户端去做很多计算。我试图避免在服务器上进行计算以节省实例小时配额。但这意味着我必须以某种方式将文件交给我的客户 我也不想每次打开应用程序时都将其下载到应用程序中,这会影响我的appengine传出带宽配额 最好下载一次,然后让客户端以某种方式存储它,以便下次打开应用时使用 如何最好地做到这一点 客户包?使用HTML5存储?这类事情还没有完成吗?我应该在服务器上进行计算并将结果发送到客户端吗?永久缓存文

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

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

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

如何最好地做到这一点


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

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


另一种方式是HTML5存储(localStorage),但有2.5MB的限制。要想使用更多,您必须使用IndexedDB(Chrome、Firefox、IE10)和WebSQL(Safari、Opera)。在本例中,类似于帮助的包装器库

您可以使用数据资源:

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


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

为什么每次访问应用程序时都需要进行相同的计算?你不能只做一次计算,然后把结果存储在客户端吗?好问题,我应该说得更清楚。计算由两部分组成:一些当前条件和来自用户的输入,这些条件和输入会一直变化;这是6MB的二进制数据,永远不会改变。谢谢Andrei。您能否提供一些关于如何使用GWT在我的客户机中获取底层二进制数据的伪代码?另外,您能否评论一下客户端是否足够聪明,知道它只需要下载一次数据,从您发布的链接中不清楚情况是否如此。您需要告诉Appengine在数据文件上设置正确的标题。很简单:谢谢你,安德烈。为了接受您的答案,我想我需要看一行代码,显示如何使用DataResource获取二进制数据。如何将其放入某个字节[]或类似的内容中?