2016-08-17 15 views
0

ヘッドセクションにJavaScriptの非同期をロードしようとしています。開発者コンソールでページを読み込んだ後、「jQueryが定義されていません」というエラーが表示されます。 1つまたは2つのリフレッシュスクリプトが読み込まれ、完全に動作した後。スクリプトタグ内に「非同期」がなければ、機能します。なぜこれが起こり、これを解決する方法があるのでしょうか。事前に感謝ヘッドセクションの非同期javascriptは、更新後にのみ動作します。ページ

+2

スクリプトがjQueryを使用している場合は、スクリプトがロードされる前にロードする必要があります。スクリプトを ''タグの最後に置き、normalyをロードするだけです。 – Dellirium

答えて

0

Delliriumは言ったように、JQueryはそれを必要とするJavaScriptコードの前に配置する必要があります。 <head>にJQueryを配置し、bodyタグの末尾に実行しているスクリプト<body>を配置してみてください。

+0

これは競合状態を少し重大にしませんが、それを削除しません。それでも失敗する可能性があります。 – Gant

0

jQueryの読み込み時に実行される関数を追加することができます。 &コールバックは=は、あなたの周りにあなたのコードをラップするために使用することができ、あなたの実際のJavaScriptファイル、でスタート()関数を実行開始する

<script src="jquery.js&callback=start"</script>

。それは完全にロードされたときに、あなたのブラウザはjQueryのをキャッシュするため

function start() { 

    /* your code */ 

} 

jQueryの最初の時間を見つけることができなかった理由があります。最初に実際にページにアクセスしたり、強制的にリロードしたりするときに、ファイル全体をロードする必要があります。

0

scriptタグでasyncを使用すると、ページの読み込み中に任意の順序でスクリプトを実行できます。そのため、スクリプトはときどき動作します。わずかに高速のページ読み込みのために、実行の順序を知ることはできません。これは通常、ロードするスクリプトがお互いに依存しないようにするか、複雑なローディングスキームを必要とします。通常、非同期で実行されないコールバック関数を使用し、依存関係が利用可能であると報告するときにコードを呼び出します。

実際にasyncがセットアップに適しているかどうかを検討する必要があります。

関連する問題