DouglasCrockfordsの「TheoryoftheDOM 」を見ていますが、スクリプトタグの場所が、アプリケーションの読み込み時間に大きく影響する可能性があると彼は言いました。さらに、彼は、スクリプトタグをドキュメント本文のできるだけ下に含める必要があると主張しています。
これは正確ですか?
また
このビデオは古くなっていますか?(彼がDOMについてもっと早く講義しなかった理由として、彼は実際にそれを見つけました)。
DouglasCrockfordsの「TheoryoftheDOM 」を見ていますが、スクリプトタグの場所が、アプリケーションの読み込み時間に大きく影響する可能性があると彼は言いました。さらに、彼は、スクリプトタグをドキュメント本文のできるだけ下に含める必要があると主張しています。
これは正確ですか?
このビデオは古くなっていますか?(彼がDOMについてもっと早く講義しなかった理由として、彼は実際にそれを見つけました)。
GoogleはCrockfordに同意します:
Yahoo! 同じように:
そして他のSOユーザーも同様に同意します:
ヘッダーに含まれるファイルは、ページの残りの部分がロードを開始する前にロードされます。不要なファイルは、ページの下部にできるだけ近づけてロードすることをお勧めします。これにより、ページの残りの部分を事前にロードできるようになります。
代わりにヘッダーにロードできるJSライブラリ(LABjsなど)がいくつかあります。次に、他のすべてのJSアセットを非同期でロードし、コールバックを提供できるため、JSアセットがロードされたことがわかっているときに残りのコードを実行できます。
http://labjs.com/を使用することもできます。
プロジェクトのページに記載されているように:
LABjs(JavaScriptの読み込みとブロック)は、Getify Solutionsによってサポートされているオープンソース(MITライセンス)プロジェクトです。LABjsの主な目的は、任意の場所から任意のページに、いつでも任意のJavaScriptリソースをロードできる、汎用のオンデマンドJavaScriptローダーになることです。LABjsを使用してスクリプトをロードすると、ページのロード中のリソースブロッキングが減少します。これは、サイトのパフォーマンスを最適化するための簡単で効果的な方法です。
LABjsはデフォルトで、ブラウザが許可する速度ですべてのスクリプトを並行してロード(および実行)します。ただし、実行順序に依存するスクリプトを簡単に指定でき、LABjsによって適切な実行順序が保証されます。これにより、LABjsは、制御/ホストするかどうか、スタンドアロンであるかリソースのより大きな依存関係ツリーの一部であるかに関係なく、事実上すべてのJavaScriptリソースで安全に使用できます。
LABjsを使用すると、その醜い「タグスープ」がすべて置き換えられます。これは、HTMLページのまたは末尾に一般的に表示されるすべてのタグです。APIは表現力豊かで連鎖的であり、ロードするスクリプトと、必要に応じて実行を待機(「ブロック」)してから実行を続行するタイミングを指定できます。APIを使用すると、インラインコード実行カップリングも簡単に実行できます(インラインタグを考えてみてください)。
LABjsは現在、Steve Soudersとのコラボレーションの恩恵を受ける特権を持っており、利用可能な最適化された、柔軟な、一般的なスクリプトのロードのための単一の最良のソリューションになることを目指しています。
まあ、それは正しいです。javascriptファイルを並行してロードする「head.js」のようなものを使用しない限り。ああ、そして、いくつかのスクリプトはコンテンツの前になければなりません。たとえば、html5-shivスクリプト。
DOMが確実に読み込まれるようにするには、ページの最後にJavaScriptを含める必要があると聞いています。しばらく前にYahooのドキュメントでこれを読んだと思います。