0

私は2つの異なるjavascriptを持っています。互いの関数や変数にアクセスする必要があるため、これらの js ファイルまたはスクリプトの両方が読み込まれた後にのみ関数を開始したいと思います。

どちらが最初に読み込まれるかわかりません。

それを行う適切な方法は何ですか?

注: スクリプト (A) の 1 つはデータを非同期的にロードし、スクリプト (B) はすべてのデータがロードされて開始されるまで待機してから続行する必要があります (たとえば、YouTube ビデオは (A) からロードされ、( B) 実行可能)

4

2 に答える 2

2

<script>一般に、同期的にロードされます。ドキュメントの評価は停止し、スクリプトがロードされて実行されるまで待機します。スクリプトは のようなものを使用してドキュメントに干渉する可能性があるため、そのように処理されますdocument.write()。そのため、パーサーは、ドキュメントの残りの部分がその時点で表示される方法のままであることを確認できません。

したがって、ロード後にスクリプトを実行するには<script>、スクリプトをロードしている 2 つの後ろに開始コードを保持する 3 番目のタグを配置するだけです。

<script src="scriptA.js"></script>
<script src="scriptB.js"></script>
<script>
  // start something of scriptB
  scriptB.start();
</script>
于 2012-11-20T10:33:11.040 に答える
0

スクリプトは同期的に読み込まれるため、これら 2 つのファイルの後に関数を実行するスクリプトを読み込むだけです。とにかく、依存関係のあるスクリプトがある場合は、RequireJSなどのモジュール ローダーを使用することをお勧めします。そうすれば、実行を開始する前にロードするモジュール/ファイルを定義できます。

于 2012-11-20T10:39:14.573 に答える