我们有一个可以工作的web应用程序,客户端使用ExtJS开发,服务器端使用Struts、Spring、Hibernate开发。现在,我们正在考虑迁移到GXT (或者GWT本身)。问题是我对GWT/GXT非常陌生。我们正在努力决定是否沿着这条路走下去。
1)到目前为止,我们的web-app有两个域名。一个是应用程序(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和modules.nocache.js。
如果你能帮助我,我将不胜感激。
发布于 2012-07-10 17:08:23
1)如果您的GWT应用是从不同的域名加载的,则必须面对同源策略。您不能对不同的域执行xhr。你可以使用ScriptTagProxy来解决这个问题。但这感觉并不是很烦人。
2)您可以使用CodeSplitting来自动动态加载应用程序的特定部分。你所要做的就是把你的splitt点转换成异步调用。一个详细的compile report给你一个很好的概述,代码拆分是如何工作的。
但是CodeSplitting不会卸载已经加载的代码。如果它真的要这样做,你必须将用户重定向到另一个url,以便加载适当的依赖于用户的模块。
一旦Javascript代码被加载和执行,就不可能从浏览器内存中删除代码。
格雷廷斯,彼得
https://stackoverflow.com/questions/11398277
复制相似问题