GWT ランドでは、「リンカー」と DFN コード分割の関係は何ですか? リンカがコード分割をサポートする必要があるのはなぜですか? また、一部のリンカがそれをサポートしていないのはなぜですか? アプリが使用するリンカーをどのように選択し、その決定にどのような要因が関係していますか?
1 に答える
プライマリ リンカー (セカンダリ リンカーもありますが、ここでは関係ありません) は、コンパイルされた JS コードをホストする *.js または *.html ファイルを作成し、もちろんそれらをブラウザーにブートストラップ/ロードする方法を担当します。 .
それがわかれば、コード分割を明示的にサポートする必要があることが明らかになります。
たとえば、xs
(クロスサイト) リンカはスクリプト全体を匿名関数でラップするため、「グローバル スコープを汚染」しません (モジュール パターンとも呼ばれる手法)。その後、内部にアクセスできる他のスクリプトをページに動的に挿入することはできません。(sso
単一スクリプト) リンカーにも同じ制限があります。
( std
iframe) リンカーは、サンドボックスとして機能する動的に作成された iframe にアプリを読み込みます。iframe のグローバル スコープは、ホスト ページのグローバル スコープではありません。次に、iframe 内にスクリプトを動的に挿入して、既に存在するすべてのもの (iframe のグローバル スコープ) にアクセスできます。
しかし実際には、アプリが使用するリンカーを選択する必要はありませんxsiframe
。これは、リンカーのクロスサイト フレンドリ性とxs
リンカーの iframe サンドボックスを組み合わせたものstd
です。
他のすべてのリンカー (おそらくsso
1 つを除く) は、将来の GWT リリースで非推奨になり、最終的には完全に削除されることが予想されます。リンカーは、デフォルトのリンカーとしてリンカーstd
に置き換えられます。xsiframe