我们有一个可用的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个巨大的模块组成。一个负责“登录”,另一个负责“Webtop”,第三个负责“每个用户都可以访问的模块”。后者由于每个用户的“访问权限”而在服务器上生成,显然可能因用户不同而不同。
我能找到的关于此事的唯一可能是Code Splitting。虽然我并不完全确定这是否是适合的解决方案。
我们希望应用程序在启动时检查用户是否已登录。如果不是,则加载SignIn集合的JavaScript文件(即webapp.signin.nocache.js),然后在用户输入正确的用户名/密码后,卸载此签名文件并加载webtop.nocache.js和modules.nocache.js。
如果你能帮助我,我会非常感激。初学者GXT问题
Q
初学者GXT问题
0
A
回答
3
1)如果您的GWT应用程序是从不同的域加载的,则不得不面对相同的来源策略。你不能做一个xhr到不同的域。你可以使用ScriptTagProxy来解决这个问题。但它不觉得非常中性。
2)您可以使用CodeSplitting来动态地自动加载应用程序的特定部分。你所要做的就是将你的分解点转换为异步调用。 详细的compile report为您提供了一个非常好的概述代码拆分的工作方式。
但CodeSplitting不会卸载已加载的代码。如果它确实需要这样做,则必须将用户重定向到另一个url以加载相应的用户依赖模块。
一旦Javascript代码已被加载并执行,它不可能从浏览器内存中删除代码。
Grettings, Peter
相关问题
- 1. AspectJ初学者问题
- 2. MVC初学者问题
- 3. FreePascal初学者问题
- 4. pygame的初学者问题
- 5. WPF Storyboard初学者问题
- 6. iOS初学者问题
- 7. Codeigniter初学者问题
- 8. JSF/JSP - 初学者问题
- 9. 引导初学者问题
- 10. jQuery初学者问题
- 11. Arduino初学者问题
- 12. PowerBuilder初学者问题
- 13. C++初学者问题
- 14. 蟒蛇初学者问题
- 15. XSL初学者问题
- 16. Model-Glue初学者问题
- 17. FirePHP初学者问题
- 18. NoSQL的初学者问题
- 19. Zend Sessions问题(初学者)
- 20. 初学者认证问题
- 21. 初学者问题:Wakelocks
- 22. Redis:初学者问题
- 23. 初学者PHP/mySQL问题
- 24. 初学者JSON/JQuery问题
- 25. android:layout_weight初学者问题
- 26. 初学者Java问题
- 27. Android UI初学者问题
- 28. hadoop初学者问题
- 29. 初学者的TextMate问题
- 30. Sharepoint Services初学者问题
谢谢您的回应Peter。但是1)那么使用两个不同的域名是“实际上不是一个好方法”? 2)是否有可能在飞行中的某个分割点为每个用户生成modules.nocache.js? – Khosrow 2012-07-10 10:01:50
1)正好; 2)如果你的代码像if(userA){startUserAModul();} else if(userB){startUserBModul();} aso。并将“CodeSplitting”点放入startUserXModul方法中,gwt应该为每个“模块”自动创建额外的Javascript文件。这些JS文件会在您调用适当的模块时自动加载。详细的gwt编译报告为您提供了大量关于代码拆分的信息。 – Peter 2012-07-11 05:41:12