几天来我一直在尝试执行以下操作,但无济于事:
我有一个 GWT 应用程序,它在启动时进行多次 RPC 调用以加载初始数据。在大多数情况下,这些数据是相对静态的,所以如果可以的话,我会跳过 RPC 调用。但是数据的变化比应用程序更频繁,所以我宁愿在编译时不包括它。
相反,我获取数据并将其以 JSON 格式存储在一个静态 .js 文件中。我将其包含在应用程序的加载 HTML 中:
html ... GWT 正在加载东西...>
script src="staticstuff.js">/script> //这是故意错误的,因此它将显示在stackoverflow html上,静态内容如下:
var 启动数据 = [JSON.....];
然后,在应用程序本身中,我们执行以下操作:
private native JsArrayString getStaticData()/*-{
return $wnd.startupdata;
}-*/;
当我们的数据是数组、字符串或其他一些 JS 原生对象时,这非常有效。我似乎不能做的是以下几点:
private native OurMoreComplexObject getStaticData()/*-{
return $wnd.startupdata;
}-*/;
我可以拉回 js 对象并自己将它们解析到我的对象图中,但我不希望这样做,特别是因为 GWT 已经为我创建了一个转换器(因为 OurMoreComplexObject)已经在 RPC 调用中返回。
有没有人尝试过这样的事情?如果是这样,我该如何让它工作?还有其他方法可以做到这一点吗?(主要目标是如果数据存储在文件中,我可以将其加载到我们的 CDN 上,而不是每次启动时都强制回调到我们的服务器)