クライアント側にはExtJS、サーバー側にはStruts、Spring、Hibernateを使用して開発された、動作するWebアプリケーションがあります。現在、GXT (または GWT 自体) への移行を検討しています。問題は、私が GWT/GXT に非常に慣れていないことです。そして、私たちはこの道を行くかどうかを決めようとしています。
1) これまで、Web アプリ用に 2 つのドメインがありました。1 つはアプリケーション (Struts+...) がデプロイされていること、もう 1 つは主に Cookie のないカスタム CDN です。クライアントとサーバー間の転送は、主に XHR リクエストであり、JSON および/または JSONP を送受信します。しかし、新しいアプローチを前にして、GXT アプリケーション全体に対して 1 つのドメインのみを使用する必要があることを理解し始めました。それは正しいですか、それともここで何かを考慮するのを忘れましたか?
そうでない場合は、アプリケーションの一部 (com.ourcompany.webapp.gxt.server.*) のみをメイン サーバーにデプロイし、GWT コンパイラーによってコンパイルおよび生成されたコンテンツを他のサーバーにデプロイすることは可能ですか? CDNのようなドメイン?
2) 私たちが直面しているもう 1 つの大きな問題は、現在のアプリケーションがほとんど 3 つの巨大なモジュールで構成されていることです。1 つは「SignIn」を担当し、もう 1 つは「Webtop」を担当し、3 番目は「各ユーザーがアクセスできるモジュール」を担当します。後者は、各ユーザーの「アクセス権」のためにサーバー上で生成されたものであり、明らかにユーザーごとに異なる可能性があります。
関連する可能性のあるこの問題について私が見つけた唯一のものはCode Splittingです。私は
アプリケーションが起動時に、ユーザーがログインしているかどうかを確認する必要があります。そうでない場合は、JavaScript ファイルのサインイン セット (つまり、webapp.signin.nocache.js) をロードし、ユーザーが正しいユーザー名/パスワードを入力した後、このサインイン ファイルをアンロードし、webtop.nocache.js と modules.nocache.js をロードします。
お役に立てば幸いです。
質問する
368 次
1 に答える
3
1) GWT アプリが別のドメインから読み込まれる場合、同じオリジン ポリシーに直面する必要があります。別のドメインに対して xhr を実行することはできません。これを回避するには、 ScriptTagProxyを使用できます。しかし、それはあまり自然に感じられません。
2) CodeSplitting を使用して、アプリケーションの特定の部分を動的に自動的にロードできます。必要なのは、分割ポイントを非同期呼び出しにワープすることだけです。詳細なコンパイル レポートは、コード分割がどの程度うまく機能しているかについてのかなり良い概要を示します。
ただし、CodeSplitting は、既に読み込まれているコードをアンロードしません。そうすることが本当に重要な場合は、適切なユーザー依存モジュールをロードするために、ユーザーを別の URL にリダイレクトする必要があります。
Javascript コードがロードされて実行されると、ブラウザのメモリからコードを削除することは不可能です。
グレッティングス、ピーター
于 2012-07-10T09:08:22.990 に答える