0

すべての JavaScript ファイルを 1 つのファイルにマージ (縮小) したフレームワークを構築しています。

例:

   function A() {} function B() {}

縮小されたファイルを介して、関数を非同期にロードし、作業が完了したら HTML から削除したいと考えています。

例: 必要なときに関数 A をロードしますが、関数 B はロードしません。

フレームワーク Require.js を見たことがありますが、要件に基づいて非同期で JavaScript ファイルをロードします。

同じjsファイルで定義されているJavaScript関数をオンデマンドでロードするフレームワークはありますか?

4

2 に答える 2

1

連結の欠点は、特定のページの読み込みに含めるものを細かく制御できないことです。これに対する解決策は、連結された 1 つのファイルを作成するのではなく、もう少しモジュール的に含めることができる機能のレイヤーを作成することです。したがって、いくつかの特定の機能のみを使用するページにすべての JS を配置する必要はありません。JS ファイルが 1 つだけではブラウザーの 6 つの同時接続を利用できない可能性があるため、これは実際には速度の点でも有利です。さらに、SPDY が完全に採用されると、1 つの大きなファイルは実際には複数の小さなファイルよりもパフォーマンスが低下します (接続を再利用できるため)。ただし、縮小は依然として重要です。

そうは言っても、あなたは少し難しいことを求めているようです。ブラウザがスクリプトをロードすると、すぐに解析されて実行されます。その場合、ファイルをロードすることはできません...ファイルの一部のみをロードします。連結することで、その大きなペイロードに制限されます。

スクリプトをブロックコメントでラップし、スクリプトノードからアクセスして実行することで実行を遅らせることができますeval()...しかし、それはあなたが求めているものとは思えません。ただし、UI をロックせずにモジュールをプリロードする場合は、便利な戦略になる可能性があります。

于 2013-10-02T06:41:53.430 に答える