我們有一個可用的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. - 初學者問題
- 2. Node.js初學者問題
- 3. 初學者的TextMate問題
- 4. JSF/JSP - 初學者問題
- 5. 硒初學者問題
- 6. FreePascal初學者問題
- 7. 初學者PHP/mySQL問題
- 8. Android UI初學者問題
- 9. android:layout_weight初學者問題
- 10. 初學者合金問題
- 11. Zend Sessions問題(初學者)
- 12. SQL oracle初學者問題
- 13. C++初學者問題
- 14. 初學者mod_rewrite的問題
- 15. Mongo初學者的問題
- 16. 一些初學者問題
- 17. Javacard初學者 - 問題
- 18. XSL初學者問題
- 19. time.localtime()問題初學者python
- 20. NoSQL的初學者問題
- 21. AspectJ初學者問題
- 22. jQuery初學者問題
- 23. 初學者的JavaScript問題
- 24. 蟒蛇初學者問題
- 25. Antlr初學者mismatchedtoken問題
- 26. Arduino初學者問題
- 27. 初學者 - PHP問題
- 28. node.js初學者問題
- 29. 初學者rails:submit_tag問題
- 30. WPF Storyboard初學者問題
謝謝您的迴應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