初学者GXT问题

时间:2012-07-09 15:30:35

标签: gwt gxt

我们有一个工作的Web应用程序,它是用ExtJS为客户端开发的,Struts,Spring,Hibernate用于服务器端。现在,我们正在考虑迁移到GXT(或者可能是GWT本身)。问题是我对GWT / GXT很新。我们正试图决定我们是否走这条路
1)到目前为止,我们的网络应用程序有2个域名。一个是应用程序(Struts + ...)已经部署到,另一个主要是一个无cookie的自定义CDN。客户端和服务器之间的转移主要是XHR请求,发送/接收JSON和/或JSONP。但是随着我们面前的新方法,我开始明白我们应该只有一个域,对于整个GXT应用程序。这是正确的还是我忘了在这里考虑一些事情?
如果没有,是否有可能我们只将部分应用程序(即com.ourcompany.webapp.gxt.server。*)部署到主服务器,以及GWT编译器编译和生成的内容到另一个CDN类域名?

2)我们面临的另一个重大问题是当前的应用程序主要由3个巨大的模块组成。一个负责“SignIn”,另一个负责“Webtop”,第三个负责“每个用户可以访问的模块”。由于每个用户的“访问权限”,后者已在服务器上生成,显然可能因用户而异。
我唯一可以找到的问题是Code Splitting。虽然我不完全确定这是否是正确的解决方案。

我们希望应用程序在启动时检查用户是否已登录。如果没有,加载SignIn的javascript文件集(即webapp.signin.nocache.js),然后在用户输入正确的用户名/密码后,卸载此登录文件并加载webtop.nocache.js AND modules.nocache.js。

如果你能帮助我,我将非常感激。

1 个答案:

答案 0 :(得分:3)

1)如果您的GWT应用程序是从不同于您必须面对相同原始策略的域加载的。你不能对另一个域做xhr。您可以使用ScriptTagProxy来解决这个问题。但它并不觉得非常自然。

2)您可以使用CodeSplitting动态地自动加载应用程序的特定部分。您所要做的就是将分裂点变为异步调用。 详细的compile report可以很好地概述代码拆分的工作原理。

但CodeSplitting不会卸载已经加载的代码。如果真的需要这样做,你必须将用户重定向到另一个URL,以便加载相应的用户依赖模块。
一旦加载并执行了Javascript代码,就无法从浏览器内存中删除代码。

素不相识, 彼得