2017-02-27 8 views
1

私は2つのファイルA.jsとB.jsがあるとします。 )さんは、私はA.ブラウザでJavaScriptを読み込むスクリプト(注文)

1の内部にいくつかの変数を定義するとしましょう

<script type="text/javascript" src="A.js"></script> 
 
<script type="text/javascript" src="B.js"></script>

を次のようにのは私のhtmlでそれらをインポートしていますことを言ってみましょう私はB 2でAから変数にアクセスすることができます)ローディングの順番は? Bは前に来ることができますか?

+1

はあなたのための両方のポイントを答えるでしょう。変数を作成して呼び出しようとすると1に答えることができます。ブラウザのネットワークコンソールを見て2と答えることができます。 – Utkanos

+1

@Utkanos、もちろん私はテストしましたが、ファイルAは常に前にロードされていると信じることができますか? – yerassyl

+0

jsファイルの外に(ロードする前に)グローバルスコープ変数を定義し、ファイル内でそれらとやりとりすることができます。 - それはクライアントベースのhtmlゲームのために私のためにこのように働いた。 –

答えて

1

はい、あなたはBからその変数にアクセスすることができます。しかし、Aでは、ロードが完了しない限り、Bの変数にアクセスすることはできません。ロードはシーケンスAとBを維持します。jqueryを使用してdocument.reday関数を使用し、その内部で変数にアクセスする方が好きです。これは、すべてのスクリプトがロードされてから実行を開始するまで待機します。任意の関数からの変数は、jsのグローバル変数です。したがって、どこからでもアクセスできます。 HTML specから

3

これら の属性を使用して選択することができる3つの可能なモードがあります。 の非同期属性が存在する場合、スクリプトは利用可能になるとすぐに非同期で実行されます( )。 非同期 属性が存在しないが、延期属性が存在する場合、ページの解析が完了すると スクリプトが実行されます。 属性が存在しない場合、スクリプトはフェッチされ、ユーザエージェントがページの解析を続行する前にすぐに を実行します。

だから、限り、あなたはdeferasync属性を使用していないとして、AB.jsに利用できるようになります。

0

Javascriptは他のプログラミング言語と同様に考慮されていません。まず第一に、それらは連続してロードされ、Bの変数はBのロケートが完了するまでアクセスできません。

あなたが直面している状況では、ページの読み込みが完了するまで、またはjQueryドキュメントの準備が整うまで、BからAを呼び出すことはできません。この次

0

使用、Google検索とぞんざいな検査

<script type="text/javascript"> 
    var test = ""; 
</script> 
<script type="text/javascript" src="A.js"></script> 
<script type="text/javascript" src="B.js"></script> 
+0

なぜ彼はこれを使うべきですか? –

関連する問題